1.11. ArgoCD 에이전트를 사용하여 Red Hat OpenShift GitOps 애드온 활성화
가져오기 모델의 에이전트 모드를 사용하면 ArgoCD 에이전트와 함께 OpenShift GitOps 고급 가져오기 모델을 통해 애플리케이션 상태에 대한 자세한 상태를 얻을 수 있습니다. 네트워크 제한, 향상된 보안 요구 사항이 있거나 애플리케이션 제공을 위한 풀 모델을 구현할 때 이 에이전트 모드를 사용하십시오. 고급 풀 모델은 ArgoCD 에이전트를 통해 구동되며 완전히 자동화된 OpenShift GitOps 환경을 제공합니다.
ArgoCD 에이전트를 사용하여 OpenShift GitOps 애드온을 활성화하려면 다음 섹션을 완료합니다.
사전 요구 사항
- Red Hat Advanced Cluster Management Hub 클러스터 설치
- Red Hat Advanced Cluster Management에 등록된 관리형 클러스터
- hub 클러스터에 OpenShift GitOps Operator 설치
-
대상 관리 클러스터를 선택하는
배치리소스 -
대상 네임스페이스에 바인딩된
ManagedClusterSet -
ArgoCD에이전트 환경으로 구성된 OpenShift GitOps Operator 서브스크립션 -
에이전트모드로 구성된ArgoCD사용자 정의 리소스
1.11.1. 서브스크립션 및 리소스 구성 링크 복사링크가 클립보드에 복사되었습니다!
ArgoCD 에이전트를 활성화하려면 OpenShift GitOps Operator 서브스크립션 및 ArgoCD 사용자 정의 리소스를 구성해야 합니다. 필요한 서브스크립션 및 리소스를 구성하려면 다음 단계를 완료합니다.
hub 클러스터에서만 다음 명령을 실행하여 필요한 환경 변수를 포함하도록 OpenShift GitOps Operator 서브스크립션을 수정합니다.
oc edit subscription gitops-operator -n openshift-gitops-operator다음 YAML 샘플을 추가하여
spec.config.env파일에 다음 환경 변수를 추가합니다.spec: config: env: - name: ARGOCD_CLUSTER_CONFIG_NAMESPACES value: openshift-gitops - name: ARGOCD_PRINCIPAL_TLS_SERVER_ALLOW_GENERATE value: "false" - name: ARGOCD_PRINCIPAL_REDIS_SERVER_ADDRESS value: openshift-gitops-redis:6379다음 YAML 샘플을 추가하여 기존
ArgoCD사용자 정의 리소스를 호환에이전트모드 구성으로 교체합니다.apiVersion: argoproj.io/v1beta1 kind: ArgoCD metadata: name: openshift-gitops namespace: openshift-gitops spec: controller: enabled: false argoCDAgent: principal: allowedNamespaces: - '*' auth: mtls:CN=system:open-cluster-management:cluster:([^:]+):addon:gitops-addon:agent:gitops-addon-agent enabled: true다음 명령을 실행하여 YAML 샘플을 적용합니다.
oc apply -f argocd-example.yaml-
참고: 허브 클러스터에서만 이 구성은 기존
ArgoCD컨트롤러를 비활성화하고 상호 TLS 인증을 사용하여 에이전트 주체를 활성화합니다.
-
참고: 허브 클러스터에서만 이 구성은 기존
1.11.2. ArgoCD 에이전트 활성화 링크 복사링크가 클립보드에 복사되었습니다!
GitOpsCluster 리소스를 생성하여 ArgoCD 에이전트 애드온 배포를 관리합니다. 컨트롤러 컨트롤러는 배치에서 선택한 각 관리 클러스터에 대해 다음 리소스를 자동으로 생성합니다.
GitOpsCluster 컨트롤러는 다음 작업을 수행합니다.
- PKI 관리 생성 및 자동화
-
에이전트 모드로 구성된
ArgoCD클러스터 시크릿 생성 - 선택한 각 관리 클러스터에 Argo CD 에이전트를 배포
고급 풀 모델 Argo CD 에이전트 아키텍처를 활성화하려면 다음 단계를 완료합니다.
관리 클러스터에서 다음 YAML 샘플을 추가하여
ArgoCD에이전트가 활성화된GitOpsCluster리소스를 생성합니다.apiVersion: apps.open-cluster-management.io/v1beta1 kind: GitOpsCluster metadata: name: gitops-agent-clusters namespace: openshift-gitops spec: argoServer: argoNamespace: openshift-gitops placementRef: kind: Placement apiVersion: cluster.open-cluster-management.io/v1beta1 name: production-clusters namespace: openshift-gitops gitopsAddon: enabled: true argoCDAgent: enabled: true다음 명령을 실행하여 YAML 샘플을 적용합니다.
oc apply -f gitopscluster-example.yaml
1.11.3. ArgoCD 설치 확인 링크 복사링크가 클립보드에 복사되었습니다!
ArgoCD 에이전트가 성공적으로 배포된 후 hub 클러스터에서 애플리케이션을 생성하고 관리 클러스터에서 작동하는지 확인하여 고급 Pull Model 워크플로가 완료되었는지 확인합니다.
성공적인 배포에 필요한 설치 및 리소스를 확인하려면 다음 단계를 완료합니다.
다음 명령을 실행하여 특정
에이전트조건에 대해GitOpsCluster상태를 확인합니다.oc get gitopscluster gitops-agent-clusters -n openshift-gitops -o jsonpath='{.status.conditions}' | jq상태에 다음 조건 유형이 표시되는지 확인합니다.
-
Ready:GitOpsCluster가 준비되고 모든 구성 요소가 작동합니다. -
PlacementResolved:배치참조가 확인되고 관리 클러스터가 검색됩니다. -
ClustersRegistered: 관리 클러스터가ArgoCD서버에 성공적으로 등록되었습니다. -
AddOnDeploymentConfigsReady: 모든 관리 클러스터에 대해AddOnDeploymentConfigs가 생성됩니다. -
ManagedClusterAddOnsReady:ManagedClusterAddons가 관리 클러스터를 생성하고 업데이트합니다. -
:AddOnTemplateReadyArgoCD에이전트 모드에 대해 생성된 동적 애드온Template입니다. -
ArgoCDAgentPrereqsReady: 에이전트 사전 요구 사항이 설정됩니다. -
CertificatesReady: TLS 인증서가 서명됩니다. -
ManifestWorksApplied: 관리 클러스터에 전파되는 CA 인증서입니다.
-
다음 YAML 파일을 추가하여 관리 클러스터 네임스페이스에
ArgoCD애플리케이션 리소스를 생성합니다.apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: guestbook namespace: <managed cluster name> spec: project: default source: repoURL: https://github.com/argoproj/argocd-example-apps.git targetRevision: HEAD path: guestbook destination: server: https://<principal-external-ip:port>?agentName=<managed cluster name> namespace: guestbook syncPolicy: automated: prune: true selfHeal: true다음 명령을 실행하여 YAML 샘플을 적용합니다.
oc apply -f application-example.yaml관리 클러스터에서 다음 명령을 실행하여 애플리케이션 리소스가 배포되었는지 확인합니다.
oc get all -n guestbookhub 클러스터에서 다음 명령을 실행하여 애플리케이션 상태가 다시 반영되는지 확인합니다.
oc get application guestbook -n <managed cluster name>-
애플리케이션이 성공적으로 배포될 때 상태가
Synced(동기화됨)로 표시되는지 확인합니다.
추가 리소스
Red Hat OpenShift GitOps 애드온 관리를 완료하여 OpenShift GitOps 애드온을 계속 설정합니다.