18.3. GitOps ZTP 업데이트


hub 클러스터, RHACM(Advanced Cluster Management) 및 관리형 OpenShift Container Platform 클러스터와 독립적으로ZTP(ZTP) 인프라를 업데이트할 수 있습니다.

참고

새 버전이 출시되면 Red Hat OpenShift GitOps Operator를 업데이트할 수 있습니다. GitOps ZTP 플러그인을 업데이트할 때 참조 구성에서 업데이트된 파일을 검토하고 변경 사항이 요구 사항을 충족하는지 확인합니다.

18.3.1. GitOps ZTP 업데이트 프로세스 개요

이전 버전의 GitOps ZTP 인프라를 실행하는 완전히 작동하는 허브 클러스터에 대해 GitOps ZTP(ZTP)를 업데이트할 수 있습니다. 업데이트 프로세스는 관리 클러스터에 미치는 영향을 방지합니다.

참고

권장 콘텐츠 추가를 포함하여 정책 설정을 변경하면 관리 클러스터에 롤아웃하고 조정되어야 하는 업데이트된 정책이 생성됩니다.

높은 수준에서 GitOps ZTP 인프라를 업데이트하기위한 전략은 다음과 같습니다.

  1. 기존 클러스터에 ztp-done 라벨을 지정합니다.
  2. ArgoCD 애플리케이션을 중지합니다.
  3. 새 GitOps ZTP 툴을 설치합니다.
  4. Git 리포지토리에서 필요한 콘텐츠 및 선택적 변경 사항을 업데이트합니다.
  5. 애플리케이션 구성을 업데이트하고 다시 시작합니다.

18.3.2. 업그레이드 준비

다음 절차에 따라ZTP(ZTP) 업그레이드를 위한 사이트를 준비합니다.

프로세스

  1. GitOps ZTP와 함께 사용하도록 Red Hat OpenShift GitOps를 구성하는 데 사용되는 사용자 정의 리소스(CR)가 있는 GitOps ZTP 컨테이너의 최신 버전을 가져옵니다.
  2. 다음 명령을 사용하여 argocd/deployment 디렉터리를 추출합니다.

    $ mkdir -p ./update
    Copy to Clipboard Toggle word wrap
    $ podman run --log-driver=none --rm registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.14 extract /home/ztp --tar | tar x -C ./update
    Copy to Clipboard Toggle word wrap

    /update 디렉터리에는 다음 하위 디렉터리가 포함되어 있습니다.

    • update/extra-manifest: SiteConfig CR에서 추가 매니페스트 configMap 을 생성하는 데 사용하는 소스 CR 파일이 포함되어 있습니다.
    • update/source-crs: PolicyGenTemplate CR에서 RHACM(Red Hat Advanced Cluster Management) 정책을 생성하는 데 사용하는 소스 CR 파일이 포함되어 있습니다.
    • update/argocd/deployment: 이 절차의 다음 단계에서 사용할 허브 클러스터에 적용할 패치 및 YAML 파일이 포함되어 있습니다.
    • update/argocd/example: 권장 구성 을 나타내는 example siteConfigPolicyGenTemplate 파일이 포함되어 있습니다.
  3. 애플리케이션 이름과 Git 리포지토리의 URL, 분기 및 경로를 반영하도록 cluster-app.yaml 및 policies-app.yaml 파일을 업데이트합니다.

    업그레이드에 더 이상 사용되지 않는 정책이 생성되는 변경 사항이 포함된 경우 업그레이드를 수행하기 전에 더 이상 사용되지 않는 정책을 제거해야 합니다.

  4. 플릿 사이트 CR을 관리하는 /update 폴더 및 Git 리포지터리의 구성 및 배포 소스 CR 간 변경 사항을 diffe the changes between the configuration and deployment source CRs in the /update folder and Git repo where you manage your fleet site CRs. 필요한 변경 사항을 적용하고 사이트 리포지토리에 내보냅니다.

    중요

    GitOps ZTP를 최신 버전으로 업데이트할 때 update/argocd/deployment 디렉터리의 변경 사항을 사이트 리포지토리에 적용해야 합니다. 이전 버전의 argocd/deployment/ 파일을 사용하지 마십시오.

