伸缩(Scale Up/Down)是指在线增加或减少 Pod 的副本数。
Deployment nginx-app
初始是两个副本
[root@master ~]# kubectl apply -f nginx.yaml
deployment.apps/nginx-app created
[root@master ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-app-7f4fc68488-4szxm 1/1 Running 0 91s 10.244.2.5 node2 <none> <none>
nginx-app-7f4fc68488-zxbg8 1/1 Running 0 91s 10.244.1.4 node1 <none> <none>
node1
和 knode2
上各跑了一个副本。现在修改 nginx.yml,将副本改成 5 个
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-app
spec:
selector:
matchLabels:
app: nginx
# 部署的实例数量改为5
replicas: 5
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.17
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
再次执行 kubectl apply
:
[root@master ~]# kubectl apply -f nginx.yaml
deployment.apps/nginx-app configured
[root@master ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-app-7f4fc68488-4szxm 1/1 Running 0 4m19s 10.244.2.5 node2 <none> <none>
nginx-app-7f4fc68488-9zwlc 1/1 Running 0 94s 10.244.2.7 node2 <none> <none>
nginx-app-7f4fc68488-cmdfj 1/1 Running 0 94s 10.244.1.5 node1 <none> <none>
nginx-app-7f4fc68488-tw9nn 1/1 Running 0 94s 10.244.2.6 node2 <none> <none>
nginx-app-7f4fc68488-zxbg8 1/1 Running 0 4m19s 10.244.1.4 node1 <none> <none>
[root@master ~]#
三个新副本被创建并调度到 k8s-node1 和 k8s-node2 上。
出于安全考虑,默认配置下 Kubernetes 不会将 Pod 调度到 Master 节点。如果希望将 k8s-master 也当作 Node 使用,可以执行如下命令:
kubectl taint node k8s-master node-role.kubernetes.io/master-
如果要恢复