从零开始:手把手教你搭建Kubernetes容器平台
在当今云原生时代,Kubernetes已成为容器编排领域的事实标准。本文将详细介绍从环境准备到集群部署的完整过程,带您一步步构建专业的Kubernetes生产环境。
一、基础环境准备
搭建Kubernetes集群前,需要确保基础设施满足以下要求:
- 硬件要求:至少2核CPU/4GB内存/30GB磁盘空间的服务器(生产环境建议4核8GB以上)
- 操作系统:Ubuntu 18.04+/CentOS 7+/RHEL 7+等主流Linux发行版
- 网络配置:节点间网络互通,建议关闭防火墙或配置正确规则
# 所有节点执行 sudo swapoff -a sudo sed -i '/ swap / s/^/#/' /etc/fstab
二、安装容器运行时
Kubernetes支持多种容器运行时,我们以Docker为例:
# Ubuntu安装示例 sudo apt-get update sudo apt-get install -y docker.io sudo systemctl enable --now docker
验证安装:
sudo docker run hello-world
三、安装Kubernetes组件
在所有节点安装kubeadm、kubelet和kubectl:
# 添加Kubernetes源 sudo apt-get update && sudo apt-get install -y apt-transport-https curl curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list # 安装组件 sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl
四、初始化Master节点
在主节点执行初始化(替换为您的实际IP):
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.1.100
成功后会显示加入集群的命令,务必保存。然后配置kubectl:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
五、部署网络插件
我们选择Flannel作为网络插件:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
验证节点状态:
kubectl get nodes
六、加入Worker节点
在每个Worker节点执行初始化时保存的join命令:
kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
七、验证集群状态
执行以下命令验证集群健康状态:
kubectl get all --all-namespaces kubectl get nodes -o wide
部署测试应用:
kubectl create deployment nginx --image=nginx kubectl expose deployment nginx --port=80 --type=NodePort
八、后续优化建议
- 配置持久化存储(如NFS/CEPH)
- 安装Ingress Controller(如Nginx Ingress)
- 配置监控系统(Prometheus+Grafana)
- 设置RBAC权限控制
- 考虑使用高可用架构
通过以上步骤,您已成功搭建了基础的Kubernetes集群。Kubernetes生态丰富,建议后续继续学习Helm包管理、Operator模式等进阶内容。
