在CentOS上部署和测试Kubernetes(k8s)集群涉及多个步骤。以下是一个基本的指南,帮助你完成这个过程。请注意,这些步骤可能会随着Kubernetes版本的更新而发生变化,因此建议参考最新的官方文档。
准备工作
- 硬件和软件要求:
- 至少两台CentOS服务器(一台作为Master,其余作为Node)。
- 每台服务器至少2GB RAM,2个CPU核心,30GB磁盘空间。
- 访问外网以拉取镜像,如果无法访问,需提前下载镜像并导入节点或使用国内镜像源。
- 关闭不必要的系统服务:
- 关闭防火墙:
systemctl stop firewalld
和systemctl disable firewalld
。 - 关闭SELinux:编辑
/etc/selinux/config
文件,将SELINUX
设置为disabled
,然后重启服务器。 - 关闭swap分区:编辑
/etc/fstab
文件,注释掉swap分区那一行,然后重启服务器。
- 配置主机名和hosts文件:
- 根据规划设置主机名。
- 在所有节点上编辑
/etc/hosts
文件,添加集群中其他节点的IP地址和主机名。
安装Docker和kubeadm
- 安装Docker:
- 配置Docker的yum源。
- 安装Docker并启动服务。
- 安装kubeadm、kubelet和kubectl:
- 配置kubeadm的yum源。
- 安装指定版本的kubeadm、kubelet和kubectl。
初始化Master节点
在Master节点上执行以下命令初始化集群:
kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.23.6 --service-cidr 10.96.0.0/12 --pod-network-cidr 10.244.0.0/16
加入Node节点
在Node节点上执行以下命令加入集群:
kubeadm join:6443 --token --discovery-token-ca-cert-hash sha256:
部署网络插件
安装CNI网络插件(例如Calico):
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
验证部署
在Master节点上执行以下命令验证集群状态:
kubectl get nodes
你应该能看到所有节点都处于 Ready
状态。
测试部署
你可以通过部署一个简单的测试应用来验证集群是否正常工作。例如,使用 kubectl
部署一个Nginx Pod:
kubectl create deployment my-nginx --image=nginx kubectl expose deployment my-nginx --type=NodePort --port=80
然后,你可以使用Node节点的IP地址和NodePort访问Nginx服务。
注意事项
- 确保所有节点的时间同步,可以使用
chrony
或ntpd
。 - 如果遇到网络问题,检查iptables和路由配置。
- 定期更新Kubernetes集群和相关组件以保持安全和稳定性。
以上步骤提供了一个基本的CentOS上Kubernetes集群的部署和测试流程。根据具体需求和环境,可能需要进行适当的调整和优化。