温馨提示×

centos k8s如何扩容

小樊
38
2026-10-03 10:02:43
栏目: 智能运维

在 CentOS 上扩容 Kubernetes(k8s)集群,通常分为 节点扩容(加机器) 和 资源扩容(Pod / 存储 / 集群组件) 两类。下面按常见场景说明。


一、节点扩容(新增 Worker / Master 节点)

1️⃣ 新节点准备工作(所有新节点)

# 关闭防火墙
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

2️⃣ 安装容器运行时(Docker / containerd)

以 containerd 为例:

yum install -y containerd
systemctl enable --now containerd

3️⃣ 安装 kubeadm / kubelet / kubectl

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

4️⃣ 获取加入命令(在 Master 上)

kubeadm token create --print-join-command

输出示例:

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

5️⃣ 新节点执行加入

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

验证:

kubectl get nodes

二、Master 节点扩容(高可用)

适用于 kubeadm 集群

1️⃣ 新 Master 节点准备

同 Worker 节点准备步骤

2️⃣ 拷贝证书(在已有 Master)

scp -r /etc/kubernetes/pki master2:/etc/kubernetes/

3️⃣ 加入集群

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

⚠️ 需要负载均衡(HAProxy / VIP)


三、Pod 资源扩容(水平 / 垂直)

1️⃣ 水平扩容(增加副本)

kubectl scale deployment nginx --replicas=5

或:

kubectl edit deployment nginx
spec:
  replicas: 5

2️⃣ 自动扩容(HPA)

kubectl autoscale deployment nginx \
  --min=2 --max=10 --cpu-percent=70

3️⃣ 垂直扩容(增加 CPU / 内存)

resources:
  requests:
    cpu: "500m"
    memory: "512Mi"
  limits:
    cpu: "1"
    memory: "1Gi"

四、存储扩容(PVC)

1️⃣ 扩容 PVC(StorageClass 必须支持)

kubectl edit pvc my-pvc
spec:
  resources:
    requests:
      storage: 20Gi

⚠️ 部分存储(如 NFS、Ceph)需手动扩展后端


五、集群资源不足时的优化建议

  • 调整 kubelet --max-pods
  • 使用 节点亲和 / 污点容忍
  • 使用 资源 Request/Limit
  • 增加节点而不是无限压榨单机

六、常见错误排查

journalctl -u kubelet -f
kubectl describe node node-new
kubectl get events

如果你能补充说明:

  • ✅ k8s 安装方式(kubeadm / 二进制 / Rancher)
  • ✅ 要扩容的是 节点 / Pod / 存储
  • ✅ 单 Master 还是 HA

我可以给你 更精确的扩容步骤。

0 踩