内容提要
本文介绍了在CentOS上安装Kubernetes集群的步骤,包括系统要求、软件版本、网络配置和安装命令。使用kubeadm工具进行集群初始化,配置网络插件calico,并提供worker节点的加入方法。确保所有节点间IP互通,安装完成后可通过kubectl命令检查集群状态。
延伸解读
容器运行时选择:containerd 与 Docker 的取舍
Kubernetes v1.21 开始默认移除对 Docker 的依赖。如果宿主机同时安装了 Docker 和 containerd,kubeadm 会优先使用 Docker 作为容器运行引擎;如果只安装了 containerd,则使用 containerd。本文选择 containerd 作为容器运行引擎,并安装指定版本 Containerd.io 1.4.3。这一变化意味着用户需要根据现有环境决定是否保留 Docker,若希望使用 containerd,则需确保 Docker 未安装或已卸载。
安装前的关键检查:主机名、CPU 与网络互通
在开始安装前,必须在所有节点执行检查。主机名不能为 localhost,且将作为节点在集群中的名称,建议提前修改并配置 hosts 解析。CPU 必须为 x86_64 架构,内核数不低于 2。网络方面,需通过 ip route 和 ip address 确认默认网卡及 IP,所有节点间 Kubernetes 使用的 IP 必须互通,无需 NAT 映射,且不能有安全组或防火墙隔离。这些检查可避免后续初始化失败。
Master 初始化参数:APISERVER_NAME 与 POD_SUBNET
初始化 master 节点时,APISERVER_NAME 不能是 master 的 hostname,必须全为小写字母、数字和小数点,不能包含减号。POD_SUBNET 是容器组网段,不能与 master 或 worker 节点所在网段重叠。如果不熟悉 CIDR,可保持默认的 10.100.0.1/16。这些参数在 kubeadm init 前通过环境变量设置,且 export 命令只在当前 shell 会话有效,新开窗口需重新设置。
Worker 节点加入与集群验证
在 master 节点执行 kubeadm token create --print-join-command 可生成加入命令,该 token 有效期为 2 小时,期间可用于初始化任意数量的 worker 节点。在 worker 节点上,需先设置 MASTER_IP 和 APISERVER_NAME 并写入 hosts,再执行 join 命令。完成后在 master 节点运行 kubectl get nodes -o wide,确认所有节点状态为 Ready。此外,安装 calico 网络插件后需等待容器组全部 R
Q&A
在CentOS上安装Kubernetes集群需要哪些系统要求?
至少需要2台2核4G的服务器,CPU必须为x86架构,操作系统为CentOS 7.8或CentOS Stream 8。
如何使用kubeadm初始化Kubernetes的master节点?
在master节点上执行kubeadm init命令,并设置APISERVER_NAME和POD_SUBNET。
安装Kubernetes时需要哪些软件版本?
需要安装Kubernetes v1.21.x、calico 3.17.1、nginx-ingress 1.9.1和Containerd.io 1.4.3。
如何在worker节点上加入Kubernetes集群?
在master节点上生成join命令,然后在worker节点上执行该命令进行初始化。
安装Kubernetes集群后如何检查集群状态?
可以通过kubectl命令检查集群状态,确保所有节点正常运行。
在Kubernetes中如何配置网络插件?
安装calico网络插件,并检查master节点的初始化结果。