在 CentOS 上运行的 Kubernetes(k8s)集群中扩容节点,一般有两种场景:
下面我按 最常见的新增 Node 节点 来说明,适用于 kubeadm 部署的 Kubernetes。
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab
hostnamectl set-hostname node-new
cat >> /etc/hosts <<EOF
192.168.1.10 master
192.168.1.11 node-new
EOF
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl enable --now docker
yum install -y containerd
systemctl enable --now containerd
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubelet kubeadm kubectl
systemctl enable --now kubelet
kubeadm token create --print-join-command
输出类似:
kubeadm join 192.168.1.10:6443 --token xxx \
--discovery-token-ca-cert-hash sha256:yyy
在新节点执行:
kubeadm join 192.168.1.10:6443 \
--token xxx \
--discovery-token-ca-cert-hash sha256:yyy
kubectl get nodes
状态为 Ready 即扩容成功。
如果是 增加 CPU / 内存 / 磁盘:
kubectl describe node <node-name>
systemctl status kubelet
journalctl -u kubelet -f
确保 Master 上已安装:
新节点 kubeadm 版本必须与 Master 一致。
| 场景 | 操作 |
|---|---|
| 新增节点 | 安装 kubelet → join 集群 |
| 增加资源 | 加硬件 → 重启 |
| 云环境 | 可用 autoscaler |
如果你能告诉我:
我可以给你 更精确的命令。