虽然RC已经是过时的特性,为了和其他特性进行比较,这篇文章还是将早期最为广泛使用的特性之一进行展开,使用一个具体的示例来介绍在RC中进行滚动升级的方式。
滚动演示场景说明
使用busybox的镜像,执行sleep 1000启动的RC作为初始状态(设定replicas为3),然后修改启动参数进行滚动升级,整体要验证的滚动过程如下图所示
RC初始版本
使用如下YAML文件的RC,busybox容器sleep 1000
[root@host131 RollingUpdate]# cat v1.yaml
---
apiVersion: v1
kind: ReplicationController
metadata:
name: busybox-rc
spec:
replicas: 3
selector:
app: busybox-v1
template:
metadata:
labels:
app: busybox-v1
spec:
containers:
- name: busybox-host
image: busybox:latest
command: ["sleep"]
args: ["1000"]
...
[root@host131 RollingUpdate]#
- 创建并确认结果
[root@host131 RollingUpdate]# kubectl create -f v1.yaml
replicationcontroller/busybox-rc created
[root@host131 RollingUpdate]#
[root@host131 RollingUpdate]# kubectl get rc -o wide
NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR
busybox-rc 3 3 3 19s busybox-host busybox:latest app=busybox-v1
[root@host131 RollingUpdate]#
[root@host131 RollingUpdate]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
busybox-rc-mfjk4 1/1 Running 0 24s 10.254.152.7 192.168.163.131 <none> <none>
busybox-rc-q5ltd 1/1 Running 0 24s 10.254.152.6 192.168.163.131 <none> <none>
busybox-rc-sz6pz 1/1 Running 0 24s 10.254.152.5 192.168.163.131 <none> <none>
[root@host131 RollingUpdate]#
[root@host131 RollingUpdate]# kubectl exec -it busybox-rc-mfjk4 sh
/ # ps -ef
PID USER TIME COMMAND
1 root 0:00 sleep 1000
6 root 0:00 sh
11 root 0:00 ps -ef
/ #
rolling-update注意事项
rolling-update在1.11版开始过时的,在RC中使用rolling-update进行滚动升级的注意事项,