在CentOS上部署Kubernetes(通常简称为k8s)集群涉及多个步骤。以下是一个基本的流程,用于在CentOS上手动部署单节点或多节点Kubernetes集群:
更新系统:
sudo yum update -y
安装必要的软件包:
sudo yum install -y kubelet kubeadm kubectl
sudo systemctl enable kubelet
sudo systemctl start kubelet
配置防火墙: 允许Kubernetes相关的端口通信。
sudo firewall-cmd --permanent --zone=trusted --add-interface=kubelet
sudo firewall-cmd --permanent --zone=trusted --add-service=http
sudo firewall-cmd --permanent --zone=trusted --add-service=https
sudo firewall-cmd --reload
设置主机名和hosts文件:
确保每个节点都有唯一的主机名,并在所有节点的/etc/hosts文件中添加其他节点的IP地址和主机名。
初始化主节点:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
这将下载必要的镜像,初始化Kubernetes控制平面,并生成加入集群的命令。
配置kubectl: 初始化完成后,运行以下命令以配置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、Calico等)并部署。例如,使用Flannel:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
准备工作节点: 在每个工作节点上执行以下步骤:
sudo swapoff -a
加入集群: 在每个工作节点上运行主节点初始化时生成的加入命令。例如:
sudo kubeadm join <master-ip>:<master-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
检查主节点状态:
kubectl get nodes
检查工作节点状态: 确保所有工作节点都已成功加入并处于Ready状态。
请注意,这只是一个基本的部署流程。实际生产环境中可能需要更多的配置和优化,例如设置高可用性控制平面、使用Ingress控制器、配置持久化存储等。建议参考Kubernetes官方文档或使用自动化工具(如Kubespray)来简化部署过程。