이 페이지 개선에 도움 주기
이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.
Argo CD 작업
Argo CD를 사용하면 Git 리포지토리에서 애플리케이션을 정의하고, Argo CD가 애플리케이션을 Kubernetes 클러스터에 자동으로 동기화합니다. 그러면 자동 드리프트 감지를 통해 선언적이고 버전 제어된 애플리케이션 배포를 지원합니다.
사전 조건
Argo CD로 작업하기 전에 다음이 필요합니다.
-
Argo CD 기능이 생성된 EKS 클러스터(Argo CD 기능 생성 참조)
-
Kubernetes 매니페스트를 포함하는 Git 리포지토리
-
클러스터와 통신하도록 구성된
kubectl
일반적인 작업
다음 주제에서는 일반적인 Argo CD 태스크를 안내합니다.
리포지토리 액세스 구성 - AWS Secrets Manager, AWS CodeConnections 또는 Kubernetes 보안 암호를 사용하여 Git 리포지토리에 액세스하도록 Argo CD를 구성합니다.
대상 클러스터 등록 - Argo CD가 애플리케이션을 배포할 대상 클러스터를 등록합니다.
Argo CD 프로젝트 작업 - 다중 테넌트 환경에 대한 프로젝트를 사용하여 애플리케이션을 구성하고 보안 경계를 적용합니다.
Argo CD 설정 구성 - 사용자 지정 리소스에 대한 사용자 지정 상태 확인을 포함하여 argocd-cm ConfigMap을 사용하여 Argo CD 동작을 구성합니다.
애플리케이션 생성 - 자동 또는 수동 동기화 정책을 통해 Git 리포지토리에서 배포하는 애플리케이션을 생성합니다.
ApplicationSet 사용 - ApplicationSet를 사용하여 템플릿 및 생성기를 통해 여러 환경 또는 클러스터에 애플리케이션을 배포합니다.
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 웹후크 통합을 사전에 구성할 수 있습니다. 모든 기능의 경우 describe-capability의 serverUrl 값이 최종 엔드포인트입니다.
참고
엔드포인트는 재사용되므로 이전 기능인 Git 웹후크, 토큰 및 DNS 레코드를 가리키는 통합은 인스턴스가 변경되었음을 표시하지 않으면서 새 기능에 자동으로 연결됩니다. 기능을 다시 생성한 후 해당 통합을 다시 확인하고 이전 인스턴스와 공유하던 웹후크 시크릿 또는 토큰을 교체합니다.
엔드포인트 검색
기능에 대한 정확한 엔드포인트를 가져오려면 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자리 16진수 값입니다. 기능 이름과 클러스터 이름의 SHA-256 해시에서 처음 8자에 해당합니다. 이름은 슬래시(capability-name/cluster-name)로 조인됩니다. 기능을 생성할 때 지정한 정확한 이름을 사용합니다. 이 값은 고유성만 제공하며 보안 제어에 관여하지 않습니다. -
account-id- 12자리 AWS 계정 ID(숫자)입니다. -
eks-capabilities.region-code.amazonaws.com.rproxy.goskope.com- AWS 리전의 EKS 기능 서비스 도메인입니다.
예를 들어 111122223333 계정의 us-west-2 리전에 있는 my-cluster 클러스터에서 이름이 my-argocd인 기능에는 다음과 유사한 엔드포인트가 있습니다.
https://my-argocd-dc855fdf-111122223333.eks-capabilities.us-west-2.amazonaws.com
호스트 이름은 정규화된 기능 이름을 사용하지만, 해시는 지정한 원시 이름을 사용합니다. 예를 들어 my-cluster 클러스터의 Payments_GitOps 기능은 호스트 이름에서 payments-gitops로 정규화되며 해시는 원시 문자열 Payments_GitOps/my-cluster에서 가져옵니다.
https://payments-gitops-4ce0b382-111122223333.eks-capabilities.us-west-2.amazonaws.com
참고
describe-capability 출력을 사용하여 AWS 리전의 정확한 엔드포인트를 확인합니다.
hash 구성 요소를 직접 계산할 수 있습니다. Linux에서는 sha256sum을, macOS에서는 shasum -a 256을 사용합니다. 다음 명령은 클러스터 my-cluster에서 예제 기능 my-argocd를 사용합니다. 기능을 생성할 때 지정한 정확한 이름을 대체합니다.
# 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 리소스 이름(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 설명서
- 전체 사용 설명서 -
Application Spec
- 전체 애플리케이션 API 참조 -
ApplicationSet Guide
- ApplicationSet 패턴 및 예제 -
Argo CD GitHub
- 소스 코드 및 예제