温馨提示×

centos k8s如何扩容节点

小樊
42
2026-10-06 08:02:37
栏目: 智能运维

在 CentOS 上运行的 Kubernetes(k8s)集群中扩容节点,一般有两种场景:

  1. 新增物理/虚拟机节点(最常用)
  2. 给已有节点增加资源(CPU / 内存 / 磁盘)

下面我按 最常见的新增 Node 节点 来说明,适用于 kubeadm 部署的 Kubernetes。


一、新增 Kubernetes 节点(CentOS)

1. 新节点基础准备(在所有新节点执行)

1.1 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

1.2 关闭 SELinux

setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

1.3 关闭 swap

swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab

1.4 设置主机名

hostnamectl set-hostname node-new

1.5 配置 hosts(可选但推荐)

cat >> /etc/hosts <<EOF
192.168.1.10 master
192.168.1.11 node-new
EOF

1.6 内核参数

cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

2. 安装容器运行时(Docker 或 containerd)

Docker(常见)

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

containerd(推荐 k8s 1.24+)

yum install -y containerd
systemctl enable --now containerd

3. 安装 kubeadm / kubelet / kubectl

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

4. 获取 token(在 Master 节点执行)

kubeadm token create --print-join-command

输出类似:

kubeadm join 192.168.1.10:6443 --token xxx \
  --discovery-token-ca-cert-hash sha256:yyy

5. 新节点加入集群

在新节点执行:

kubeadm join 192.168.1.10:6443 \
  --token xxx \
  --discovery-token-ca-cert-hash sha256:yyy

6. 验证节点状态(Master 上)

kubectl get nodes

状态为 Ready 即扩容成功。


二、给已有节点扩容资源(不新增机器)

如果是 增加 CPU / 内存 / 磁盘:

  1. 在虚拟化平台或物理机增加资源
  2. 重启节点
  3. Kubernetes 会自动识别新资源
  4. 验证:
kubectl describe node <node-name>

三、常见问题

1. 节点一直是 NotReady

  • 检查 kubelet 状态
systemctl status kubelet
journalctl -u kubelet -f

2. 网络插件未安装

确保 Master 上已安装:

  • Calico
  • Flannel
  • Cilium

3. k8s 版本不一致

新节点 kubeadm 版本必须与 Master 一致。


四、总结

场景 操作
新增节点 安装 kubelet → join 集群
增加资源 加硬件 → 重启
云环境 可用 autoscaler

如果你能告诉我:

  • k8s 版本
  • 是否用 kubeadm
  • 单 Master 还是多 Master

我可以给你 更精确的命令。

0 踩