提高安全性
種選擇是在同一集群中使用暫存命名空間。僅使用一名 GitOps Operator 將 GitOps 儲存庫中的所有 K8s 資源部署到叢集中。您所要做的就是確保在 K8s 資源中指定正確的命名空間。 或者,也可以使用臨時集群,其中配置相應的 GitOps 操作員,以便他部署其階段的相應資料夾中的所有內容。登台叢集的 GitOps Operator 僅從登台資料夾部署 K8s 資源。 圖 4:使用 GitOps 進行暫存的資料夾結構範例 使用 GitOps 進行暫存的資料夾結構範例 秘密 IaC 和 GitOps 的聲明式方法迫使秘密的處理方式發生變化,因為將整個狀態儲存在 Git 中不可避免地意味著找到一種將秘密也放在那裡的方法。然而,由於直接且未加密地儲存在 Git 中,它們會帶來大範圍的攻擊。這就是為什麼基本上有兩種方。Git 中秘密的加密存儲 將機密儲存在金鑰管理系統 (KMS) 中並在 Git 中引用。 有一些運算符 沙烏地阿拉伯 電話號碼 可用於這兩種方法。 Git 中使用最廣泛的秘密加密儲存操作符是Bitnami 的Sealed Secrets。使用 KMS 有不同的選項: 執行特殊運算子(例如使用外部秘密) 使用容器儲存介面 (CSI) 將機密安裝到檔案系統中(使用 CSI 驅動程式) 將 side car 插入(注入)到 pod 中(例如使用Hashicorp Vault k8s) GitOps 操作員具有對 KMS 的本機支援或透過插件(例如使用sops-secrets) 無論您是否考慮使用 GitOps,您都應該(如果還沒有的話)評估您對機密的使用。這裡介紹的方法也可以在沒有 GitOps 的情況下使用,並提高基礎設施的安全性。 非同步和錯誤處理 在直接執行Kubernetes指令的經典管道中,發生的錯誤可以直接處理和報告。
https://lh7-us.googleusercontent.com/9d5PQDPe_7Cw1mh5GFrRtCyH2Utax3UJ8rVX8zXUy7C5q5oZdy0AmQxkk2h1v0QPyDuPX78djFN8u1h95XQq_LrCQM4WN41N6xcdVYciUDrSBq2szr4WxYh6Oi3UEFaPKj8nP65YotjWkUsCF81GGu0
GitOps 的非同步特性不可避免地使錯誤處理變得更加困難。由於直到 GitOps 操作員實際應用資源後才會發生錯誤,因此必須以非同步方式處理這些錯誤。為此,GitOps 操作員通常會攜帶用於通知或指標的工具。此外,還可以使用 CI 管道來實現驗證機制,這可用於減少回饋週期(「早期失敗」)。這主要涉及語法錯誤。 此外,這種類型的驗證與叢集策略結合起來才有意義。違反一項或多項政策的資源將被准入控制器拒絕,並且不會應用於叢集。由於非同步性,您不會直接注意到這一點,這會使錯誤處理更加困難。透過在 CI 管道中使用適當的工具根據策略定義測試資源,GitOps 操作員可以在部署之前修正可能的錯誤。 GitOps 工具 目前最受歡迎的 GitOps 工具是ArgoCD和Flux v2。
頁:
[1]