View a markdown version of this page

使用 Argo CD - Amazon EKS

協助改進此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 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:

  1. 開啟 Amazon EKS 主控台

  2. 選取您的叢集

  3. 選擇功能索引標籤

  4. 選擇 Argo CD

  5. 選擇開啟 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-codemy-clustermy-argocd 取代為您的值:

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-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 功能服務網域。

例如,111122223333us-west-2 區域中 my-cluster帳戶中叢集my-argocd上名為 的功能具有類似如下的端點:

https://my-argocd-dc855fdf-111122223333.eks-capabilities.us-west-2.amazonaws.com

主機名稱使用標準化功能名稱,但雜湊使用您指定的原始名稱。例如,叢集Payments_GitOps上的 功能會在主機名稱payments-gitopsmy-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-capabilitydescribe-capabilitylist-capabilities操作會傳回此 ARN. AWS Identity Center 身分驗證和 Argo CD 角色型存取控制 (RBAC) 控制對 Argo CD UI 和 API 的存取。

如果您設定私有端點存取,主機名稱只會解析為與您的 VPC 端點相關聯的私有 IP 地址。您只能從 VPC 或連線網路存取端點。如需詳細資訊,請參閱設定 Argo CD 的私有端點存取

上游文件

如需 Argo CD 功能的詳細資訊: