一、StatefulSet删除
### --- StatefulSet删除方式
~~~ 级联删除:删除StatefulSet时同时删除pod;默认使用级联删除。
~~~ 非级联删除:删除StatefulSet时不删除pod
二、StatefulSet级联删除
### --- 级联删除(默认)
[root@k8s-master01 ~]# kubectl get sts
NAME READY AGE
web 4/4 60m
### --- 删除StatefulSet类型的资源
~~~ 在进行delete的时候是级联删除。
~~~ 把StatefulSet删除之后pod也会被删除掉
[root@k8s-master01 ~]# kubectl delete sts web
statefulset.apps "web" deleted
### --- 查看删除过程,pod也被删除掉了
[root@k8s-master01 ~]# kubectl get po
NAME READY STATUS RESTARTS AGE
web-0 0/1 Terminating 0 24m
web-1 0/1 Terminating 0 24m
web-2 0/1 Terminating 0 5m19s
web-3 0/1 Terminating 0 5m30s
三、StatefulSet非级联删除
### --- 创建nginx-statefulset类型资源
[root@k8s-master01 ~]# kubectl create -f nginx-sts.yaml
statefulset.apps/web created
### --- 查看创建的pod
[root@k8s-master01 ~]# kubectl get po
NAME READY STATUS RESTARTS AGE
busybox 1/1 Running 0 35s
web-0 1/1 Running 0 13s
web-1 1/1 Running 0 7s
### --- 非级联删除资源
[root@k8s-master01 ~]# kubectl delete sts web --cascade=false //非级联删除
warning: --cascade=false is deprecated (boolean value) and can be replaced with --cascade=orphan.
statefulset.apps "web" deleted
### --- 查看删除后StatefulSet资源
[root@k8s-master01 ~]# kubectl get sts //删除后StatefulSet消失了
No resources found in default namespace.
### --- 查看StatefulSet资源删除后pod是否存在
~~~ 这个判断在删除StatefulSet之后变成了一个孤儿Pod,就没有人去管理它了。
[root@k8s-master01 ~]# kubectl get po //但是它的Pod还在
NAME READY STATUS RESTARTS AGE
busybox 1/1 Running 0 2m28s
web-0 1/1 Running 0 2m6s
web-1 1/1 Running 0 2m
### --- 再次去删除这个Pod的时候是不会被重建
~~~ 但是之前StatefulSet存在的时候,删除了pod之后就会重建,
~~~ 因为StatefulSet中有controller去管理它。是能达到我们的期望值。
~~~ 非级联删除在生产环境中是用不到的。
[root@k8s-master01 ~]# kubectl delete po web-1 web-0
pod "web-1" deleted
pod "web-0" deleted
附录一:从容器中导出镜像导入镜像
### --- 从容器中导出镜像导入镜像
[root@k8s-master01 ~]# kubectl get po -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES <none>
web-3 1/1 Running 0 5m46s 172.25.92.76 k8s-master02 <none>
### --- 将nginx的镜像从pod中导出
[root@k8s-master01 ~]# docker save nginx:1.15.2 -o nginx.tar
[root@k8s-master01 ~]# scp nginx.tar k8s-master02:/root/ // 将镜像传送到web-3所在的宿主机上
nginx.tar
[root@k8s-master02 ~]# docker load -i nginx.tar // 将镜像导入到容器中。