이 페이지 개선에 도움 주기
이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 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를 설정하지 않은 경우 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
참고
이 기본 설정에는 추가 IAM 정책이 필요하지 않습니다. 리포지토리 자격 증명 또는 CodeConnections에 Secrets Manager를 사용하려는 경우 역할에 권한을 추가해야 합니다. 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, 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로 표시될 때까지 기다린 후 계속 진행합니다.
3단계: eksctl 구성 파일 생성
다음 콘텐츠가 포함된 argocd-capability.yaml이라는 파일을 생성합니다. 자리 표시자 값을 클러스터 이름, 리전, IAM 역할 ARN, Identity Center 인스턴스 ARN, Identity Center 리전 및 사용자 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
참고
프라이빗 엔드포인트가 활성화된 경우 Argo CD UI 및 API는 VPC 엔드포인트를 통해서만 액세스할 수 있습니다. Argo CD 인터페이스에 액세스하려면 사용자가 VPC(또는 피어링된 네트워크)에 연결되어야 합니다.
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
Application 및 ApplicationSet 리소스 유형이 나열됩니다.
다음 단계
-
Argo CD 작업 - Argo CD 애플리케이션을 생성하고 관리하는 방법 알아보기
-
Argo CD 고려 사항 - SSO 및 다중 클러스터 액세스 구성
-
기능 리소스 작업 - Argo CD 기능 리소스 관리