18.3.3. 기존 클러스터에 레이블 지정

툴 업데이트로 기존 클러스터가 그대로 유지되도록 기존 관리 클러스터에 ztp-done 라벨을 지정합니다.

참고

이 절차는 Topology Aware Lifecycle Manager (TALM)를 사용하여 프로비저닝되지 않은 클러스터를 업데이트하는 경우에만 적용됩니다. TALM으로 프로비저닝하는 클러스터는 자동으로 ztp-done 로 레이블이 지정됩니다.

프로세스

  1. local-cluster!=true 와 같이 GitOps ZTP(ZTP)와 함께 배포된 관리 클러스터를 나열하는 라벨 선택기를 찾습니다.

    $ oc get managedcluster -l 'local-cluster!=true'
    Copy to Clipboard Toggle word wrap
  2. 결과 목록에 GitOps ZTP와 함께 배포된 모든 관리 클러스터가 포함되어 있는지 확인한 다음 해당 선택기를 사용하여 ztp-done 레이블을 추가합니다.

    $ oc label managedcluster -l 'local-cluster!=true' ztp-done=
    Copy to Clipboard Toggle word wrap

18.3.4. 기존 GitOps ZTP 애플리케이션 중지

기존 애플리케이션을 제거하면 새 버전의 툴을 사용할 수 있을 때까지 Git 리포지토리의 기존 콘텐츠에 대한 변경 사항이 롤아웃되지 않습니다.

배포 디렉터리의 애플리케이션 파일을 사용합니다. 애플리케이션에 사용자 지정 이름을 사용한 경우 먼저 이러한 파일의 이름을 업데이트합니다.

프로세스

  1. 클러스터 애플리케이션에서 캐스케이딩되지 않은 삭제를 수행하여 생성된 모든 리소스를 제자리에 남겨 둡니다.

    $ oc delete -f update/argocd/deployment/clusters-app.yaml
    Copy to Clipboard Toggle word wrap
  2. 정책 애플리케이션에서 계단식 삭제를 수행하여 이전 정책을 모두 제거합니다.

    $ oc patch -f policies-app.yaml -p '{"metadata": {"finalizers": ["resources-finalizer.argocd.argoproj.io"]}}' --type merge
    Copy to Clipboard Toggle word wrap
    $ oc delete -f update/argocd/deployment/policies-app.yaml
    Copy to Clipboard Toggle word wrap

18.3.5. Git 리포지토리에 대한 필수 변경 사항

