# 执行创建 $ kubectl create -f statefulset.yaml statefulset.apps/web created
$ kubectl get pod NAME READY STATUS RESTARTS AGE pod/nfs-client-provisioner-6c6997c674-z7m9r 1/1 Running 0 18m pod/web-0 1/1 Running 0 13m pod/web-1 1/1 Running 0 12m
$ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE persistentvolumeclaim/www-disk-web-0 Bound pvc-a440540e-01dd-11e9-b006-00505621dd5b 1Gi RWO managed-nfs-storage 13m persistentvolumeclaim/www-disk-web-1 Bound pvc-af5c7006-01dd-11e9-b006-00505621dd5b 1Gi RWO managed-nfs-storage 12m
扩容服务到3个Pod,显示会创建新的云盘卷:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
$ kubectl scale sts web --replicas=3 statefulset.apps/web scaled
$ kubectl get pod NAME READY STATUS RESTARTS AGE nfs-client-provisioner-6c6997c674-z7m9r 1/1 Running 0 19m web-0 1/1 Running 0 14m web-1 1/1 Running 0 14m web-2 1/1 Running 0 40s
$ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE www-disk-web-0 Bound pvc-a440540e-01dd-11e9-b006-00505621dd5b 1Gi RWO managed-nfs-storage 14m www-disk-web-1 Bound pvc-af5c7006-01dd-11e9-b006-00505621dd5b 1Gi RWO managed-nfs-storage 14m www-disk-web-2 Bound pvc-97afce59-01df-11e9-b006-00505621dd5b 1Gi RWO managed-nfs-storage 38s
缩容服务到1个Pod,显示pvc/pv并不会一同删除:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
$ kubectl scale sts web --replicas=1 statefulset.apps/web scaled
$ kubectl get pod NAME READY STATUS RESTARTS AGE nfs-client-provisioner-6c6997c674-z7m9r 1/1 Running 0 21m web-0 1/1 Running 0 16m
$ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE www-disk-web-0 Bound pvc-a440540e-01dd-11e9-b006-00505621dd5b 1Gi RWO managed-nfs-storage 16m www-disk-web-1 Bound pvc-af5c7006-01dd-11e9-b006-00505621dd5b 1Gi RWO managed-nfs-storage 16m www-disk-web-2 Bound pvc-97afce59-01df-11e9-b006-00505621dd5b 1Gi RWO managed-nfs-storage 2m
再次扩容到3个Pod,新的pod会复用原来的PVC/PV:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
$ kubectl scale sts web --replicas=3 statefulset.apps/web scaled
$ kubectl get pod NAME READY STATUS RESTARTS AGE pod/nfs-client-provisioner-6c6997c674-z7m9r 1/1 Running 1 46m pod/web-0 1/1 Running 0 3m pod/web-1 1/1 Running 0 1m pod/web-2 1/1 Running 0 18s
$ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE persistentvolumeclaim/www-disk-web-0 Bound pvc-a440540e-01dd-11e9-b006-00505621dd5b 1Gi RWO managed-nfs-storage 41m persistentvolumeclaim/www-disk-web-1 Bound pvc-af5c7006-01dd-11e9-b006-00505621dd5b 1Gi RWO managed-nfs-storage 40m persistentvolumeclaim/www-disk-web-2 Bound pvc-97afce59-01df-11e9-b006-00505621dd5b 1Gi RWO managed-nfs-storage 27m