Argo CD 애플리케이션
Argo CD 대시보드, oc 툴 또는 GitOps CLI를 사용하여 OpenShift 클러스터에서 애플리케이션 생성 및 배포
초록
1장. Argo CD로 Spring Boot 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
Argo CD를 사용하면 Argo CD 대시보드를 사용하거나 oc 툴을 사용하여 애플리케이션을 OpenShift Container Platform 클러스터에 배포할 수 있습니다.
1.1. Argo CD 대시보드를 사용하여 애플리케이션 생성 링크 복사링크가 클립보드에 복사되었습니다!
Argo CD는 애플리케이션을 만들 수 있는 대시보드를 제공합니다.
사전 요구 사항
- 관리자로 OpenShift Container Platform 클러스터에 로그인했습니다.
- OpenShift Container Platform 클러스터에 Red Hat OpenShift GitOps Operator를 설치했습니다.
- Argo CD 인스턴스에 로그인했습니다.
프로세스
- Argo CD 대시보드에서 새 APP를 클릭하여 새 Argo CD 애플리케이션을 추가합니다.
이 워크플로의 경우 다음 구성을 사용하여 Spring-petclinic 애플리케이션을 생성합니다.
- 애플리케이션 이름
-
spring-petclinic - 프로젝트
-
default - 동기화 정책
-
자동 - 리포지터리 URL
-
https://github.com/redhat-developer/openshift-gitops-getting-started - 버전
-
HEAD - 경로
-
app - 대상
-
https://kubernetes.default.svc - 네임스페이스
-
spring-petclinic
- 만들기 를 클릭하여 애플리케이션을 생성합니다.
- 웹 콘솔의 관리자 화면을 열고 관리 → 네임스페이스를 확장합니다.
-
네임스페이스를 검색하고 선택한 다음 레이블 필드에
argocd.argoproj.io/managed-by=openshift-gitops를 입력하여openshift-gitops네임스페이스의 Argo CD 인스턴스가 네임스페이스를 관리할 수 있도록 합니다.
1.2. oc 툴을 사용하여 애플리케이션 생성 링크 복사링크가 클립보드에 복사되었습니다!
oc 툴을 사용하여 터미널에서 Argo CD 애플리케이션을 생성할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 클러스터에 Red Hat OpenShift GitOps Operator를 설치했습니다.
- Argo CD 인스턴스에 로그인했습니다.
프로세스
샘플 애플리케이션을 다운로드합니다.
git clone git@github.com:redhat-developer/openshift-gitops-getting-started.git
$ git clone git@github.com:redhat-developer/openshift-gitops-getting-started.gitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 애플리케이션을 생성합니다.
oc create -f openshift-gitops-getting-started/argo/app.yaml
$ oc create -f openshift-gitops-getting-started/argo/app.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc get명령을 실행하여 생성된 애플리케이션을 검토합니다.oc get application -n openshift-gitops
$ oc get application -n openshift-gitopsCopy to Clipboard Copied! Toggle word wrap Toggle overflow openshift-gitops네임스페이스의 Argo CD 인스턴스에서 관리할 수 있도록 애플리케이션이 배포되는 네임스페이스에 레이블을 추가합니다.oc label namespace spring-petclinic argocd.argoproj.io/managed-by=openshift-gitops
$ oc label namespace spring-petclinic argocd.argoproj.io/managed-by=openshift-gitopsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3. Argo CD 자동 복구 동작 확인 링크 복사링크가 클립보드에 복사되었습니다!
Argo CD는 배포된 애플리케이션의 상태를 지속적으로 모니터링하고, Git에서 지정된 매니페스트와 클러스터의 실시간 변경 사항 간의 차이점을 감지한 다음 자동으로 수정합니다. 이 동작을 자동 복구라고 합니다.
Argo CD에서 자동 복구 동작을 테스트하고 관찰할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 클러스터에 Red Hat OpenShift GitOps Operator를 설치했습니다.
- Argo CD 인스턴스에 로그인했습니다.
-
샘플
app-spring-petclinic애플리케이션이 배포 및 구성되어 있습니다.
프로세스
-
Argo CD 대시보드에서 애플리케이션에
Synced상태가 있는지 확인합니다. -
Argo CD 대시보드에서
app-spring-petclinic타일을 클릭하여 클러스터에 배포된 애플리케이션 리소스를 확인합니다. - OpenShift Container Platform 웹 콘솔에서 개발자 화면으로 이동합니다.
Spring PetClinic 배포를 수정하고 Git 리포지토리의
app/디렉터리에 대한 변경 사항을 커밋합니다. Argo CD는 클러스터에 변경 사항을 자동으로 배포합니다.- OpenShift GitOps에 시작 리포지토리를 분기합니다.
-
deployment.yaml파일에서failureThreshold값을5로 변경합니다. 배포 클러스터에서 다음 명령을 실행하여
failureThreshold필드의 변경된 값을 확인합니다.oc edit deployment spring-petclinic -n spring-petclinic
$ oc edit deployment spring-petclinic -n spring-petclinicCopy to Clipboard Copied! Toggle word wrap Toggle overflow
OpenShift Container Platform 웹 콘솔에서 애플리케이션을 모니터링하면서 클러스터에서 배포를 수정하고 2개의 pod로 확장하여 자동 복구 동작을 테스트합니다.
다음 명령을 실행하여 배포 상태를 확인합니다.
oc scale deployment spring-petclinic --replicas 2 -n spring-petclinic
$ oc scale deployment spring-petclinic --replicas 2 -n spring-petclinicCopy to Clipboard Copied! Toggle word wrap Toggle overflow - OpenShift Container Platform 웹 콘솔에서 배포는 두 개의 pod로 확장되었다가 즉시 하나의 pod로 축소됩니다. Argo CD는 Git 리포지토리와 차이점을 감지하고 OpenShift Container Platform 클러스터에서 애플리케이션을 자동 복구했습니다.
- Argo CD 대시보드에서 app-spring-petclinic 타일 → APP DETAILS → CryostatENT S를 클릭합니다. Cryo statENTS 탭에는 다음 이벤트가 표시됩니다. Argo CD에서 클러스터의 동기화되지 않은 배포 리소스를 감지한 다음 Git 리포지토리를 다시 동기화하여 수정합니다.
2장. GitOps CLI를 사용하여 애플리케이션 생성 링크 복사링크가 클립보드에 복사되었습니다!
Argo CD를 사용하면 GitOps argocd CLI를 사용하여 OpenShift Container Platform 클러스터에서 애플리케이션을 생성할 수 있습니다.
2.1. GitOps CLI를 사용하여 기본 모드에서 애플리케이션 생성 링크 복사링크가 클립보드에 복사되었습니다!
GitOps argocd CLI를 사용하여 기본 모드에서 애플리케이션을 생성할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 클러스터에 Red Hat OpenShift GitOps Operator를 설치했습니다.
-
OpenShift CLI(
oc)가 설치되어 있습니다. -
Red Hat OpenShift GitOps
argocdCLI를 설치했습니다. - Argo CD 인스턴스에 로그인했습니다.
프로세스
Argo CD 서버의
관리자계정 암호를 가져옵니다.ADMIN_PASSWD=$(oc get secret openshift-gitops-cluster -n openshift-gitops -o jsonpath='{.data.admin\.password}' | base64 -d)$ ADMIN_PASSWD=$(oc get secret openshift-gitops-cluster -n openshift-gitops -o jsonpath='{.data.admin\.password}' | base64 -d)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Argo CD 서버 URL을 가져옵니다.
SERVER_URL=$(oc get routes openshift-gitops-server -n openshift-gitops -o jsonpath='{.status.ingress[0].host}')$ SERVER_URL=$(oc get routes openshift-gitops-server -n openshift-gitops -o jsonpath='{.status.ingress[0].host}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow admin계정 암호를 사용하여 Argo CD 서버에 로그인하고 작은따옴표로 전달합니다.중요암호를 작은따옴표로 포함하면 쉘에 의해
$와 같은 특수 문자가 잘못 해석되지 않습니다. 항상 작은 따옴표를 사용하여 암호의 리터럴 값을 묶습니다.argocd login --username admin --password ${ADMIN_PASSWD} ${SERVER_URL}$ argocd login --username admin --password ${ADMIN_PASSWD} ${SERVER_URL}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
argocd login --username admin --password '<password>' openshift-gitops.openshift-gitops.apps-crc.testing
$ argocd login --username admin --password '<password>' openshift-gitops.openshift-gitops.apps-crc.testingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 애플리케이션을 나열하여 기본 모드에서
argocd명령을 실행할 수 있는지 확인합니다.argocd app list
$ argocd app listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 구성이 올바르면 다음 헤더를 사용하여 기존 애플리케이션이 나열됩니다.
샘플 출력
NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET
NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGETCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기본 모드에서 애플리케이션을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow openshif-gitopsArgo CD 인스턴스에서 관리할spring-petclinic대상 네임스페이스에 레이블을 지정합니다.oc label ns spring-petclinic "argocd.argoproj.io/managed-by=openshift-gitops"
$ oc label ns spring-petclinic "argocd.argoproj.io/managed-by=openshift-gitops"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용 가능한 애플리케이션을 나열하여 애플리케이션이 생성되었는지 확인하고 애플리케이션에
Healthy및Synced상태가 될 때까지 명령을 반복합니다.argocd app list
$ argocd app listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2. GitOps CLI를 사용하여 코어 모드에서 애플리케이션 생성 링크 복사링크가 클립보드에 복사되었습니다!
GitOps argocd CLI를 사용하여 코어 모드에서 애플리케이션을 생성할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 클러스터에 Red Hat OpenShift GitOps Operator를 설치했습니다.
-
OpenShift CLI(
oc)가 설치되어 있습니다. -
Red Hat OpenShift GitOps
argocdCLI를 설치했습니다.
프로세스
ocCLI 툴을 사용하여 OpenShift Container Platform 클러스터에 로그인합니다.oc login -u <username> -p <password> <server_url>
$ oc login -u <username> -p <password> <server_url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
oc login -u kubeadmin -p '<password>' https://api.crc.testing:6443
$ oc login -u kubeadmin -p '<password>' https://api.crc.testing:6443Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubeconfig파일에서 컨텍스트가 올바르게 설정되었는지 확인합니다.oc config current-context
$ oc config current-contextCopy to Clipboard Copied! Toggle word wrap Toggle overflow 현재 컨텍스트의 기본 네임스페이스를
openshift-gitops:로 설정합니다.oc config set-context --current --namespace openshift-gitops
$ oc config set-context --current --namespace openshift-gitopsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Argo CD 구성 요소 이름을 덮어쓰려면 다음 환경 변수를 설정합니다.
export ARGOCD_REPO_SERVER_NAME=openshift-gitops-repo-server
$ export ARGOCD_REPO_SERVER_NAME=openshift-gitops-repo-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 애플리케이션을 나열하여
코어모드에서argocd명령을 실행할 수 있는지 확인합니다.argocd app list --core
$ argocd app list --coreCopy to Clipboard Copied! Toggle word wrap Toggle overflow 구성이 올바르면 다음 헤더를 사용하여 기존 애플리케이션이 나열됩니다.
샘플 출력
NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET
NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGETCopy to Clipboard Copied! Toggle word wrap Toggle overflow 코어모드로 애플리케이션을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow openshif-gitopsArgo CD 인스턴스에서 관리할spring-petclinic대상 네임스페이스에 레이블을 지정합니다.oc label ns spring-petclinic "argocd.argoproj.io/managed-by=openshift-gitops"
$ oc label ns spring-petclinic "argocd.argoproj.io/managed-by=openshift-gitops"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용 가능한 애플리케이션을 나열하여 애플리케이션이 생성되었는지 확인하고 애플리케이션에
Healthy및Synced상태가 될 때까지 명령을 반복합니다.argocd app list --core
$ argocd app list --coreCopy to Clipboard Copied! Toggle word wrap Toggle overflow