ztp-site-generate 컨테이너를 이전 버전의 ZTP(ZTP)에서 4.10 이상으로 업그레이드하는 경우 Git 리포지토리의 콘텐츠에 대한 추가 요구 사항이 있습니다. 리포지토리의 기존 콘텐츠는 이러한 변경 사항을 반영하도록 업데이트해야 합니다.

  • PolicyGenTemplate 파일을 변경해야 합니다.

    모든 PolicyGenTemplate 파일은 ztp 로 접두사 가 지정된 네임스페이스 에서 생성해야 합니다. 이렇게 하면 GitOps ZTP 애플리케이션이 RHSM(Red Hat Advanced Cluster Management)에서 내부적으로 정책을 관리하는 방식과 충돌하지 않고 GitOps ZTP에서 생성한 정책 CR을 관리할 수 있습니다.

  • kustomization.yaml 파일을 리포지토리에 추가합니다.

    모든 siteConfigPolicyGenTemplate CR은 해당 디렉터리 트리 아래에 kustomization.yaml 파일에 포함되어야 합니다. 예를 들면 다음과 같습니다.

    ├── policygentemplates
    │   ├── site1-ns.yaml
    │   ├── site1.yaml
    │   ├── site2-ns.yaml
    │   ├── site2.yaml
    │   ├── common-ns.yaml
    │   ├── common-ranGen.yaml
    │   ├── group-du-sno-ranGen-ns.yaml
    │   ├── group-du-sno-ranGen.yaml
    │   └── kustomization.yaml
    └── siteconfig
        ├── site1.yaml
        ├── site2.yaml
        └── kustomization.yaml
    Copy to Clipboard Toggle word wrap
    참고

    생성기 섹션에 나열된 파일에는 site Config 또는 PolicyGenTemplate CR만 포함되어야 합니다. 기존 YAML 파일에 다른 CR(예: 네임스페이스 )이 포함된 경우 이러한 다른 CR을 별도의 파일로 가져와 resources 섹션에 나열해야 합니다.

    PolicyGenTemplate kustomization 파일에는 resources 섹션의 generator 섹션에 있는 모든 PolicyGenTemplate YAML 파일과 Namespace CR이 포함되어야 합니다. 예를 들면 다음과 같습니다.

    apiVersion: kustomize.config.k8s.io/v1beta1
    kind: Kustomization
    
    generators:
    - common-ranGen.yaml
    - group-du-sno-ranGen.yaml
    - site1.yaml
    - site2.yaml
    
    resources:
    - common-ns.yaml
    - group-du-sno-ranGen-ns.yaml
    - site1-ns.yaml
    - site2-ns.yaml
    Copy to Clipboard Toggle word wrap

    SiteConfig kustomization 파일에는 생성기 섹션의 모든 SiteConfig YAML 파일과 리소스의 다른 CR이 포함되어야 합니다.

    apiVersion: kustomize.config.k8s.io/v1beta1
    kind: Kustomization
    
    generators:
    - site1.yaml
    - site2.yaml
    Copy to Clipboard Toggle word wrap
  • pre-sync.yamlpost-sync.yaml 파일을 제거합니다.

    OpenShift Container Platform 4.10 이상에서는 더 이상 pre-sync.yamlpost-sync.yaml 파일이 필요하지 않습니다. update/deployment/kustomization.yaml CR은 hub 클러스터에서 정책 배포를 관리합니다.

    참고

    SiteConfigPolicyGenTemplate 트리 아래에는 pre-sync.yamlpost-sync.yaml 파일 세트가 있습니다.

  • 권장 변경 사항 검토 및 통합

    각 릴리스에는 배포된 클러스터에 적용된 구성에 권장되는 추가 변경 사항이 포함될 수 있습니다. 일반적으로 이러한 변경으로 인해 OpenShift 플랫폼, 추가 기능 또는 플랫폼 튜닝에서 CPU 사용이 줄어들게 됩니다.

    네트워크의 클러스터 유형에 적용되는 사이트ConfigPolicyGenTemplate CR을 확인합니다. 이러한 예제는 GitOps ZTP 컨테이너에서 추출된 argocd/example 디렉터리에서 확인할 수 있습니다.

18.3.6. 새 GitOps ZTP 애플리케이션 설치

추출된 argocd/deployment 디렉터리를 사용하여 애플리케이션이 사이트 Git 리포지토리를 가리키는지 확인한 후 배포 디렉터리의 전체 콘텐츠를 적용합니다. 디렉터리의 전체 콘텐츠를 적용하면 애플리케이션에 필요한 모든 리소스가 올바르게 구성됩니다.

