K8s 也有設計模式?你知道嗎?
受 GoF(Gang of Four)設計模式的啟發,k8s 設計模式代表了我們在云原生應用程序中遵循的最佳實踐。
圖片
一、基礎模式 (Foundational Patterns)
無論應用程序的性質如何,這些模式都是在 k8s 上實現應用程序自動化的基本原則。
- 健康探針模式
這種模式要求每個容器都必須實現可觀察的 API,以便平臺管理應用程序。例如,k8s 可以通過 API 探測應用程序的狀態。我們通過這種模式促進 Pod 的生命周期管理。
- 可預測需求模式
這種模式要求我們聲明應用需求和運行時依賴。每個容器都應聲明其資源概況。
- 自動調度模式
該模式描述了 Kubernetes 的調度算法原理。
二、結構模式 (Structural Patterns)
這些模式側重于在 Pod 中構建和組織容器。
- 初始化容器模式
該模式為初始化重載任務提供了一個獨立的生命周期。
- Sidecar 模式
這種模式在不改變容器的情況下擴展容器的功能。
三、行為模式 (Behavioral Patterns)
這些模式描述 Pod 的生命周期管理。根據工作負載的類型,它可以作為服務或批處理作業運行。
- 批處理作業模式
該模式用于管理孤立的原子工作單元。
- 有狀態服務模式
這種模式創建分布式有狀態應用程序。
- 服務發現模式
該模式描述客戶端如何發現服務。
四、高層模式 (Higher-Level Patterns)
這些模式側重于更高層次的應用程序管理。
- 控制器模式
該模式監控當前狀態,并與聲明的目標狀態進行協調。
- 操作員模式
該模式以算法和自動化形式定義操作知識。