在 CentOS 上部署的 Kubernetes(k8s)扩容,通常分为 Node 节点扩容 和 Pod 扩容。下面按常见场景给你一个完整说明(以 kubeadm 部署 为主,最常用)。
适用于:集群资源不足,需要新增 CentOS 节点。
# 关闭 swap
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 禁用 SELinux
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
cat <<EOF | tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
modprobe br_netfilter
cat <<EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
yum install -y containerd
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
# 修改 SystemdCgroup = true
sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
systemctl enable --now containerd
cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/repodata/repomd.xml.key
EOF
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
在 Master 节点 执行:
kubeadm token create --print-join-command
输出类似:
kubeadm join 192.168.1.10:6443 \
--token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:xxxx
在新节点执行上面输出的命令:
kubeadm join 192.168.1.10:6443 \
--token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:xxxx
在 Master 上:
kubectl get nodes
状态为 Ready 即成功。
适用场景:服务压力增大,增加副本数。
kubectl get deployment
kubectl scale deployment nginx --replicas=5
kubectl autoscale deployment nginx \
--cpu-percent=50 \
--min=2 --max=10
⚠️ 生产环境建议 3 / 5 个 Master。
步骤简述:
kubeadm join --control-plane如你需要,我可以单独给你 Master 高可用扩容完整步骤。
journalctl -u kubelet -f
kubectl describe node <node-name>
| 扩容类型 | 命令/方式 |
|---|---|
| 新增 Node | kubeadm join |
| Pod 扩容 | kubectl scale |
| 自动扩容 | HPA |
| Master 扩容 | kubeadm join --control-plane |
如果你愿意,可以告诉我:
我可以给你 完全贴合你环境的扩容方案。