在 CentOS 上扩容 Kubernetes(k8s)集群,通常分为 节点扩容(加机器) 和 资源扩容(Pod / 存储 / 集群组件) 两类。下面按常见场景说明。
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭 SELinux
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 关闭 swap
swapoff -a
sed -i '/swap/d' /etc/fstab
# 设置主机名
hostnamectl set-hostname node-new
# 配置 hosts
cat >> /etc/hosts <<EOF
192.168.1.10 master
192.168.1.11 node1
192.168.1.12 node-new
EOF
以 containerd 为例:
yum install -y containerd
systemctl enable --now containerd
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[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
EOF
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
kubeadm token create --print-join-command
输出示例:
kubeadm join 192.168.1.10:6443 --token xxx \
--discovery-token-ca-cert-hash sha256:xxx
kubeadm join 192.168.1.10:6443 --token xxx \
--discovery-token-ca-cert-hash sha256:xxx
验证:
kubectl get nodes
适用于 kubeadm 集群
同 Worker 节点准备步骤
scp -r /etc/kubernetes/pki master2:/etc/kubernetes/
kubeadm join 192.168.1.10:6443 \
--token xxx \
--discovery-token-ca-cert-hash sha256:xxx \
--control-plane
⚠️ 需要负载均衡(HAProxy / VIP)
kubectl scale deployment nginx --replicas=5
或:
kubectl edit deployment nginx
spec:
replicas: 5
kubectl autoscale deployment nginx \
--min=2 --max=10 --cpu-percent=70
resources:
requests:
cpu: "500m"
memory: "512Mi"
limits:
cpu: "1"
memory: "1Gi"
kubectl edit pvc my-pvc
spec:
resources:
requests:
storage: 20Gi
⚠️ 部分存储(如 NFS、Ceph)需手动扩展后端
--max-podsjournalctl -u kubelet -f
kubectl describe node node-new
kubectl get events
如果你能补充说明:
我可以给你 更精确的扩容步骤。