프로세스

  1. GitOps ZTP 플러그인을 설치하려면 허브 클러스터의 ArgoCD 인스턴스를 관련 MCCE(Multicluster engine) 서브스크립션 이미지로 패치합니다. 이전에 추출한 패치 파일을 사용자 환경의 out/argocd/deployment/ 디렉터리에 사용자 지정합니다.

    1. RHACM 버전과 일치하는 multicluster-operators-subscription 이미지를 선택합니다.

      Expand
      표 18.7. multicluster-operators-subscription 이미지 버전
      OpenShift Container Platform 버전RHACM 버전MCE 버전MCE RHEL 버전MCE 이미지

      4.14, 4.15, 4.16

      2.8, 2.9

      2.8, 2.9

      RHEL 8

      registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel8:v2.8

      registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel8:v2.9

      4.14, 4.15, 4.16

      2.10

      2.10

      RHEL 9

      registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel9:v2.10

      중요

      multicluster-operators-subscription 이미지의 버전은 RHACM 버전과 일치해야 합니다. MCE 2.10 릴리스부터 RHEL 9는 multicluster-operators-subscription 이미지의 기본 이미지입니다.

    2. out/argocd/deployment/argocd-openshift-gitops-patch.json 파일에 다음 구성을 추가합니다.

      {
        "args": [
          "-c",
          "mkdir -p /.config/kustomize/plugin/policy.open-cluster-management.io/v1/policygenerator && cp /policy-generator/PolicyGenerator-not-fips-compliant /.config/kustomize/plugin/policy.open-cluster-management.io/v1/policygenerator/PolicyGenerator" 
      1
      
        ],
        "command": [
          "/bin/bash"
        ],
        "image": "registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel9:v2.10", 
      2
       
      3
      
        "name": "policy-generator-install",
        "imagePullPolicy": "Always",
        "volumeMounts": [
          {
            "mountPath": "/.config",
            "name": "kustomize"
          }
        ]
      }
      Copy to Clipboard Toggle word wrap
      1
      선택 사항: RHEL 9 이미지의 경우 ArgoCD 버전에 필요한 범용 실행 파일을 /policy-generator/PolicyGenerator-not-fips-compliant 폴더에 복사합니다.
      2
      multicluster-operators-subscription 이미지를 RHACM 버전과 일치시킵니다.
      3
      연결이 끊긴 환경에서는 multicluster-operators-subscription 이미지의 URL을 해당 환경에 해당하는 연결이 끊긴 레지스트리로 교체합니다.
    3. ArgoCD 인스턴스를 패치합니다. 다음 명령을 실행합니다.

      $ oc patch argocd openshift-gitops \
      -n openshift-gitops --type=merge \
      --patch-file out/argocd/deployment/argocd-openshift-gitops-patch.json
      Copy to Clipboard Toggle word wrap
  2. RHACM 2.7 이상에서는 다중 클러스터 엔진에서 기본적으로 cluster-proxy-addon 기능을 활성화합니다. 다음 패치를 적용하여 cluster-proxy-addon 기능을 비활성화하고 이 애드온을 담당하는 관련 허브 클러스터 및 관리 Pod를 제거합니다. 다음 명령을 실행합니다.

    $ oc patch multiclusterengines.multicluster.openshift.io multiclusterengine --type=merge --patch-file out/argocd/deployment/disable-cluster-proxy-addon.json
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 실행하여 허브 클러스터에 파이프라인 구성을 적용합니다.

    $ oc apply -k out/argocd/deployment
    Copy to Clipboard Toggle word wrap

18.3.7. GitOps ZTP 구성 변경 사항 롤아웃

권장 변경 사항 구현으로 인해 구성 변경이 업그레이드에 포함된 경우 업그레이드 프로세스에서 hub 클러스터에 정책 CR 세트를 Non-Compliant 상태로 만듭니다. GitOps ZTP(ZTP) 버전 4.10 및 이후 ztp-site-generate 컨테이너를 사용하면 이러한 정책은 정보 모드로 설정되고 사용자가 추가 단계없이 관리 클러스터로 푸시되지 않습니다. 이렇게 하면 변경 사항이 발생하는 시기(예: 유지 관리 기간 중) 및 동시에 업데이트되는 클러스터 수에 따라 클러스터에 잠재적으로 중단될 수 있습니다.

변경 사항을 롤아웃하려면 TALM 설명서에 자세히 설명된 대로 하나 이상의 ClusterGroupUpgrade CR을 생성합니다. CR에는 관리 클러스터로 푸시하려는 비준수 정책 목록과 업데이트에 포함되어야 하는 클러스터 목록 또는 선택기가 포함되어야 합니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat