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