協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Argo CD
使用 Argo CD,您可以在 Git 儲存庫中定義應用程式,Argo CD 會自動將其同步到 Kubernetes 叢集。這可透過自動偏離偵測來啟用宣告式、版本控制的應用程式部署。
先決條件
在使用 Argo CD 之前,您需要:
-
建立 Argo CD 功能的 EKS 叢集 (請參閱 建立 Argo CD 功能)
-
包含 Kubernetes 資訊清單的 Git 儲存庫
-
kubectl設定為與您的叢集通訊
一般任務
下列主題會引導您完成常見的 Argo CD 任務:
設定儲存庫存取 - 設定 Argo CD 以使用 AWS Secrets Manager、 AWS CodeConnections 或 Kubernetes Secrets 存取您的 Git 儲存庫。
註冊目標叢集 - 註冊 Argo CD 將部署應用程式的目標叢集。
使用 Argo CD 專案 - 使用適用於多租戶環境的專案來組織應用程式並強制執行安全界限。
設定 Argo CD 設定 - 使用 ConfigMap argocd-cm 設定 Argo CD 行為,包括自訂資源的自訂運作狀態檢查。
建立應用程式 - 使用自動或手動同步政策,建立從 Git 儲存庫部署的應用程式。
使用 ApplicationSets - 使用 ApplicationSets,使用 範本和產生器在多個環境或叢集中部署應用程式。
存取 Argo CD UI
透過 EKS 主控台存取 Argo CD UI:
-
開啟 Amazon EKS 主控台
-
選取您的叢集
-
選擇功能索引標籤
-
選擇 Argo CD
-
選擇開啟 Argo CD UI
UI 提供視覺化應用程式拓撲、同步狀態和歷史記錄、資源運作狀態和事件、手動同步控制和應用程式管理。
Argo CD 端點 URL
當您建立 Argo CD 功能時,您會同時收到 Argo CD UI 和 API 的唯一端點。端點主機名稱是確定性的:它使用您已知道的值,例如您的功能名稱、叢集名稱、 AWS 帳戶 ID 和 AWS 區域。如果您刪除功能並使用相同的叢集名稱和功能名稱重新建立它,您會取得相同的端點。由於主機名稱是可預測的,您可以事先建構它。例如,您可以在功能完成佈建之前預先設定 DNS、自動化或 Git Webhook 整合。對於任何功能, serverUrl的值describe-capability是最終端點。
注意
由於端點是重複使用的,指向先前功能的整合 - Git Webhook、字符和 DNS 記錄 - 會自動連接到新的功能,而不表示執行個體已變更。重新建立功能後,請重新驗證這些整合,並輪換與先前執行個體共用的任何 Webhook 秘密或字符。
擷取端點
若要取得功能的確切端點,請使用 describe-capability命令並讀取 serverUrl值。將 region-code、my-cluster 和 my-argocd 取代為您的值:
aws eks describe-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-namemy-argocd\ --query 'capability.configuration.argoCd.serverUrl' \ --output text
注意
欄位serverUrl和端點的 DNS 記錄會在功能狀態變更為 後提供ACTIVE。
端點格式
Argo CD 端點使用以下格式:
https://capability-name-hash-account-id.eks-capabilities.region-code.amazonaws.com
主機名稱包含下列元件:
-
capability-name– Argo CD 功能的名稱,標準化為小寫,每個底線 (_) 以連字號 () 取代-。如果標準化名稱超過 41 個字元,則會截斷為 41 個字元。 -
hash– 使主機名稱唯一的 8 個字元十六進位值。這是功能名稱和叢集名稱 SHA-256 雜湊的前 8 個字元。名稱會以正斜線 () 聯結capability-name/cluster-name。使用您在建立 功能時指定的確切名稱。此值僅提供唯一性,並非安全性控制項。 -
account-id– 您的 12 位數 AWS 帳戶 ID。 -
eks-capabilities.region-code.amazonaws.com– 您 AWS 區域的 EKS 功能服務網域。
例如,111122223333在 us-west-2 區域中 my-cluster帳戶中叢集my-argocd上名為 的功能具有類似如下的端點:
https://my-argocd-dc855fdf-111122223333.eks-capabilities.us-west-2.amazonaws.com
主機名稱使用標準化功能名稱,但雜湊使用您指定的原始名稱。例如,叢集Payments_GitOps上的 功能會在主機名稱payments-gitops中my-cluster標準化為 ,其雜湊來自原始字串 Payments_GitOps/my-cluster:
https://payments-gitops-4ce0b382-111122223333.eks-capabilities.us-west-2.amazonaws.com
注意
使用describe-capability輸出來確認 AWS 區域的確切端點。
您可以自行計算雜湊元件。sha256sum 在 Linux 或 macOS shasum -a 256上使用 。下列命令會在叢集 my-argocd上使用範例功能my-cluster。取代您在建立 功能時指定的確切名稱:
# Linux printf '%s' "my-argocd/my-cluster" | sha256sum | cut -c1-8 # macOS printf '%s' "my-argocd/my-cluster" | shasum -a 256 | cut -c1-8
這兩個命令都會傳回 dc855fdf。
端點存取和安全性
端點主機名稱不是秘密,而且知道它不會授予對 Argo CD 執行個體的存取權。主機名稱會公開已在功能 Amazon Resource Name (ARN) 中出現的相同非秘密資訊。create-capability、 describe-capability和 list-capabilities操作會傳回此 ARN. AWS Identity Center 身分驗證和 Argo CD 角色型存取控制 (RBAC) 控制對 Argo CD UI 和 API 的存取。
如果您設定私有端點存取,主機名稱只會解析為與您的 VPC 端點相關聯的私有 IP 地址。您只能從 VPC 或連線網路存取端點。如需詳細資訊,請參閱設定 Argo CD 的私有端點存取。
上游文件
如需 Argo CD 功能的詳細資訊:
-
Argo CD 文件
- 完整使用者指南 -
Application Spec
- 完整應用程式 API 參考 -
ApplicationSet 指南
- ApplicationSet 模式和範例 -
Argo CD GitHub
- 原始程式碼和範例