Kubernetes最佳實踐生產檢查清單

banq發表於2022-11-24

此清單提供了可操作的最佳實踐,用於在 Kubernetes 上部署安全、可擴充套件且有彈性的服務。
內容是開源的,可以在這個儲存庫中找到。

1. 應用開發

  • 健康檢查
  • 資訊
  • 容器有就緒探測
  • 出現致命錯誤時容器會崩潰
  • 配置被動 Liveness 探測Liveness 探測值與 Readiness 不同
  • 應用程式是獨立的資訊
  • 就緒探測器是獨立的該應用程式重試連線到相關服務
  • 優雅關機資訊該應用程式不會在 SIGTERM 上關閉,但會正常終止連線該應用程式仍在寬限期內處理傳入的請求
  • 中的CMDDockerfile將SIGTERM轉發給程式關閉所有空閒的保活套接字容錯性資訊為您的 Deployment 執行多個副本
  • 避免 Pod 被放置在單個節點中
  • 設定 Pod 中斷預算資源利用資訊為所有容器設定記憶體限制和請求
  • 將 CPU 請求設定為 1 個 CPU 或以下
  • 禁用 CPU 限制——除非你有很好的用例名稱空間有一個 LimitRange為 Pod 設定適當的服務質量 (QoS)標記資源資訊資源定義了技術標籤
  • 部署.yaml資源定義了業務標籤
  • 部署.yaml
  • 資源定義了安全標籤
  • 部署.yaml記錄資訊
  • 應用程式登入stdout並stderr
  • 避免使用 sidecars 進行日誌記錄(如果可以的話)縮放資訊容器不在本地檔案系統中儲存任何狀態將 Horizo​​ntal Pod Autoscaler 用於具有可變使用模式的應用程式請勿在 Vertical Pod Autoscaler 仍處於測試階段時使用它
  • 如果您的工作負載變化很大,請使用 Cluster Autoscaler配置和秘密資訊外部化所有配置將 Secrets 安裝為卷,而不是環境變數


2.治理

  • 名稱空間限制資訊
  • 名稱空間有 LimitRange
  • 名稱空間有 ResourceQuotas
  • Pod 安全策略資訊
  • 啟用 Pod 安全策略
  • 禁用特權容器在容器中使用只讀檔案系統
  • 防止容器以 root 身份執行
  • 限制能力防止特權升級網路政策資訊啟用網路策略
  • 每個名稱空間中都有一個保守的 NetworkPolicy基於角色的訪問控制 (RBAC) 策略資訊禁用預設 ServiceAccount 的自動掛載RBAC 策略設定為所需的最少許可權
  • RBAC 策略是細粒度的且不共享
  • 自定義策略資訊
  • 僅允許從已知登錄檔部署容器強制 Ingress 主機名的唯一性入口.yaml僅在 Ingress 主機名中使用批准的域名入口.yaml


3.叢集配置
本節正在進行中。您對應該包括哪些內容有意見嗎?

  • 提出問題。批准的 Kubernetes 配置資訊
  • 叢集透過 CIS 基準測試狂歡
  • 禁用後設資料雲提供商後設資料 API
  • 限制對 alpha 或 beta 功能的訪問驗證資訊使用 OpenID (OIDC) 令牌作為使用者身份驗證策略基於角色的訪問控制 (RBAC)資訊ServiceAccount 令牌僅適用於應用程式和控制器記錄設定資訊有日誌的保留和歸檔策略
  • 日誌是從節點、控制平面、審計中收集的更喜歡每個節點上的守護程式來收集日誌而不是邊車提供日誌聚合工具

相關文章