Rolling Update
滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新。滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性。
run: httpd 和name: httpd 都可以
下面我们部署三副本应用,初始镜像为 httpd:2.2.31,然后将其更新到 httpd:2.2.32。
[root@master rolling]# vim httpd.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: httpd
spec:
selector:
matchLabels:
run: httpd
replicas: 3
template:
metadata:
labels:
run: httpd
spec:
containers:
- name: httpd
image: httpd:2.2.31
run: httpd 和name: httpd 都可以
通过 kubectl apply
部署。
[root@master rolling]# kubectl apply -f httpd.yml
deployment.apps/httpd created
[root@master rolling]# kubectl get deployment httpd -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
httpd 3/3 3 3 2m40s httpd httpd:2.2.31 run=httpd
[root@master rolling]# kubectl get replicaset -o wide
NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR
httpd-55f56846f 3 3 3 3m21s httpd httpd:2.2.31 pod-template-hash=55f56846f,run=httpd
[root@master rolling]# kubectl get pod
NAME READY STATUS RESTARTS AGE
httpd-55f56846f-7bthw 1/1 Running 0 3m28s
httpd-55f56846f-7wzjs 1/1 Running 0 3m28s
httpd-55f56846f-pjf5q 1/1 Running 0 3m28s
[root@master rolling]#
部署过程如下:
1、创建 Deployment httpd
2、创建 ReplicaSet h