Kubernetes集群在Ubuntu上的扩展方法
在Ubuntu系统上扩展Kubernetes集群主要分为添加Worker节点(横向扩展计算资源)和添加Control Plane节点(纵向扩展集群管理能力)两类场景,以下是具体实现步骤及注意事项:
无论是添加Worker还是Control Plane节点,均需确保新节点满足以下基础条件:
sudo apt update && sudo apt upgrade -y);native.cgroupdriver=systemd(参考Ubuntu安装K8s的Docker配置步骤);kubeadm、kubelet、kubectl(通过apt添加Kubernetes源安装,安装后执行sudo apt-mark hold kubelet kubeadm kubectl锁定版本);sudo swapoff -a临时关闭,编辑/etc/fstab注释swap行永久关闭(Swap会影响Kubernetes性能)。Worker节点用于运行容器化应用Pod,是最常见的扩展方式。步骤如下:
kubeadm token create --print-join-command
输出结果类似:kubeadm join <Master节点IP>:6443 --token <随机Token> --discovery-token-ca-cert-hash sha256:<证书哈希>
sudo权限执行。执行成功后,Worker节点会自动向Master注册。Ready状态:kubectl get nodes
若Worker节点状态显示为Ready,则表示扩展成功。Control Plane节点负责集群管理(如调度、API服务、数据存储),适用于需要提升集群管理能力或实现高可用的场景。步骤如下:
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key snapshot save /tmp/etcd-snapshot.db
kubeadm、kubelet、kubectl,并确保系统环境满足要求。kubeadm token create --certificate-key $(kubeadm certs certificate-key) | sudo tee /tmp/join-command.sh
内容类似:kubeadm join <Master节点IP>:6443 --token <Token> --discovery-token-ca-cert-hash sha256:<哈希> --control-plane --certificate-key <证书Key>
sudo权限执行。执行后,新增节点会成为Control Plane节点。Ready状态:kubectl get nodes
kubectl get componentstatuses
若所有Control Plane节点状态正常,则扩展成功。kubectl get nodes确认所有节点状态为Ready;执行kubectl get componentstatuses检查Master组件(如API Server、Controller Manager)是否正常。kubectl top nodes查看节点资源使用情况,通过Prometheus+Grafana等工具监控集群指标(如CPU、内存、网络)。