協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 eksctl 建立 Argo CD 功能
使用 eksctl 在 Amazon EKS 叢集上建立 Argo CD 功能。
注意
下列步驟需要 eksctl 版本 0.215.0 或更新版本。若要檢查您的版本,請執行 eksctl version。
先決條件
-
AWS 已設定 Identity Center – Argo CD 需要 AWS Identity Center 進行身分驗證。不支援本機使用者。如果您沒有設定 AWS Identity Center,請參閱 AWS Identity Center 入門以建立 Identity Center 執行個體,以及新增使用者和新增群組以建立使用者和群組以進行 Argo CD 存取。
-
Identity AWS Center 中至少有一個使用者或群組 – 您必須在 Identity Center 執行個體中設定至少一個使用者或群組,以指派 Argo CD RBAC 角色映射並提供 Argo CD UI 的存取權。
步驟 1:建立 IAM 功能角色
建立信任政策檔案:
cat > argocd-trust-policy.json << 'EOF' { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "capabilities.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] } EOF
建立 IAM 角色:
aws iam create-role \ --role-name ArgoCDCapabilityRole \ --assume-role-policy-document file://argocd-trust-policy.json
注意
對於此基本設定,不需要額外的 IAM 政策。如果您打算將 Secrets Manager 用於儲存庫登入資料或 CodeConnections,則需要將許可新增至角色。如需 IAM 政策範例和組態指引,請參閱 使用 AWS Secrets Manager 管理應用程式秘密和 使用 AWS CodeConnections 連線至 Git 儲存庫。
步驟 2:取得 AWS Identity Center 組態
取得 RBAC 組態的 Identity Center 執行個體 ARN 和使用者 ID:
# Get your Identity Center instance ARN aws sso-admin list-instances --query 'Instances[0].InstanceArn' --output text # Get a user ID for admin access (replace 'your-username' with your Identity Center username) aws identitystore list-users \ --identity-store-id $(aws sso-admin list-instances --query 'Instances[0].IdentityStoreId' --output text) \ --query 'Users[?UserName==`your-username`].UserId' --output text
請注意這些值 - 您將在下一個步驟中使用這些值。
(選用) 設定私有端點
根據預設,Argo CD UI 和 API 端點可透過網際網路公開存取。如果您需要限制存取,您可以設定 VPC 端點。對於網路安全需求嚴格的環境,建議使用此選項。
為 EKS 功能建立 VPC 端點
在 VPC 中為 EKS 功能服務建立介面 VPC 端點。將 vpc-id、netnet-id-1 subnet-id-2、sg-id 和 region-code 取代為您自己的值:
aws ec2 create-vpc-endpoint \ --vpc-endpoint-type Interface \ --service-name com.amazonaws.region-code.eks-capabilities \ --vpc-idvpc-id\ --subnet-idssubnet-id-1 subnet-id-2\ --security-group-idssg-id\ --regionregion-code
注意
-
子網路應位於不同的可用區域中,以實現高可用性。
-
安全群組必須允許來自需要存取 Argo CD UI 和 API 之網路的傳入 HTTPS (連接埠 443) 流量。
-
請注意此命令傳回的 VPC 端點 ID,建立 功能時需要它。
驗證 VPC 端點是否可用
aws ec2 describe-vpc-endpoints \ --vpc-endpoint-idsvpce-xxxxxxxx\ --query 'VpcEndpoints[0].State' \ --output text \ --regionregion-code
請等到狀態顯示available後再繼續。
步驟 3:建立 eksctl 組態檔案
建立名為 argocd-capability.yaml 且具有下列內容的檔案。將預留位置值取代為您叢集的名稱、叢集的區域、IAM 角色 ARN、身分中心執行個體 ARN、身分中心區域和使用者 ID:
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name:my-clusterregion:cluster-region-codecapabilities: - name: my-argocd type: ARGOCD roleArn:arn:aws:iam::111122223333:role/ArgoCDCapabilityRoledeletePropagationPolicy: RETAIN configuration: argocd: awsIdc: idcInstanceArn:arn:aws:sso:::instance/ssoins-123abcidcRegion:idc-region-coderbacRoleMappings: - role: ADMIN identities: - id:38414300-1041-708a-01af-5422d6091e34type: SSO_USER
注意
您可以將多個使用者或群組新增至 RBAC 映射。對於群組,請使用 type: SSO_GROUP並提供群組 ID。可用的角色為 ADMIN、 EDITOR和 VIEWER。
如果您已設定私有存取的 VPC 端點,請將 networkConfiguration區段新增至功能定義。將 vpce-xxxxxxxx 取代為您的 VPC 端點 ID:
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name:my-clusterregion:cluster-region-codecapabilities: - name: my-argocd type: ARGOCD roleArn: arn:aws:iam::111122223333:role/ArgoCDCapabilityRole deletePropagationPolicy: RETAIN networkConfiguration: elasticNetworkInterfaces: vpcEndpointId:vpce-xxxxxxxxconfiguration: argocd: awsIdc: idcInstanceArn:arn:aws:sso:::instance/ssoins-123abcidcRegion:idc-region-coderbacRoleMappings: - role: ADMIN identities: - id:38414300-1041-708a-01af-5422d6091e34type: SSO_USER
注意
啟用私有端點時,只能透過 VPC 端點存取 Argo CD UI 和 API。使用者必須連線至 VPC (或對等網路) 才能存取 Argo CD 界面。
步驟 4:建立 Argo CD 功能
套用組態檔案:
eksctl create capability -f argocd-capability.yaml
命令會立即傳回,但 功能需要一些時間才會變成作用中。
步驟 5:確認功能為作用中
檢查功能狀態。將 region-code 取代為您的叢集所在的 AWS 區域,並將 my-cluster 取代為您的叢集名稱。
eksctl get capability \ --regionregion-code\ --clustermy-cluster\ --name my-argocd
當狀態顯示 時,此功能已就緒ACTIVE。
步驟 6:確認可用的自訂資源
功能處於作用中狀態後,請確認叢集中是否有可用的 Argo CD 自訂資源:
kubectl api-resources | grep argoproj.io
您應該會看到列出的 ApplicationSet Application和資源類型。
後續步驟
-
使用 Argo CD - 了解如何建立和管理 Argo CD 應用程式
-
Argo CD 考量事項 - 設定 SSO 和多叢集存取
-
使用 功能資源 - 管理您的 Argo CD 功能資源