上一篇提到 StatefulSet 是與 Deployment 不同之處,今日要針對下面兩個特點,特別獨立出此篇來敘述。
StatefulSet Pods 具有一組唯一識別的 ordinal,穩定的網路狀態與儲存服務,
無需在意 pod 是在哪些 K8s node 上運行。
官網解說的,上面敘述的方法使我自己也好複雜,需要心靜的腦筋消化~
下面有簡單的解說方式~
$(statefulset name)-$(ordinal).$(service name).$(namespace).svc.cluster.local
* $(statefulset name) 是 StatefulSet 的名字。
* -$(ordinal) 是 StatefulSet Pod 賦予的一組整數序號,從 0 開始至 N-1。
* $(service name) 是 Headless Service 的名字。
* $(namespace) 是服務所在的 namespace,Headless Service 和 StatefulSet 需在相同的 namespace。
* .cluster.local 是 Cluster Domain。
StorageClassName
的 PV,只許被相同 StorageClassName
的 PVC 綁定請求。StorageClassName
的 PV,只有無指定 StorageClassName
的 PVC 綁定請求。K8s API server 上的 DefaultStorageClass 是否啟用,攸關到 StorageClass default 的變因。
StorageClassName
,則會套用 default StorageClassName。StorageClassName
,當 PVC 創建時 K8s 會回應。storageClassName
的 PVC 與 「 storageClassName: ""
的 PVC 」 的處理方式相同。考書籍\文章出處:
Kubernetes 建置與執行 書中 P.180~181 內容。 https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/ https://jimmysong.io/kubernetes-handbook/concepts/statefulset.html https://feisky.gitbooks.io/kubernetes/concepts/statefulset.html