![GKE 叢集遺失數據](https://rvso.com/image/761000/GKE%20%E5%8F%A2%E9%9B%86%E9%81%BA%E5%A4%B1%E6%95%B8%E6%93%9A.png)
我是 GCP 的新手,請原諒我的無知。
我有一個正在運行資料庫應用程式的 3 節點 GKE 叢集。每個節點分配有 100GB 標準永久磁碟。然而,我經常發現(自 8 月以來至少發生過 3 次),我啟動後資料遺失,並且任何已設定的防火牆規則都被重置為預設值。
我可以:
- 阻止DB中的資料被刪除
- 防止防火牆規則被重置
這是因為基礎設施升級嗎?
答案1
將此答案發佈為社群 wiki 作為問題的基本主題可能有點廣泛。
請隨意擴展它。
為什麼GKE
集群會遺失資料?
如果沒有有關應用程式/工作負載如何準確部署在GKE
叢集上的具體信息,可能很難找出實際問題。
值得一提的是以下幾點:
- 期望儲存資料(如資料庫)的工作負載應該使用
Persistent Volumes
。如果節點發生故障,儲存在節點上的資料PV
不會遺失,因為它將儲存在不同的實體上。
PersistentVolume
資源用於管理叢集中的持久性儲存。在 中GKE
,aPersistentVolume
通常由永久磁碟支援。
有一份使用持久性磁碟和 Cloud SQL 在 GKE 上部署 WordPress 的指南。它可以用作使用PVC
(持久性磁碟)部署工作負載的範例:
Pods
如果進行任何 pod 重新創建,儲存在未進行任何配置的資料Volumes
將會遺失。儲存在
GKE
節點啟動磁碟上的資料在更新過程中不會持續存在。
對節點 VM 啟動磁碟的修改不會在節點重新建立後持續存在。若要在節點重新建立過程中保留修改,請使用 DaemonSet。
參考所提出的問題
我是 GCP 的新手,請原諒我的無知。
我鼓勵您訪問GCP
和的官方文件GKE
。您會發現有很多資訊/指南和範例可供遵循:
每個節點分配有 100GB 標準永久磁碟。
該磁碟專門用作GKE
節點的啟動磁碟,不應用作儲存資料的位置。您可以Persistent Volumes
按照前面提到的方式使用或選擇本地 SSD,您可以透過以下連結閱讀更多:
但是,我經常發現(自 8 月以來至少發生過 3 次)啟動後資料遺失
GKE
叢集和節點無法關閉。您可以做的是減少(擴展)節點池中的節點數量。您的意思是連接到它嗎?
任何已實施的防火牆規則都將重設為預設值。
您不應重新配置GKE
節點的防火牆規則。相反,您應該使用位於Cloud Console
(Web UI) -> VPC Network
->中的 GCP 防火牆Firewall
。由於節點升級或故障而重新建立的節點將重置防火牆規則。
我可以:
- 阻止DB中的資料被刪除
- 防止防火牆規則被重置
這是因為基礎設施升級嗎?
您可以考慮(取決於您的特定用例)使用實例GCE
而不是GKE
叢集。GKE
是一個託管 Kubernetes 集群,旨在運行容器化工作負載,其中某些部分由 Google 管理(例如控制平面)。
至於基礎設施升級,您可以透過以下連結查看叢集升級時會發生什麼:
附加參考:
- Kubernetes.io
- Cloud.google.com:SQL<-
DB
在 GCP 中運行的替代解決方案