在 CentOS 上部署的 Kubernetes(k8s)扩容,通常分为 Node 节点扩容(加机器) 和 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/s/^/#/' /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
(以 Docker 为例)
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce
systemctl enable docker && systemctl start docker
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
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 xxxx \
--discovery-token-ca-cert-hash sha256:xxxx
在新节点执行:
kubeadm join 192.168.1.10:6443 --token xxxx \
--discovery-token-ca-cert-hash sha256:xxxx
在 Master:
kubectl get nodes
状态为 Ready 即扩容成功。
kubectl scale deployment my-app --replicas=5
spec:
replicas: 5
kubectl apply -f deployment.yaml
修改 Deployment:
resources:
requests:
cpu: "500m"
memory: "512Mi"
limits:
cpu: "1"
memory: "1Gi"
kubectl apply -f deployment.yaml
kubectl autoscale deployment my-app \
--cpu-percent=70 \
--min=2 \
--max=10
NotReadykubeadm token createmodprobe br_netfilter
sysctl -w net.bridge.bridge-nf-call-iptables=1
如果你能说明:
我可以给你更精确的扩容步骤。