19.12. GitOps ZTP 업데이트
hub 클러스터, RHACM(Red Hat Advanced Cluster Management) 및 관리형 OpenShift Container Platform 클러스터와 별도로 GitOps ZeroForwarded(ZTP) 인프라를 업데이트할 수 있습니다.
새 버전이 사용 가능하게 되면 Red Hat OpenShift GitOps Operator를 업데이트할 수 있습니다. GitOps ZTP 플러그인을 업데이트할 때 참조 구성에서 업데이트된 파일을 검토하고 변경 사항이 요구 사항을 충족하는지 확인합니다.
19.12.1. GitOps ZTP 업데이트 프로세스 개요
이전 버전의 GitOps ZTP 인프라를 실행하는 완전히 작동 중인 허브 클러스터의 GitOps ZTP(ZTP)를 업데이트할 수 있습니다. 업데이트 프로세스에서는 관리형 클러스터에 영향을 미치지 않습니다.
권장 콘텐츠를 포함한 정책 설정 변경으로 인해 관리 클러스터에 롤아웃되고 조정되어야 하는 업데이트된 정책이 생성됩니다.
높은 수준에서 GitOps ZTP 인프라를 업데이트하는 전략은 다음과 같습니다.
-
모든 기존 클러스터에
ztp-done
라벨을 지정합니다. - ArgoCD 애플리케이션을 중지합니다.
- 새 GitOps ZTP 툴을 설치합니다.
- Git 리포지토리의 필수 콘텐츠 및 선택적 변경 사항을 업데이트합니다.
- 애플리케이션 구성을 업데이트하고 다시 시작합니다.
19.12.2. 업그레이드 준비
다음 절차에 따라 GitOps ZeroForwarded Provisioning (ZTP) 업그레이드를 위해 사이트를 준비합니다.
절차
- GitOps ZTP와 함께 사용하기 위해 Red Hat OpenShift GitOps를 구성하는 데 사용되는 CR(사용자 정의 리소스)이 있는 GitOps ZTP 컨테이너의 최신 버전을 가져옵니다.
다음 명령을 사용하여
argocd/deployment
디렉터리를 추출합니다.$ mkdir -p ./update
$ podman run --log-driver=none --rm registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.13 extract /home/ztp --tar | tar x -C ./update
/update
디렉터리에는 다음 하위 디렉터리가 있습니다.-
update/extra-manifest
: siteConfig
CR이 추가 매니페스트configMap
을 생성하는 데 사용하는 소스 CR 파일이 포함되어 있습니다. -
update/source-crs
:PolicyGenTemplate
CR에서 RHACM(Red Hat Advanced Cluster Management) 정책을 생성하는 데 사용하는 소스 CR 파일이 포함되어 있습니다. -
update/argocd/deployment
: 이 절차의 다음 단계에서 사용할 hub 클러스터에 적용할 패치 및 YAML 파일이 포함되어 있습니다. -
update/argocd/example
: 권장 구성을 나타내는siteConfig
및PolicyGenTemplate
파일 예제가 포함되어 있습니다.
-
애플리케이션 이름과 Git 리포지토리의 URL, 분기 및 경로를 반영하도록 cluster
-app.yaml 및 policy-app.yaml
파일을 업데이트합니다.업그레이드에 더 이상 사용되지 않는 정책이 생성되는 변경 사항이 포함된 경우 업그레이드를 수행하기 전에 더 이상 사용되지 않는 정책을 제거해야 합니다.
함대 사이트 CR을 관리하는
/update
폴더의 구성 및 배포 소스 CR과 Git 리포지토리 간 변경 사항을 구분합니다. 필요한 변경 사항을 적용하고 사이트 리포지토리에 내보냅니다.중요GitOps ZTP를 최신 버전으로 업데이트할 때
update/argocd/deployment
디렉터리의 변경 사항을 사이트 리포지토리에 적용해야 합니다. 이전 버전의argocd/deployment/
파일을 사용하지 마십시오.
19.12.3. 기존 클러스터에 레이블 지정
툴 업데이트로 기존 클러스터가 변경되지 않도록 하려면 기존 관리형 클러스터에 ztp-done
라벨을 지정합니다.
이 절차는 TALM ( Topology Topology Aware Lifecycle Manager)을 사용하여 프로비저닝되지 않은 클러스터를 업데이트하는 경우에만 적용됩니다. TALM으로 프로비저닝하는 클러스터는 자동으로 ztp-done
으로 레이블이 지정됩니다.
절차
local-cluster!=true
와 같이 GitOps Zero 10.0.0.1 Provisioning(ZTP)을 사용하여 배포된 관리형 클러스터를 나열하는 라벨 선택기를 찾습니다.$ oc get managedcluster -l 'local-cluster!=true'
결과 목록에 GitOps ZTP와 함께 배포된 모든 관리형 클러스터가 포함되어 있는지 확인한 다음 해당 선택기를 사용하여
ztp-done
레이블을 추가합니다.$ oc label managedcluster -l 'local-cluster!=true' ztp-done=
19.12.4. 기존 GitOps ZTP 애플리케이션 중지
기존 애플리케이션을 제거하면 새 버전의 툴을 사용할 수 있을 때까지 Git 리포지토리의 기존 콘텐츠에 대한 변경 사항이 롤아웃되지 않습니다.
배포
디렉터리의 애플리케이션 파일을 사용합니다. 애플리케이션에 사용자 지정 이름을 사용한 경우 먼저 이러한 파일의 이름을 업데이트합니다.
절차
생성된 모든 리소스를 제자리에 배치하려면
클러스터
애플리케이션에서 non-cascaded 삭제를 수행합니다.$ oc delete -f update/argocd/deployment/clusters-app.yaml
이전
정책을 모두 제거하려면 정책
애플리케이션에서 cascaded 삭제를 수행합니다.$ oc patch -f policies-app.yaml -p '{"metadata": {"finalizers": ["resources-finalizer.argocd.argoproj.io"]}}' --type merge
$ oc delete -f update/argocd/deployment/policies-app.yaml
19.12.5. Git 리포지터리에 필요한 변경 사항
이전 릴리스의 GitOps Zero ScanSetting Provisioning (ZTP)에서 4.10 이상으로 ztp-site-generate
컨테이너를 업그레이드할 때 Git 리포지토리 콘텐츠에 대한 추가 요구 사항이 있습니다. 이러한 변경 사항을 반영하도록 리포지토리의 기존 콘텐츠를 업데이트해야 합니다.
PolicyGenTemplate
파일을 필요한 대로 변경합니다.모든
PolicyGenTemplate
파일은ztp
접두사가지정된 네임스페이스
에서 생성해야 합니다. 이렇게 하면 GitOps ZTP 애플리케이션에서 RHACM(Red Hat Advanced Cluster Management)이 내부적으로 정책을 관리하는 방식과 충돌하지 않고 GitOps ZTP에서 생성한 정책 CR을 관리할 수 있습니다.kustomization.yaml
파일을 리포지토리에 추가합니다.모든
siteConfig
및PolicyGenTemplate
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
참고생성기
섹션에 나열된 파일에는 siteConfig
또는PolicyGenTemplate
CR만 포함되어야 합니다. 기존 YAML 파일에 다른 CR(예:네임스페이스
)이 포함된 경우 이러한 다른 CR을 별도의 파일로 가져와서resources
섹션에 나열해야 합니다.PolicyGenTemplate
kustomization 파일은generator
섹션에 있는 모든PolicyGenTemplate
YAML 파일과resources
섹션에있는 네임스페이스
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
site
Config
kustomization 파일은generator
섹션의 모든 siteConfig
YAML 파일과 리소스의 다른 CR을 포함해야 합니다.apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization generators: - site1.yaml - site2.yaml
pre-sync.yaml
및post-sync.yaml
파일을 제거합니다.OpenShift Container Platform 4.10 이상에서는
pre-sync.yaml
및post-sync.yaml
파일이 더 이상 필요하지 않습니다.update/deployment/kustomization.yaml
CR은 hub 클러스터에서 정책 배포를 관리합니다.참고site
Config
및PolicyGenTemplate
leaves에pre-sync.yaml
및post-sync.yaml
파일 세트가 있습니다.권장 변경 사항 검토 및 통합
각 릴리스에는 배포된 클러스터에 적용된 구성에 대한 권장 변경 사항이 포함되어 있을 수 있습니다. 일반적으로 이러한 변경으로 인해 OpenShift 플랫폼, 추가 기능 또는 플랫폼의 개선된 튜닝에서 CPU 사용이 감소합니다.
네트워크의 클러스터 유형에 적용되는 참조 site
Config
및PolicyGenTemplate
CR을 검토하십시오. 이러한 예제는 GitOps ZTP 컨테이너에서 추출한argocd/example
디렉터리에서 확인할 수 있습니다.
19.12.6. 새 GitOps ZTP 애플리케이션 설치
추출된 argocd/deployment
디렉터리를 사용하고 애플리케이션이 사이트 Git 리포지토리를 가리키는 후 배포 디렉터리의 전체 콘텐츠를 적용합니다. 디렉터리의 전체 콘텐츠를 적용하면 애플리케이션에 필요한 모든 리소스가 올바르게 구성됩니다.
절차
이전에
update/argocd/deployment/
디렉터리에 추출한 패치 파일을 사용하여 hub 클러스터에 ArgoCD 인스턴스를 패치하려면 다음 명령을 입력합니다.$ oc patch argocd openshift-gitops \ -n openshift-gitops --type=merge \ --patch-file update/argocd/deployment/argocd-openshift-gitops-patch.json
argocd/deployment
디렉터리의 내용을 적용하려면 다음 명령을 입력합니다.$ oc apply -k update/argocd/deployment
19.12.7. GitOps ZTP 구성 변경 사항 롤아웃
권장 변경 사항을 구현하여 업그레이드에 구성 변경이 포함된 경우 업그레이드 프로세스로 인해 비준수 상태의 hub 클러스터에 대한 정책 CR 세트가 생성됩니다. GitOps Zero ScanSetting Provisioning (ZTP) 버전 4.10 및 이후의
ztp-site-generate
컨테이너를 사용하면 이러한 정책은 정보
모드로 설정되고 사용자가 추가 단계없이 관리형 클러스터로 푸시되지 않습니다. 이렇게 하면 유지 관리 기간 중 변경 사항이 동시에 업데이트되는 경우와 같이 변경 사항이 발생하는 경우와 같이 클러스터에 대한 잠재적으로 중단되는 변경을 관리할 수 있습니다.
변경 사항을 롤아웃하려면 TALM 문서에 설명된 대로 하나 이상의 ClusterGroupUpgrade
CR을 생성합니다. CR에는 관리 클러스터로 내보내고자 하는 비준수 정책 목록과 업데이트에 포함되어야 하는 클러스터의 목록 또는 선택기가 포함되어야 합니다.
추가 리소스
- Topology Aware Lifecycle Manager (TALM)에 대한 자세한 내용은 토폴로지 Aware Lifecycle Manager 구성 정보를 참조하십시오.
-
ClusterGroupUpgrade
CR을 생성하는 방법에 대한 자세한 내용은 ZTP 용 자동 생성 ClusterGroupUpgrade CR 정보를 참조하십시오.