GitOps:如何在不到一小時內為 25 個集群整合新服務!
大規模引導 Otterize 與 GitOps 通過 Argo CD
有趣的事實:我們只用了不到一個小時來整合新服務,但購買許可證卻用了四個多月。因此,如果其他程序為瓶頸,速度再快也沒有意義。
這篇文章紀錄了我們的整合過程,並希望對您有幫助!
為什麼需要一小時?
每次面對這樣的問題,我都會反問自己!
當添加新的服務到技術堆棧,最大挑戰在於如何無縫地、兼顧性能和擴展性的前提下進行大規模整合。我們需要管理每個工具及其特有的技巧,特別是應用於 SaaS、自我託管的解決方案,以及安全管理憑證和令牌的需求。
我們正是面對這樣的挑戰與 Otterize 合作。除了部署 Helm 圖表,我們還需考慮整體設置——連接到 SaaS,部署控制器等。
我們要處理的內容:
我們追求效率,因此希望保持簡單。要點是自動化,避免手動操作帶來的錯誤和不一致。
接下來,看我們實際上要設置的內容吧。
設置過程
以下為我們努力達到的目標:
- 創建組織:在 Otterize 中創建組織。
- 邀請用戶:邀請合適的成員進入組織。
- 設定環境:創建整合所需的環境。
- 與 Kubernetes 整合:使用
clientId和clientSecret連接到雲解決方案。 - 安全憑證:將
clientId和clientSecret推送到 Azure Key Vault。 - 部署所有內容:使用 Argo CD 部署 Otterize 堆疊、外部秘密操作者以及相關秘密。
逐步 CLI 操作
1. 創建組織
我們用 Otterize CLI 創建了一個組織:
bash
otterize organization create --format json
然後更名以匹配我們的集群和階段:
bash
otterize org update "org_..." --name "cluster-name-stage"
2. 創建環境
接著,創建環境:
bash
otterize environment create --org-id "org_fcb967hrqz" --name test3 --labels test=true,env=test,env2=test2 --format json
3. 邀請組織用戶
我們發送邀請給團隊成員:
bash
otterize invites --org-id "org_..." create --email "[email protected]"
4. 與 Kubernetes 整合
接著,創建 Kubernetes 整合:
bash
otterize integrations create --org-id "org_...." kubernetes --env-id env_6u... --name test-k8s --format json
5. 推送憑證至 Azure Key Vault
我們將憑證安全存儲到 Azure Key Vault:
bash
az keyvault secret set --vault-name kv... --name "otterize-cloud-client-secret" --value ".." >/dev/null
az keyvault secret set --vault-name kv... --name "otterize-cloud-client-id" --value ".." >/dev/null
6. 更新 Helm 圖表值
最後,我們用必要的憑證更新了 Helm 圖表:
yaml
otterizeCloud:
certificateProvider: otterize-cloud
credentials:
clientId: "cli..."
clientSecretKeyRef:
secretName: otterize-cloud-credentials-secret-key
secretKey: otterize-cloud-client-secret
使用 Python 模板自動將 clientId 插入我們的值中。經過自動化腳本,我們的設定成功無誤地部署完成。
結論
透過 GitOps 與 Argo CD 及 External Secrets 等工具,我們得以簡化設置流程。希望這份指南能對您有所啟發!
若您想了解 Otterize 與 Otterize Cloud 的詳細內容,可參考我們的上一篇博文。
還有更多精彩的博客可參考:Otter’s Den。
聯絡方式
若有疑問或想保持聯繫,請直接在 LinkedIn 上與我們連結,不要忘了訂閱 Medium Newsletter!