本頁說明如何在 Google Kubernetes Engine (GKE) 中使用 StatefulSet 物件。您也可以瞭解如何部署有狀態應用程式。
關於 StatefulSet
StatefulSet 代表一組具有不重複永久身分和穩定主機名稱的 Pod,無論排定在何處,GKE 都會維護這些 Pod。任何 StatefulSet Pod 的狀態資訊和其他彈性資料,都會保留在與 StatefulSet 中每個 Pod 相關聯的持續性磁碟區中。StatefulSet Pod 隨時可以重新啟動。
StatefulSets 在 GKE 和 Kubernetes 中的運作方式類似。這份文件說明 GKE 專屬的注意事項。如要瞭解 StatefulSet 的運作方式,請參閱 Kubernetes 說明文件中關於 StatefulSet 的內容。
規劃 StatefulSet 的網路
StatefulSet 會以 PersistentVolume 和專屬網路 ID (主機名稱) 的形式提供永久儲存空間。下表列出應用程式運算子設定 StatefulSet 時應注意的附帶條件:
網路注意事項 | 說明 | 最佳做法 |
---|---|---|
使用 GKE Service,而非固定 IP 位址 |
雖然 Pod 副本有專屬的序數索引、支援每個副本的磁碟區,以及網路身分 (主機名稱),但如果 GKE 重新排程或逐出 Pod,指派給副本的 IP 位址可能會變更。 |
為減輕網路問題,架構應使用 Kubernetes 服務資源。詳情請參閱「Kubernetes 服務類型」。 |
無頭服務 |
初始化時,StatefulSet 會與相符的無頭服務配對。 |
確認 Service 中的 `metadata.name` 與 StatefulSet 中的 |
同類應用程式探索 |
有狀態應用程式需要最少數量的副本 (仲裁) 才能正常運作,並維持完整可用性。 |
由於 Pod 可能會當機、重新排程或遭到撤銷,StatefulSet 中的每個副本都應能離開並重新加入仲裁。需要對等互連的應用程式應具備透過 Kubernetes 中無標題服務探索其他對等互連的功能。 |
根據就緒探測器和執行中探測器進行健康狀態檢查 |
您的應用程式應視情況正確設定就緒、存活和啟動探測。為每個探查選取逾時時間,取決於應用程式的需求。 |
針對 readiness 探測,請按照下列最佳做法設定應用程式,在準備好處理流量時標示為就緒:
|
如要進一步瞭解探測器,請參閱「設定執行中、就緒和啟動探測器」。
使用 StatefulSet
如要瞭解如何在 GKE 叢集中部署 StatefulSet 並與其互動,請參閱 Kubernetes 說明文件中的 StatefulSet 基本概念。
後續步驟
- 瞭解如何部署有狀態應用程式
- 瞭解如何使用滾動式更新更新 StatefulSet
- 進一步瞭解如何在 GKE 中部署工作負載
- 進一步閱讀 Kubernetes 說明文件中的 StatefulSet
- 參閱教學課程,瞭解如何升級執行有狀態工作負載的叢集