Firewall

GKE 集群失去數據

  • December 18, 2020

我是 GCP 的新手,所以請原諒我的無知。

我有一個執行數據庫應用程序的 3 節點 GKE 集群。每個節點都分配了一個 100GB 的標準永久性磁碟。但是,我發現每隔一段時間(自 8 月以來至少發生 3 次)我啟動並且數據失去並且任何已實施的防火牆規則都被重置為預設值。

我可以:

  1. 阻止數據庫中的數據被擦除
  2. 防止防火牆規則被重置

這是因為基礎設施升級嗎?

將此答案發佈為社區 wiki 作為問題的基本主題可能有點寬泛。

隨意擴展它。


為什麼GKE集群會失去數據?

如果沒有關於應用程序/工作負載如何準確部署在GKE集群上的具體資訊,可能很難查明實際問題。

值得一提的是以下幾點:

  • 期望儲存數據的工作負載(如數據庫)應該使用Persistent Volumes. 如果節點發生故障,儲存在 a 上的數據PV不會失去,因為它將儲存在不同的實體上。

PersistentVolume資源用於管理集群中的持久儲存。在GKE中,aPersistentVolume通常由永久磁碟支持。

Cloud.google.com:Kubernetes 引擎:文件:概念:持久卷

有一個使用持久磁碟和雲 SQL 在 GKE 上部署 WordPress 的指南。它可以用作使用PVC(持久磁碟)部署工作負載的範例:

  • 如果重新創建任何 pod,儲存在Pods其中的數據Volumes將失去。
  • 儲存在GKE節點引導磁碟上的數據不會在更新之間保持不變。

節點 VM 引導磁碟上的修改不會在節點重新創建之間持續存在。要在節點重新創建時保留修改,請使用 DaemonSet。

Cloud.google.com:Kubernetes Engine:文件:如何:節點自動升級:概述


參考提出的問題

我是 GCP 的新手,所以請原諒我的無知。

我鼓勵您訪問 和 的官方GCP文件GKE。您可以找到很多資訊/指南和範例:

每個節點都分配了一個 100GB 的標準永久性磁碟。

此磁碟專門用作GKE節點的引導磁碟,不應用作儲存數據的地方。您可以Persistent Volumes如前所述使用或選擇本地 SSD,您可以通過以下連結閱讀更多內容:

但是,我經常發現(自 8 月以來至少發生 3 次)我啟動並且數據失去了

GKE集群和節點無法關閉。您可以做的是減少(縮放)節點池中的節點數量。你的意思是你連接到它嗎?

任何已實施的防火牆規則都將重置為預設值。

您不應該重新配置GKE節點的防火牆規則。相反,您應該使用位於Cloud Console(Web UI) -> VPC Network->中的 GCP 防火牆Firewall。由於節點升級或故障而重新創建的節點將重置防火牆規則。

我可以:

  1. 阻止數據庫中的數據被擦除
  2. 防止防火牆規則被重置

這是因為基礎設施升級嗎?

您可以考慮(取決於您的確切案例)使用GCE實例而不是GKE集群。GKE是一個託管的 Kubernetes 集群,旨在執行容器化工作負載,其中一些部分由 Google 管理(例如控制平面)。

至於基礎架構升級,您可以通過以下連結查看升級集群時會發生什麼:


附加參考:

引用自:https://serverfault.com/questions/1045799