주:
- 이 사용지침서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 예제 값을 사용합니다. 실습을 완료할 때 이러한 값을 클라우드 환경과 관련된 값으로 대체하십시오.
작업로드 ID를 사용하여 Argo CD에서 Oracle Cloud Infrastructure Kubernetes Engine 클러스터 관리
소개
Argo CD는 Kubernetes를 위한 선언적 GitOps 지속적 제공 도구입니다. 이 튜토리얼을 작성할 때 Argo CD에는 Oracle Cloud Infrastructure Kubernetes Engine(OKE)에 대한 액세스 토큰을 생성하는 데 필요한 OCI CLI(Oracle Cloud Infrastructure Command Line Interface) 기능이 없으므로 커스터마이징 Argo CD 이미지가 필요합니다.
주: 사용자정의 이미지에 사용된 기본 Argo CD 이미지는
quay.io/argoproj/argocd:v2.14.9
입니다.
목표
-
OCI CLI를 포함하는 사용자정의 Argo CD 이미지를 생성합니다.
-
사용자 정의 이미지를 사용하여 향상된 OKE 클러스터에 Argo CD를 설치합니다.
-
execProviderConfig
를 사용하여 Argo CD 클러스터 목록에 기본 OKE 클러스터를 추가합니다. -
Argo CD의 기본 클러스터에 앱을 배포합니다.
필요 조건
-
Podman 또는 Docker 및
argocd
CLI를 설치합니다. -
OKE 향상된 클러스터로 Argo CD를 설치합니다.
주: 고급 클러스터에는 작업 로드 ID만 사용할 수 있습니다.
-
Argo CD에서 관리할 OKE 클러스터입니다.
-
OCI 사용자의 인증 토큰(OCI 콘솔에서 사용자 프로파일로 이동하고 Auth 토큰을 누름)은 활성화하는 데 최대 5분이 걸릴 수 있습니다.
-
OCI 사용자가 OCI 컨테이너 레지스트리에 저장소를 생성할 수 있는 권한입니다.
Allow group <your_group> to manage repos in tenancy
-
Argo CD에서 OKE 클러스터를 관리할 수 있는 권한입니다.
allow any-user to manage all-resources in compartment <compartment_ocid> where all { request.principal.type='workload', request.principal.cluster_id = '<cluster_ocid>', request.principal.namespace = 'argocd', request.principal.service_account = 'argocd-application-controller' }
주: 이 정책은 너무 열려 있지만 원하는 대로 제한적으로 만들 수 있습니다.
- 정책의 대체:
compartment_ocid
: Argo CD로 관리하려는 클러스터를 포함하는 컴파트먼트 OCID여야 합니다.cluster_ocid
: 다른 클러스터를 관리하려는 클러스터 OCID여야 합니다. Argo CD를 가지고 있습니다.request.principal.namespace
: Argo CD가 배치된 네임스페이스입니다.request.principal.service_account
: Argo CD 응용 프로그램 컨트롤러(클러스터 인증을 담당하는 컨트롤러)의 서비스 계정입니다.
- 정책의 대체:
작업 1: Argo CD 커스텀 이미지를 OCI 컨테이너 레지스트리로 푸시
주: Podman 또는 docker를 사용할 수 있습니다.
-
Dockerfile
에서Dockerfile
라는 파일을 다운로드합니다. -
다음 명령을 실행합니다.
podman build --platform linux/amd64 -t argocd-oci:01 .
주: 명령 끝에 있는 점(.)은 Dockerfile이 있는 현재 디렉토리에 대한 것입니다.
-
다음 명령을 실행합니다.
podman tag argocd-oci:01 ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
-
다음 명령을 실행합니다.
podman login ocir.**your_region**.oci.oraclecloud.com
- 사용자:
- ID 도메인이 사용되는 경우:
your_tenancy_namespace
/OracleIdentityCloudService
/your_email
- 기본 도메인이 사용되는 경우:
your_tenancy_namespace
/your_email
.
- ID 도메인이 사용되는 경우:
- 비밀번호는 OCI 인증 토큰입니다.
- 사용자:
-
다음 명령을 실행합니다.
podman push ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
작업 2: 사용자 정의 이미지를 사용하여 Argo CD 설치
주: 클러스터 인증을 수행하므로
argocd-application-controller
에 대한 이미지만 업데이트합니다.
-
argo-CD/manifests/install.yaml에서 Argo CD 매니페스트를 다운로드하여 설치합니다.
-
파일을 편집하여
argocd-application-controller
의 이미지를 변경합니다.- 이미지에서 변경:
quay.io/argoproj/argocd:latest
- 이미지:
ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
- 이미지에서 변경:
-
다음 명령을 실행하여
argocd
네임스페이스를 만듭니다.kubectl create namespace argocd
-
다음 명령을 실행하여
argocd
를 배치합니다.kubectl apply -f install.yaml -n argocd
작업 3: Argo CD 클러스터 목록에 클러스터 추가
-
Argo CD를 시작합니다.
주: OCI 로드 밸런서를 사용하여 Argo CD를 노출할 수 있습니다. 이 예에서는
port-forward
가 대신 사용됩니다. 이를 위해서는 포트 전달을 위한 추가 터미널만 필요합니다.-
두번째 터미널에서 다음 명령을 실행합니다.
kubectl port-forward service/argocd-server -n argocd 63265:80
주: 이 터미널은 Argo CD를 작동 상태로 유지하는 데 사용되므로 닫지 마십시오. 이전 터미널로 전환하십시오.
-
다음 명령을 사용하여 Argo CD 관리자 암호를 가져옵니다.
kubectl get secret -n argocd argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
-
다음 명령을 사용하여 로그인합니다(사용자는 admin, 암호는 이전 명령의 암호임).
argocd login 127.0.0.1:63265
-
-
add_cluster.yaml에서
add_cluster.yaml
라는 파일을 다운로드하고 편집합니다.주: 이 예에서는 안전하지 않은 TLS를 사용하고 있으며 변경할 수 있습니다.
cluster_name
: Argo CD 클러스터 목록에 나타날 클러스터의 이름입니다.cluster_api_endpoint
: Argo CD 클러스터 목록에 추가할 클러스터의 끝점입니다.cluster_ocid
: Argo CD 클러스터 목록에 추가할 클러스터의 OCID입니다.region
: 클러스터가 있는 영역입니다.
-
다음 명령을 사용하여 Argo CD 클러스터 목록에 클러스터를 추가할 파일을 적용합니다.
kubectl apply -f add_cluster.yaml
-
다음 명령을 사용하여 클러스터가 Argo CD 클러스터 목록에 추가되었는지 확인합니다.
argocd cluster list
작업 4: Argo CD에서 클러스터로 앱을 배치하여 테스트
-
deploy_example.yaml에서
deploy_example.yaml
라는 파일을 다운로드하고 편집합니다.cluster_name
: 앱을 배치할 클러스터의 이름입니다.
-
다음 명령을 사용하여 대상 클러스터에 간단한 앱을 배치하려면 파일을 적용합니다.
kubectl apply -f deploy-example.yaml
-
다음 명령을 사용하여 앱이 성공적으로 배치되었는지 확인합니다.
argocd app list argocd app sync guestbook
승인
- 작성자 - Gabriel Feodorov(수석 클라우드 엔지니어)
추가 학습 자원
docs.oracle.com/learn에서 다른 랩을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Manage Oracle Cloud Infrastructure Kubernetes Engine Clusters in Argo CD using Workload Identity
G36154-01
Copyright ©2025, Oracle and/or its affiliates.