이 페이지 개선에 도움 주기
이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.
AWS CLI를 사용하여 Argo CD 기능 생성
AWS CLI를 사용하여 Amazon EKS 클러스터에서 Argo CD 기능을 생성합니다. 이 절차에서는 IAM 역할을 생성하고, AWS Identity Center 통합을 구성하며, 기능이 활성 상태인지 확인하는 방법을 안내합니다.
사전 조건
-
AWS CLI – 버전
2.12.3이상. 버전을 확인하려면aws --version을 실행합니다. 자세한 내용은 AWS 명령줄 인터페이스 사용 설명서에서 설치하기를 참조하세요. -
kubectl- Kubernetes 클러스터 작업을 위한 명령줄 도구. 자세한 내용은 kubectl 및 eksctl 설정 섹션을 참조하세요. -
구성된 AWS Identity Center - Argo CD에는 인증을 위해 AWS Identity Center가 필요합니다. 로컬 사용자는 지원되지 않습니다. AWS Identity Center를 설정하지 않은 경우 Getting started with AWS Identity Center를 참조하여 Identity Center 인스턴스를 생성하고 사용자 추가 및 그룹 추가를 통해 Argo CD 액세스를 위한 사용자 및 그룹을 생성합니다.
-
AWS Identity Center에 있는 하나 이상의 사용자 또는 그룹 - Argo CD RBAC 역할 매핑을 할당하고 Argo CD UI에 대한 액세스를 제공하려면 Identity Center 인스턴스에 하나 이상의 사용자 또는 그룹이 구성되어 있어야 합니다.
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
참고
AWS Secrets Manager 또는 AWS CodeConnections와의 선택적 통합을 사용하려는 경우 역할에 권한을 추가합니다. IAM 정책 예제 및 구성 지침은 AWS Secrets Manager를 사용하여 애플리케이션 보안 암호 관리 및 AWS CodeConnections를 사용하여 Git 리포지토리에 연결 섹션을 참조하세요.
(선택 사항) 프라이빗 엔드포인트 구성
기본적으로 Argo CD UI 및 API 엔드포인트는 인터넷을 통해 공개적으로 액세스할 수 있습니다. 액세스를 제한해야 하는 경우 VPC 엔드포인트를 구성할 수 있습니다. 네트워크 보안 요구 사항이 엄격한 환경에 권장됩니다.
EKS 기능에 대한 VPC 엔드포인트 생성
VPC에서 EKS 기능 서비스에 대한 인터페이스 VPC 엔드포인트를 생성하세요. vpc-id, subnet-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로 표시될 때까지 기다린 후 계속 진행합니다.
2단계: Argo CD 기능 생성
클러스터에서 Argo CD 기능 리소스를 생성합니다.
먼저 Identity Center 구성에 대한 환경 변수를 설정합니다.
# Get your Identity Center instance ARN (replace region if your IDC instance is in a different region) export IDC_INSTANCE_ARN=$(aws sso-admin list-instances --regionregion-code--query 'Instances[0].InstanceArn' --output text) # Get a user ID for RBAC mapping (replace with your username and region if needed) export IDC_USER_ID=$(aws identitystore list-users \ --regionregion-code\ --identity-store-id $(aws sso-admin list-instances --regionregion-code--query 'Instances[0].IdentityStoreId' --output text) \ --query 'Users[?UserName==your-username].UserId' --output text) echo "IDC_INSTANCE_ARN=$IDC_INSTANCE_ARN" echo "IDC_USER_ID=$IDC_USER_ID"
Identity Center 통합을 사용하여 기능을 생성합니다. region-code를 클러스터가 위치한 AWS 리전으로 바꾸고 my-cluster를 클러스터 이름으로 바꾸며 idc-region-code를 Identity Center 인스턴스가 있는 리전 코드로 바꿉니다.
aws eks create-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-argocd \ --type ARGOCD \ --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/ArgoCDCapabilityRole \ --delete-propagation-policy RETAIN \ --configuration '{ "argoCd": { "awsIdc": { "idcInstanceArn": "'$IDC_INSTANCE_ARN'", "idcRegion": "'idc-region-code'" }, "rbacRoleMappings": [{ "role": "ADMIN", "identities": [{ "id": "'$IDC_USER_ID'", "type": "SSO_USER" }] }] } }'
프라이빗 액세스를 위해 VPC 엔드포인트를 구성한 경우 network-configuration 파라미터를 포함하여 프라이빗 엔드포인트로 기능을 생성하세요. vpce-xxxxxxxx를 VPC 엔드포인트 ID로 바꾸세요.
aws eks create-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-argocd \ --type ARGOCD \ --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/ArgoCDCapabilityRole \ --delete-propagation-policy RETAIN \ --network-configuration '{ "elasticNetworkInterfaces": { "vpcEndpointId": "'vpce-xxxxxxxx'" } }' \ --configuration '{ "argoCd": { "awsIdc": { "idcInstanceArn": "'$IDC_INSTANCE_ARN'", "idcRegion": "'idc-region-code'" }, "rbacRoleMappings": [{ "role": "ADMIN", "identities": [{ "id": "'$IDC_USER_ID'", "type": "SSO_USER" }] }] } }'
명령은 즉시 반환되지만, EKS가 필요한 기능 인프라 및 구성 요소를 생성하므로 기능이 활성 상태가 되려면 다소 시간이 걸립니다. EKS는 기능 생성 중 클러스터에서 모든 Kubernetes 사용자 지정 리소스 정의(CRD)를 설치합니다.
참고
클러스터가 존재하지 않는다는 오류가 발생하거나 권한이 없는 경우 다음을 확인합니다.
-
클러스터 이름이 올바른지
-
AWS CLI가 올바른 리전에 구성되었는지
-
필요한 IAM 권한이 있음
3단계: 기능이 활성 상태인지 확인
기능이 활성 상태가 될 때까지 기다립니다. region-code를 클러스터가 있는 AWS 리전으로 바꾸고 my-cluster를 클러스터 이름으로 바꿉니다.
aws eks describe-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-argocd \ --query 'capability.status' \ --output text
상태가 ACTIVE로 표시되면 기능이 준비된 것입니다. ACTIVE 상태가 될 때까지 기다린 후 다음 단계를 진행합니다.
전체 기능 세부 정보를 볼 수도 있습니다.
aws eks describe-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-argocd
4단계: 사용자 지정 리소스를 사용할 수 있는지 확인
기능이 활성 상태가 되면 클러스터에서 Argo CD 사용자 지정 리소스를 사용할 수 있는지 확인합니다.
kubectl api-resources | grep argoproj.io
Application 및 ApplicationSet 리소스 유형이 나열됩니다.
다음 단계
-
Argo CD 작업 - 리포지토리 구성, 클러스터 등록, 애플리케이션 생성
-
Argo CD 고려 사항 - 다중 클러스터 아키텍처 및 고급 구성
-
기능 리소스 작업 - Argo CD 기능 리소스 관리