6 條起始原則 • TechCrunch


Kubernetes 很快 成為行業標準,最多 94% 根據一項調查,在容器編排平台上部署服務和應用程序的組織。 公司部署 Kubernetes 的關鍵原因之一是標準化,它讓高級用戶看到生產力提高了兩倍。

Kubernetes 標準化使組織能夠在任何地方部署任何工作負載。 但是缺少了一塊:該技術假設工作負載是短暫的,這意味著只有無狀態的工作負載才能安全地部署在 Kubernetes 上。 然而,社區最近改變了範式並帶來了 StatefulSets 和 Storage Classes 等功能,這使得在 Kubernetes 上使用數據成為可能。

雖然在 Kubernetes 上運行有狀態工作負載是可能的,但它仍然具有挑戰性。 在本文中,我提供了實現它的方法以及它的價值所在。

循序漸進

Kubernetes 正朝著與 Linux 一樣流行的方向發展,並成為以分佈式方式在任何地方運行任何應用程序的實際方式。 使用 Kubernetes 需要學習很多技術概念和詞彙。 例如,新手可能難以理解許多 Kubernetes 邏輯單元,例如容器、pod、節點和集群。

如果您還沒有在生產環境中運行 Kubernetes,請不要直接進入數據工作負載。 相反,從移動無狀態應用程序開始,以避免在出現問題時丟失數據。

如果找不到符合您需求的運算符,請不要擔心,因為它們中的大多數都是開源的。

了解局限性和特殊性

一旦您熟悉了一般的 Kubernetes 概念,就可以深入了解有狀態概念的細節。 例如,由於應用程序可能有不同的存儲需求,例如性能或容量要求,您必須提供正確的底層存儲系統。

業界通常所說的存儲“配置文件”在 Kubernetes 中被稱為存儲類。 它們提供了一種方法來描述 Kubernetes 集群可以訪問的不同類型的類。 存儲類別可以具有不同的服務質量級別,例如每秒每 GiB 的 I/O 操作數、備份策略或任意策略,例如綁定模式和允許的拓撲。

另一個需要了解的關鍵組件是 StatefulSet。 它是用於管理有狀態應用程序的 Kubernetes API 對象,並提供以下關鍵功能:

  • 穩定、唯一的網絡標識符,讓您跟踪卷,並根據需要分離和重新連接它們;
  • 穩定、持久的存儲,讓您的數據安全;
  • 有序、優雅的部署和擴展,這是許多第 2 天操作所必需的。

雖然 StatefulSet 已成功替代臭名昭著的 PetSet(現已棄用),但它仍然不完善且存在局限性。 例如,StatefulSet 控制器有 沒有對卷 (PVC) 大小調整的內置支持 — 如果您的應用程序數據集的大小即將增長到超過當前分配的存儲容量,這將是一個重大挑戰。 有 變通辦法,但必須提前充分了解這些限制,以便工程團隊知道如何處理它們。

發佈留言