|NO.Z.00143|——————————|CloudNative|——|KuberNetes&资源调度.V13|——|statefulset.v05|更新.V02|OnDelete|
三、StatefulSet更新策略二:OnDelete
### --- 添加配置参数,触发更新
~~~ # 更改StatefulSet配置参数镜像版本更改为1.15.3
~~~ 使用 OnDelete去更新;它是不会触发更新的,只有把这个Pod删除之后才会触发更新镜像
[root@k8s-master01 ~]# kubectl edit sts web
spec:
containers:
- image: nginx:1.15.3
updateStrategy:
type: OnDelete
~~~ # 查看pod的状态
[root@k8s-master01 ~]# kubectl get po
NAME READY STATUS RESTARTS AGE
web-0 1/1 Running 0 7m21s
web-1 1/1 Running 0 7m18s
web-2 1/1 Running 0 8m1s
### --- 删除web-2触发更新
~~~ # 删除web-2;触发更新
[root@k8s-master01 ~]# kubectl delete po web-2
pod "web-2" deleted
~~~ # 查看已更新web-2.pod的镜像版本
[root@k8s-master01 ~]# kubectl get po web-2 -oyaml |grep image
f:image: {}
f:imagePullPolicy: {}
- image: nginx:1.15.3 // 可以查看到它的镜像版本是1.15.3
imagePullPolicy: IfNotPresent
image: nginx:1.15.3
imageID: docker-pullable://nginx@sha256:24a0c4b4a4c0eb97a1aabb8e29f18e917d05abfe1b7a7c07857230879ce7d3d3
~~~ # 查看未更新web-1.pod的镜像版本
[root@k8s-master01 ~]# kubectl get po web-1 -oyaml |grep image
f:image: {}
f:imagePullPolicy: {}
- image: nginx:1.15.2 // 而是web-1的镜像是1.15.2,没有更新
imagePullPolicy: IfNotPresent
image: nginx:1.15.2
imageID: docker-pullable://nginx@sha256:d85914d547a6c92faa39ce7058bd7529baacab7e0cd4255442b04577c4d1f424
### --- 查看statefuel.OnDelete更新流程
~~~ # 查看pod的更新流程
[root@k8s-master01 ~]# kubectl get po -l app=nginx -w
web-2 1/1 Terminating 0 8m59s //删除web-2之后触发更新
web-2 0/1 Terminating 0 9m1s
web-2 0/1 Terminating 0 10m
web-2 0/1 Terminating 0 10m
web-2 0/1 Pending 0 0s
web-2 0/1 Pending 0 0s
web-2 0/1 ContainerCreating 0 1s
web-2 1/1 Running 0 3s
~~~ # 那么我们同时删除web-0和web-1,让他触发更新
[root@k8s-master01 ~]# kubectl delete po web-0 web-1
pod "web-0" deleted
pod "web-1" deleted
~~~ # 查看对应的镜像版本
[root@k8s-master01 ~]# kubectl get po -oyaml |grep image //可以看到所有的镜像版本都更新为1.15.3
f:image: {}
f:imagePullPolicy: {}
- image: nginx:1.15.3
imagePullPolicy: IfNotPresent
image: nginx:1.15.3
imageID: docker-pullable://nginx@sha256:24a0c4b4a4c0eb97a1aabb8e29f18e917d05abfe1b7a7c07857230879ce7d3d3
f:image: {}
f:imagePullPolicy: {}
- image: nginx:1.15.3
imagePullPolicy: IfNotPresent
image: nginx:1.15.3
imageID: docker-pullable://nginx@sha256:24a0c4b4a4c0eb97a1aabb8e29f18e917d05abfe1b7a7c07857230879ce7d3d3
f:image: {}
f:imagePullPolicy: {}
- image: nginx:1.15.3
imagePullPolicy: IfNotPresent
image: nginx:1.15.3
imageID: docker-pullable://nginx@sha256:24a0c4b4a4c0eb97a1aabb8e29f18e917d05abfe1b7a7c07857230879ce7d3d3
### --- 查看pod的更新流程
[root@k8s-master01 ~]# kubectl get po -l app=nginx -w
web-0 1/1 Terminating 0 12m
web-1 1/1 Terminating 0 12m
web-0 0/1 Terminating 0 12m
web-1 0/1 Terminating 0 12m
web-0 0/1 Terminating 0 13m
web-0 0/1 Pending 0 1s
web-0 0/1 ContainerCreating 0 1s
web-0 1/1 Running 0 3s
web-1 0/1 Pending 0 0s
web-1 0/1 ContainerCreating 0 0s
web-1 1/1 Running 0 2s
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
浙公网安备 33010602011771号