9장. PolicyGenerator 리소스를 사용하여 클러스터 정책 관리
9.1. PolicyGenerator 리소스를 사용하여 관리되는 클러스터 정책 구성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Advanced Cluster Management(RHACM)가 PolicyGenerator
CR을 사용하여 프로비저닝하는 관리형 클러스터를 구성하는 정책
CR을 생성하는 방식을 사용자 정의할 수 있습니다.
RHACM 및 PolicyGenerator
CR을 사용하는 것은 정책을 관리하고 관리형 클러스터에 배포하는 데 권장되는 방법입니다. 이는 이 목적을 위해 PolicyGenTemplate
CR을 사용하는 것을 대체합니다. PolicyGenerator
리소스에 대한 자세한 내용은 RHACM Policy Generator 설명서를 참조하세요.
9.1.1. RHACM PolicyGenerator와 PolicyGenTemplate 리소스 패치 비교 링크 복사링크가 클립보드에 복사되었습니다!
PolicyGenerator
사용자 정의 리소스(CR)와 PolicyGenTemplate
CR은 GitOps ZTP에서 관리형 클러스터에 대한 RHACM 정책을 생성하는 데 사용할 수 있습니다.
GitOps ZTP를 사용하여 OpenShift Container Platform 리소스에 패치를 적용할 때 PolicyGenTemplate
CR보다 PolicyGenerator
CR을 사용하는 데에는 여러 가지 이점이 있습니다. RHACM PolicyGenerator
API를 사용하면 PolicyGenTemplate
리소스에서는 불가능한 리소스 패치의 일반적인 방법을 제공합니다.
PolicyGenerator
API는 Open Cluster Management 표준의 일부이지만 PolicyGenTemplate
API는 그렇지 않습니다. 다음 표에서는 PolicyGenerator
와 PolicyGenTemplate
리소스 패치 및 배치 전략을 비교하여 설명합니다.
PolicyGenTemplate
CR을 사용하여 관리형 클러스터에 정책을 관리하고 배포하는 기능은 향후 OpenShift Container Platform 릴리스에서 더 이상 지원되지 않습니다. Red Hat Advanced Cluster Management(RHACM) 및 PolicyGenerator
CR을 사용하면 동일하거나 향상된 기능을 사용할 수 있습니다.
PolicyGenerator
리소스에 대한 자세한 내용은 RHACM 통합 정책 생성기 문서를 참조하세요.
PolicyGenerator 패치 | PolicyGenTemplate 패치 |
---|---|
리소스 병합을 위해 Kustomize 전략적 병합을 사용합니다. 자세한 내용은 Kustomize를 사용하는 Kubernetes 오브젝트의 선언적 관리를 참조하십시오. | 패치에 정의된 대로 변수를 값으로 교체하여 작동합니다. 이는 Kustomize 병합 전략보다 유연합니다. |
|
|
패치에만 의존하며 내장된 변수 대체가 필요하지 않습니다. | 패치에 정의된 변수 값을 덮어씁니다. |
병합 패치에서 목록 병합을 지원하지 않습니다. 병합 패치에서 목록을 바꾸는 것이 지원됩니다. | 목록 병합 및 교체는 제한적으로 지원됩니다. 즉, 목록에서는 하나의 객체만 병합할 수 있습니다. |
현재 리소스 패치에 대한 OpenAPI 사양을 지원하지 않습니다. 즉, 스키마를 따르지 않는 콘텐츠(예: | 패치에서 정의한 값으로 필드와 값을 대체하여 작동합니다. |
스키마를 따르지 않는 콘텐츠를 병합하려면 패치에 |
소스 CR에 정의된 필드와 값을 패치에 정의된 값(예: |
참조 소스 CR에 정의된 |
참조 소스 CR에 정의된 |
9.1.2. PolicyGenerator CRD에 대하여 링크 복사링크가 클립보드에 복사되었습니다!
PolicyGenerator
사용자 정의 리소스 정의(CRD)는 PolicyGen
정책 생성기에 클러스터 구성에 어떤 사용자 정의 리소스(CR)를 포함해야 하는지, CR을 생성된 정책에 어떻게 결합해야 하는지, 해당 CR의 어떤 항목을 오버레이 콘텐츠로 업데이트해야 하는지 알려줍니다.
다음 예에서는 ztp-site-generate
참조 컨테이너에서 추출된 PolicyGenerator
CR( acm-common-du-ranGen.yaml
)을 보여줍니다. acm-common-du-ranGen.yaml
파일은 두 개의 Red Hat Advanced Cluster Management(RHACM) 정책을 정의합니다. 정책은 CR의 policyName
의 각 고유 값에 대해 하나씩 구성 CR 컬렉션을 관리합니다. acm-common-du-ranGen.yaml은
policyDefaults.placement.labelSelector
섹션에 나열된 레이블을 기준으로 정책을 클러스터에 바인딩하기 위한 단일 배치 바인딩과 배치 규칙을 생성합니다.
PolicyGenerator CR 예시 - acm-common-ranGen.yaml
PolicyGenerator
CR은 포함된 CR의 수에 제한 없이 구성할 수 있습니다. 다음 예제 CR을 허브 클러스터에 적용하여 단일 CR을 포함하는 정책을 생성합니다.
소스 파일 PtpConfigSlave.yaml을
예로 들어, 해당 파일은 PtpConfig
CR을 정의합니다. PtpConfigSlave
예제에 대해 생성된 정책의 이름은 group-du-sno-config-policy
입니다. 생성된 group-du-sno-config-policy
에 정의된 PtpConfig
CR의 이름은 du-ptp-slave
입니다. PtpConfigSlave.yaml
에 정의된 사양
은 소스 파일에 정의된 다른 사양
항목과 함께 du-ptp-slave
에 배치됩니다.
다음 예에서는 group-du-sno-config-policy
CR을 보여줍니다.
9.1.3. PolicyGenerator CR을 사용자 정의할 때의 권장 사항 링크 복사링크가 클립보드에 복사되었습니다!
사이트 구성 PolicyGenerator
사용자 정의 리소스(CR)를 사용자 정의할 때 다음의 모범 사례를 고려하세요.
-
꼭 필요한 최소한의 정책만 사용하세요. 정책을 적게 사용하면 필요한 자원도 줄어듭니다. 추가 정책이 있을 때마다 허브 클러스터와 배포된 관리 클러스터의 CPU 부하가 증가합니다. CR은
PolicyGenerator
CR의policyName
필드를 기반으로 정책으로 결합됩니다. 동일한PolicyGenerator
에 있는 CR 중policyName
에 동일한 값을 갖는 CR은 단일 정책으로 관리됩니다. -
연결이 끊긴 환경에서는 레지스트리를 모든 운영자를 포함하는 단일 인덱스로 구성하여 모든 운영자에 대해 단일 카탈로그 소스를 사용합니다. 관리되는 클러스터에
CatalogSource
CR이 추가될 때마다 CPU 사용량이 늘어납니다. -
MachineConfig
CR은SiteConfig
CR에extraManifests
로 포함되어야 설치 중에 적용됩니다. 이렇게 하면 클러스터가 애플리케이션을 배포할 준비가 될 때까지 걸리는 전체 시간을 줄일 수 있습니다. -
PolicyGenerator
CR은 채널 필드를 재정의하여 원하는 버전을 명시적으로 식별해야 합니다. 이렇게 하면 업그레이드 중에 소스 CR이 변경되어도 생성된 구독이 업데이트되지 않습니다. -
policyDefaults.consolidateManifests
의 기본 설정은true
입니다. 이는 DU 프로필에 권장되는 설정입니다.false
로 설정하면 대규모 배포에 영향을 줄 수 있습니다. -
policyDefaults.orderPolicies
의 기본 설정은false
입니다. 이는 DU 프로필에 권장되는 설정입니다. 클러스터 설치가 완료되고 클러스터가준비 상태가
되면 TALM은 이 클러스터에 해당하는ClusterGroupUpgrade
CR을 생성합니다.ClusterGroupUpgrade
CR에는ran.openshift.io/ztp-deploy-wave
주석으로 정의된 정렬된 정책 목록이 포함되어 있습니다.PolicyGenerator
CR을 사용하여 정책 순서를 변경하는 경우 충돌이 발생할 수 있으며 구성이 적용되지 않을 수 있습니다.
허브 클러스터에서 많은 수의 스포크 클러스터를 관리하는 경우 리소스 소비를 줄이기 위해 정책 수를 최소화하세요.
여러 구성 CR을 단일 정책이나 제한된 수의 정책으로 그룹화하는 것은 허브 클러스터의 전체 정책 수를 줄이는 한 가지 방법입니다. 사이트 구성을 관리하기 위해 공통, 그룹 및 사이트 계층 정책을 사용하는 경우 사이트별 구성을 단일 정책으로 결합하는 것이 특히 중요합니다.
9.1.4. RAN 배포를 위한 PolicyGenerator CR 링크 복사링크가 클립보드에 복사되었습니다!
GitOps Zero Touch Provisioning(ZTP) 파이프라인을 사용하여 클러스터에 적용되는 구성을 사용자 지정하려면 PolicyGenerator
사용자 지정 리소스(CR)를 사용합니다. PolicyGenerator
CR을 사용하면 클러스터 플릿의 구성 CR 세트를 관리하는 하나 이상의 정책을 생성할 수 있습니다. PolicyGenerator
CR은 관리되는 CR 세트를 식별하고 이를 정책으로 묶은 다음 해당 CR을 중심으로 정책을 래핑하고 레이블 바인딩 규칙을 사용하여 정책을 클러스터와 연결합니다.
GitOps ZTP 컨테이너에서 얻은 참조 구성은 클러스터가 RAN(무선 접속 네트워크) 분산 장치(DU) 애플리케이션에서 일반적으로 나타나는 엄격한 성능 및 리소스 활용 제약 조건을 지원할 수 있도록 보장하는 중요한 기능 세트와 노드 튜닝 설정을 제공하도록 설계되었습니다. 기준 구성을 변경하거나 누락하면 기능 가용성, 성능 및 리소스 활용도에 영향을 미칠 수 있습니다. PolicyGenerator
CR 참조를 기반으로 특정 사이트 요구 사항에 맞는 구성 파일 계층을 만듭니다.
RAN DU 클러스터 구성을 위해 정의된 기준 PolicyGenerator
CR은 GitOps ZTP ztp-site-generate
컨테이너에서 추출할 수 있습니다. 자세한 내용은 "GitOps ZTP 사이트 구성 저장소 준비"를 참조하세요.
PolicyGenerator
CR은 ./out/argocd/example/acmpolicygenerator/
폴더에서 찾을 수 있습니다. 참조 아키텍처에는 공통, 그룹 및 사이트별 구성 CR이 있습니다. 각 PolicyGenerator
CR은 ./out/source-crs
폴더에서 찾을 수 있는 다른 CR을 참조합니다.
RAN 클러스터 구성과 관련된 PolicyGenerator
CR은 아래와 같습니다. 단일 노드, 3노드 컴팩트 및 표준 클러스터 구성의 차이점을 설명하기 위해 그룹 PolicyGenerator
CR에 대한 변형이 제공됩니다. 마찬가지로, 단일 노드 클러스터와 다중 노드(컴팩트 또는 표준) 클러스터에 대한 사이트별 구성 변형이 제공됩니다. 배포에 적합한 그룹 및 사이트별 구성 변형을 사용하세요.
PolicyGenerator CR | 설명 |
---|---|
| 다중 노드 클러스터에 적용되는 CR 세트를 포함합니다. 이러한 CR은 RAN 설치에 일반적인 SR-IOV 기능을 구성합니다. |
| 단일 노드 OpenShift 클러스터에 적용되는 CR 세트를 포함합니다. 이러한 CR은 RAN 설치에 일반적인 SR-IOV 기능을 구성합니다. |
| 다중 노드 클러스터에 적용되는 공통 RAN 정책 구성 세트가 포함되어 있습니다. |
| 모든 클러스터에 적용되는 공통 RAN CR 세트를 포함합니다. 이러한 CR은 RAN에 일반적인 클러스터 기능과 기준 클러스터 튜닝을 제공하는 일련의 운영자를 구독합니다. |
| 3노드 클러스터에 대한 RAN 정책만 포함되어 있습니다. |
| 단일 노드 클러스터에 대한 RAN 정책만 포함되어 있습니다. |
| 표준 세 개의 컨트롤 플레인 클러스터에 대한 RAN 정책이 포함되어 있습니다. |
|
3-노드 클러스터에 필요한 다양한 정책을 생성하는 데 사용되는 |
|
|
|
|
9.1.5. PolicyGenerator CR을 사용하여 관리 클러스터 사용자 정의 링크 복사링크가 클립보드에 복사되었습니다!
GitOps Zero Touch Provisioning(ZTP) 파이프라인을 사용하여 프로비저닝하는 관리형 클러스터에 적용되는 정책을 사용자 지정하려면 다음 절차를 따르세요.
사전 요구 사항
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
cluster-admin
권한이 있는 사용자로 허브 클러스터에 로그인했습니다. - 필요한 설치 및 정책 CR을 생성하기 위해 허브 클러스터를 구성했습니다.
- 사용자 정의 사이트 구성 데이터를 관리하는 Git 저장소를 만들었습니다. 저장소는 허브 클러스터에서 접근할 수 있어야 하며 Argo CD 애플리케이션의 소스 저장소로 정의되어야 합니다.
프로세스
사이트별 구성 CR에 대한
PolicyGenerator
CR을 만듭니다.-
out/argocd/example/acmpolicygenerator/
폴더에서 CR에 적합한 예를 선택합니다(예:acm-example-sno-site.yaml
또는acm-example-multinode-site.yaml
). SiteConfig
CR에 포함된 사이트별 레이블과 일치하도록 예제 파일의policyDefaults.placement.labelSelector
필드를 변경합니다. 예시SiteConfig
파일에서 사이트별 레이블은sites: example-sno
입니다.참고PolicyGenerator
policyDefaults.placement.labelSelector
필드에 정의된 레이블이 관련 관리 클러스터SiteConfig
CR에 정의된 레이블과 일치하는지 확인하세요.- 원하는 구성에 맞게 예제 파일의 내용을 변경하세요.
-
선택 사항: 클러스터 전체에 적용되는 공통 구성 CR에 대한
PolicyGenerator
CR을 만듭니다.-
out/argocd/example/acmpolicygenerator/
폴더에서 CR에 적합한 예를 선택합니다(예:acm-common-ranGen.yaml
). - 필요한 구성에 맞게 예제 파일의 내용을 변경합니다.
-
선택 사항: 플릿의 특정 클러스터 그룹에 적용되는 모든 그룹 구성 CR에 대한
PolicyGenerator
CR을 만듭니다.오버레이된 사양 파일의 콘텐츠가 필요한 최종 상태와 일치하는지 확인합니다. 참고로,
out/source-crs
디렉토리에는 PolicyGenerator 템플릿에 포함 및 오버레이할 수 있는 source-crs의 전체 목록이 포함되어 있습니다.참고클러스터의 구체적인 요구 사항에 따라 클러스터 유형당 두 개 이상의 그룹 정책이 필요할 수 있습니다. 특히, 예시 그룹 정책 각각에 단일
PerformancePolicy.yaml
파일이 있고, 해당 클러스터가 동일한 하드웨어 구성으로 구성된 경우에만 클러스터 세트에서 이 파일을 공유할 수 있다는 점을 고려할 때 더욱 그렇습니다.-
out/argocd/example/acmpolicygenerator/
폴더에서 CR에 적합한 예를 선택합니다(예:acm-group-du-sno-ranGen.yaml)
. - 필요한 구성에 맞게 예제 파일의 내용을 변경합니다.
-
-
선택 사항입니다. GitOps ZTP 설치 및 배포된 클러스터 구성이 완료되면 이를 알리는 검증기 정보 정책
PolicyGenerator
CR을 생성합니다. 자세한 내용은 "검증자 정보 정책 만들기"를 참조하세요. 예제
out/argocd/example/acmpolicygenerator//ns.yaml
파일과 유사하게 YAML 파일에 모든 정책 네임스페이스를 정의합니다.중요PolicyGenerator
CR과 같은 파일에Namespace
CR을 포함하지 마세요.-
out/argocd/example/acmpolicygenerator/kustomization.yaml
에 표시된 예와 유사하게kustomization.yaml
파일의 generators 섹션에PolicyGenerator
CR과네임스페이스
CR을 추가합니다. Git 저장소에서
PolicyGenerator
CR,Namespace
CR 및 관련kustomization.yaml
파일을 커밋하고 변경 사항을 푸시합니다.ArgoCD 파이프라인은 변경 사항을 감지하고 관리형 클러스터 배포를 시작합니다.
SiteConfig
CR과PolicyGenerator
CR에 변경 사항을 동시에 푸시할 수 있습니다.
9.1.6. 관리되는 클러스터 정책 배포 진행 상황 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
ArgoCD 파이프라인은 Git의 PolicyGenerator
CR을 사용하여 RHACM 정책을 생성한 다음 이를 허브 클러스터와 동기화합니다. 지원 서비스가 관리되는 클러스터에 OpenShift Container Platform을 설치한 후 관리되는 클러스터 정책 동기화의 진행 상황을 모니터링할 수 있습니다.
사전 요구 사항
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
cluster-admin
권한이 있는 사용자로 허브 클러스터에 로그인했습니다.
프로세스
TALM(Topology Aware Lifecycle Manager)은 클러스터에 바인딩된 구성 정책을 적용합니다.
클러스터 설치가 완료되고 클러스터가
준비 상태
가 되면ran.openshift.io/ztp-deploy-wave 주석
으로 정의된 정렬된 정책 목록이 포함된 이 클러스터에 해당하는ClusterGroupUpgrade
CR이 TALM에 의해 자동으로 생성됩니다. 클러스터 정책은ClusterGroupUpgrade
CR에 나열된 순서대로 적용됩니다.다음 명령을 사용하여 구성 정책 조정의 상위 수준 진행 상황을 모니터링할 수 있습니다.
export CLUSTER=<clusterName>
$ export CLUSTER=<clusterName>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get clustergroupupgrades -n ztp-install $CLUSTER -o jsonpath='{.status.conditions[-1:]}' | jq
$ oc get clustergroupupgrades -n ztp-install $CLUSTER -o jsonpath='{.status.conditions[-1:]}' | jq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RHACM 대시보드나 명령줄을 사용하여 자세한 클러스터 정책 준수 상태를 모니터링할 수 있습니다.
oc
를 사용하여 정책 준수 여부를 확인하려면 다음 명령을 실행하세요.oc get policies -n $CLUSTER
$ oc get policies -n $CLUSTER
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RHACM 웹 콘솔에서 정책 상태를 확인하려면 다음 작업을 수행하세요.
-
거버넌스
정책 찾기를 클릭합니다. - 클러스터 정책을 클릭하여 상태를 확인하세요.
-
거버넌스
모든 클러스터 정책이 준수되면 클러스터에 대한 GitOps ZTP 설치 및 구성이 완료됩니다. ztp-done
라벨이 클러스터에 추가됩니다.
참조 구성에서 규정을 준수하는 최종 정책은 *-du-validator-policy
정책에 정의된 정책입니다. 이 정책이 클러스터에서 준수되는 경우 모든 클러스터 구성, 운영자 설치 및 운영자 구성이 완료됩니다.
9.1.7. 구성 변경을 위한 재부팅 조정 링크 복사링크가 클립보드에 복사되었습니다!
구성 변경으로 인해 재부팅이 필요한 경우(예: 지연된 튜닝 변경) TALM(Topology Aware Lifecycle Manager)을 사용하여 여러 스포크 클러스터에서 재부팅을 조정할 수 있습니다. 재부팅 정책이 적용되면 TALM은 선택된 클러스터의 대상 MachineConfigPool
에 있는 모든 노드를 재부팅합니다.
개별적으로 변경한 후 노드를 재부팅하는 대신, 정책을 통해 모든 구성 업데이트를 적용한 다음 단일의 조정된 재부팅을 트리거할 수 있습니다.
사전 요구 사항
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
cluster-admin
권한이 있는 사용자로 허브 클러스터에 로그인했습니다. - TALM을 배포하고 구성했습니다.
프로세스
PolicyGenerator
사용자 정의 리소스(CR)를 생성하여 구성 정책을 생성합니다. 다음 샘플 매니페스트 중 하나를 사용할 수 있습니다.-
out/argocd/example/acmpolicygenerator/acm-example-sno-reboot
-
out/argocd/example/acmpolicygenerator/acm-example-multinode-reboot
-
재부팅할 클러스터를 대상으로 하도록
PolicyGenerator
CR에서policyDefaults.placement.labelSelector
필드를 업데이트합니다. 필요에 따라 사용 사례에 맞게 다른 필드를 수정하세요.지연된 튜닝 변경 사항을 적용하기 위해 재부팅을 조정하는 경우 재부팅 정책의
MachineConfigPool
이Tuned
개체의spec.recommend
필드에 지정된 값과 일치하는지 확인하세요.-
PolicyGenerator
CR을 적용하여 구성 정책을 생성하고 적용합니다. 자세한 단계는 " PolicyGenerator CR을 사용하여 관리 클러스터 사용자 지정"을 참조하십시오. ArgoCD가 정책 동기화를 완료하면
ClusterGroupUpgrade
(CGU) CR을 만들고 적용합니다.CGU 사용자 정의 리소스 구성 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
CGU 사용자 지정 리소스를 적용한 후 TALM은 구성 정책을 순서대로 롤아웃합니다. 모든 정책이 준수되면 재부팅 정책이 적용되고 지정된
MachineConfigPool
에 있는 모든 노드가 재부팅됩니다.
검증
CGU 출시 상태를 모니터링합니다.
상태를 확인하여 허브에서 CGU 사용자 정의 리소스의 롤아웃을 모니터링할 수 있습니다. 다음 명령을 실행하여 재부팅이 성공적으로 롤아웃되었는지 확인하세요.
oc get cgu -A
oc get cgu -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAMESPACE NAME AGE STATE DETAILS default reboot 1d Completed All clusters are compliant with all the managed policies
NAMESPACE NAME AGE STATE DETAILS default reboot 1d Completed All clusters are compliant with all the managed policies
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 특정 노드에서 재부팅이 성공적으로 이루어졌는지 확인합니다.
특정 노드에서 재부팅이 성공적으로 이루어졌는지 확인하려면 다음 명령을 실행하여 노드의
MachineConfigPool
(MCP) 상태를 확인하세요.oc get mcp master
oc get mcp master
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-be5785c3b98eb7a1ec902fef2b81e865 True False False 3 3 3 0 72d
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-be5785c3b98eb7a1ec902fef2b81e865 True False False 3 3 3 0 72d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.1.8. 구성 정책 CR 생성 검증 링크 복사링크가 클립보드에 복사되었습니다!
정책
사용자 정의 리소스(CR)는 생성된 PolicyGenerator
와 동일한 네임스페이스에 생성됩니다. 다음 명령을 사용하여 표시된 것처럼 ztp-common
, ztp-group
또는 ztp-site
기반인지 여부에 관계없이 PolicyGenerator
에서 생성된 모든 정책 CR에 동일한 문제 해결 흐름이 적용됩니다.
export NS=<namespace>
$ export NS=<namespace>
oc get policy -n $NS
$ oc get policy -n $NS
예상되는 정책이 적용된 CR 세트가 표시되어야 합니다.
정책 동기화에 실패한 경우 다음 문제 해결 단계를 따르세요.
프로세스
정책에 대한 자세한 정보를 표시하려면 다음 명령을 실행하세요.
oc describe -n openshift-gitops application policies
$ oc describe -n openshift-gitops application policies
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 상태 확인: 조건:
오류 로그를 표시합니다. 예를 들어, 잘못된sourceFile
항목을fileName:
으로 설정하면 아래와 같은 오류가 발생합니다.Status: Conditions: Last Transition Time: 2021-11-26T17:21:39Z Message: rpc error: code = Unknown desc = `kustomize build /tmp/https___git.com/ran-sites/policies/ --enable-alpha-plugins` failed exit status 1: 2021/11/26 17:21:40 Error could not find test.yaml under source-crs/: no such file or directory Error: failure in plugin configured via /tmp/kust-plugin-config-52463179; exit status 1: exit status 1 Type: ComparisonError
Status: Conditions: Last Transition Time: 2021-11-26T17:21:39Z Message: rpc error: code = Unknown desc = `kustomize build /tmp/https___git.com/ran-sites/policies/ --enable-alpha-plugins` failed exit status 1: 2021/11/26 17:21:40 Error could not find test.yaml under source-crs/: no such file or directory Error: failure in plugin configured via /tmp/kust-plugin-config-52463179; exit status 1: exit status 1 Type: ComparisonError
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 상태 확인: 동기화:
.상태: 조건:
에 로그 오류가 있는 경우상태: 동기화: 에
알 수 없음
또는오류가
표시됩니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Advanced Cluster Management(RHACM)에서 정책이
ManagedCluster
개체에 적용된다는 것을 인식하면 정책 CR 개체가 클러스터 네임스페이스에 적용됩니다. 정책이 클러스터 네임스페이스에 복사되었는지 확인하세요.oc get policy -n $CLUSTER
$ oc get policy -n $CLUSTER
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RHACM은 적용 가능한 모든 정책을 클러스터 네임스페이스에 복사합니다. 복사된 정책 이름의 형식은
<PolicyGenerator.Namespace>.<PolicyGenerator.Name>-<policyName>
입니다.클러스터 네임스페이스에 복사되지 않은 정책이 있는지 배치 규칙을 확인하세요. 해당 정책에 대한
Placement
의matchSelector는
ManagedCluster
개체의 레이블과 일치해야 합니다.oc get Placement -n $NS
$ oc get Placement -n $NS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 누락된 정책, 공통, 그룹 또는 사이트에 적합한
배치
이름을 기록해 둡니다.oc get Placement -n $NS <placement_rule_name> -o yaml
$ oc get Placement -n $NS <placement_rule_name> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 상태 결정에는 클러스터 이름이 포함되어야 합니다.
-
사양의
matchSelector
의 키-값 쌍은 관리되는 클러스터의 레이블과 일치해야 합니다.
다음 명령을 사용하여
ManagedCluster
개체의 레이블을 확인하세요.oc get ManagedCluster $CLUSTER -o jsonpath='{.metadata.labels}' | jq
$ oc get ManagedCluster $CLUSTER -o jsonpath='{.metadata.labels}' | jq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 어떤 정책이 준수되는지 확인하세요.
oc get policy -n $CLUSTER
$ oc get policy -n $CLUSTER
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Namespace
,OperatorGroup
및Subscription
정책은 준수하지만 Operator 구성 정책은 준수하지 않는 경우 Operator가 관리되는 클러스터에 설치되지 않았을 가능성이 높습니다. CRD가 아직 스포크에 적용되지 않았기 때문에 운영자 구성 정책이 적용되지 않습니다.
9.1.9. 정책 조정 재시작 링크 복사링크가 클립보드에 복사되었습니다!
예기치 않은 규정 준수 문제(예: ClusterGroupUpgrade
사용자 지정 리소스(CR)가 시간 초과된 경우)가 발생하면 정책 조정을 다시 시작할 수 있습니다.
프로세스
관리되는 클러스터가
준비 상태
가 되면 Topology Aware Lifecycle Manager가ztp-install
네임스페이스에ClusterGroupUpgrade
CR을 생성합니다.export CLUSTER=<clusterName>
$ export CLUSTER=<clusterName>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get clustergroupupgrades -n ztp-install $CLUSTER
$ oc get clustergroupupgrades -n ztp-install $CLUSTER
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예상치 못한 문제가 발생하고 정책이 구성된 제한 시간(기본값은 4시간) 내에 준수되지 않으면
ClusterGroupUpgrade
CR의 상태가UpgradeTimedOut으로
표시됩니다.oc get clustergroupupgrades -n ztp-install $CLUSTER -o jsonpath='{.status.conditions[?(@.type=="Ready")]}'
$ oc get clustergroupupgrades -n ztp-install $CLUSTER -o jsonpath='{.status.conditions[?(@.type=="Ready")]}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterGroupUpgrade
CR이UpgradeTimedOut
상태이면 정책 조정을 1시간마다 자동으로 다시 시작합니다. 정책을 변경한 경우 기존ClusterGroupUpgrade
CR을 삭제하여 즉시 재시도를 시작할 수 있습니다. 이렇게 하면 정책을 즉시 조정하기 시작하는 새ClusterGroupUpgrade
CR이 자동으로 생성됩니다.oc delete clustergroupupgrades -n ztp-install $CLUSTER
$ oc delete clustergroupupgrades -n ztp-install $CLUSTER
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ClusterGroupUpgrade
CR이 UpgradeCompleted
상태로 완료되고 관리되는 클러스터에 ztp-done
레이블이 적용되면 PolicyGenerator를
사용하여 추가적인 구성 변경을 수행할 수 있습니다. 기존 ClusterGroupUpgrade
CR을 삭제해도 TALM에서 새 CR을 생성하지 않습니다.
이 시점에서 GitOps ZTP는 클러스터와의 상호 작용을 완료했으며 이후의 모든 상호 작용은 업데이트로 처리되어야 하며 정책을 수정하기 위해 새로운 ClusterGroupUpgrade
CR이 생성되어야 합니다.
9.1.10. 정책을 사용하여 적용된 관리 클러스터 CR 변경 링크 복사링크가 클립보드에 복사되었습니다!
정책을 통해 관리되는 클러스터에 배포된 사용자 지정 리소스(CR)에서 콘텐츠를 제거할 수 있습니다.
기본적으로 PolicyGenerator
CR에서 생성된 모든 Policy
CR에는 complianceType
필드가 musthave
로 설정되어 있습니다. 제거된 콘텐츠가 없는 필수
정책은 관리되는 클러스터의 CR에 지정된 모든 콘텐츠가 있으므로 여전히 규정을 준수하는 것으로 간주됩니다. 이 구성을 사용하면 CR에서 콘텐츠를 제거하면 TALM이 정책에서 콘텐츠를 제거하지만 관리되는 클러스터의 CR에서는 콘텐츠가 제거되지 않습니다.
complianceType
필드를 mustonlyhave
로 설정하면 정책은 클러스터의 CR이 정책에 지정된 내용과 정확히 일치하도록 보장합니다.
사전 요구 사항
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
cluster-admin
권한이 있는 사용자로 허브 클러스터에 로그인했습니다. - RHACM을 실행하는 허브 클러스터에서 관리형 클러스터를 배포했습니다.
- 허브 클러스터에 Topology Aware Lifecycle Manager를 설치했습니다.
프로세스
영향을 받은 CR에서 더 이상 필요하지 않은 콘텐츠를 제거합니다. 이 예에서
disableDrain: false
줄은SriovOperatorConfig
CR에서 제거되었습니다.CR 예시
Copy to Clipboard Copied! Toggle word wrap Toggle overflow acm-group-du-sno-ranGen.yaml
파일에서 영향을 받는 정책의complianceType을
mustonlyhave
로 변경합니다.YAML의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterGroupUpdates
CR을 만들고 CR 변경 사항을 받아야 하는 클러스터를 지정합니다.ClusterGroupUpdates CR 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
ClusterGroupUpgrade
CR을 만듭니다.oc create -f cgu-remove.yaml
$ oc create -f cgu-remove.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들어 적절한 유지 관리 기간 동안 변경 사항을 적용할 준비가 되면 다음 명령을 실행하여
spec.enable
필드의 값을true
로 변경합니다.oc --namespace=default patch clustergroupupgrade.ran.openshift.io/cgu-remove \ --patch '{"spec":{"enable":true}}' --type=merge
$ oc --namespace=default patch clustergroupupgrade.ran.openshift.io/cgu-remove \ --patch '{"spec":{"enable":true}}' --type=merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 정책 상태를 확인하세요.
oc get <kind> <changed_cr_name>
$ oc get <kind> <changed_cr_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAMESPACE NAME REMEDIATION ACTION COMPLIANCE STATE AGE default cgu-ztp-group.group-du-sno-config-policy enforce 17m default ztp-group.group-du-sno-config-policy inform NonCompliant 15h
NAMESPACE NAME REMEDIATION ACTION COMPLIANCE STATE AGE default cgu-ztp-group.group-du-sno-config-policy enforce 17m default ztp-group.group-du-sno-config-policy inform NonCompliant 15h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 정책의
준수 상태가
준수
인 경우 CR이 업데이트되고 원치 않는 콘텐츠가 제거되었음을 의미합니다.관리되는 클러스터에서 다음 명령을 실행하여 대상 클러스터에서 정책이 제거되었는지 확인하세요.
oc get <kind> <changed_cr_name>
$ oc get <kind> <changed_cr_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 결과가 없으면 CR이 관리되는 클러스터에서 제거됩니다.
9.1.11. GitOps ZTP 설치 완료 표시 링크 복사링크가 클립보드에 복사되었습니다!
GitOps Zero Touch Provisioning(ZTP)은 클러스터의 GitOps ZTP 설치 상태를 확인하는 프로세스를 간소화합니다. GitOps ZTP 상태는 클러스터 설치, 클러스터 구성, GitOps ZTP 완료의 세 단계를 거칩니다.
- 클러스터 설치 단계
-
클러스터 설치 단계는
ManagedCluster
CR의ManagedClusterJoined
및ManagedClusterAvailable
조건을 통해 표시됩니다.ManagedCluster
CR에 이러한 조건이 없거나 조건이False
로 설정된 경우 클러스터는 여전히 설치 단계에 있습니다. 설치에 대한 추가 세부 정보는AgentClusterInstall
및ClusterDeployment
CR에서 확인할 수 있습니다. 자세한 내용은 "GitOps ZTP 문제 해결"을 참조하세요. - 클러스터 구성 단계
-
클러스터 구성 단계는 클러스터에 대한
ManagedCluster
CR이 적용된ztp 실행
레이블을 통해 표시됩니다. - GitOps ZTP 완료
클러스터 설치 및 구성은 GitOps ZTP 완료 단계에서 완료됩니다. 이는
ManagedCluster
CR에서ztp-running
레이블이 제거되고ztp-done
레이블이 추가된 것을 통해 알 수 있습니다.ztp-done
레이블은 구성이 적용되었고 기준 DU 구성의 클러스터 튜닝이 완료되었음을 보여줍니다.GitOps ZTP 완료 상태로의 변경은 Red Hat Advanced Cluster Management(RHACM) 검증자 정보 정책의 규정 준수 상태에 따라 달라집니다. 이 정책은 완료된 설치에 대한 기존 기준을 파악하고 관리되는 클러스터의 GitOps ZTP 프로비저닝이 완료될 때만 해당 설치가 규정 준수 상태로 전환되는지 검증합니다.
검증자 알림 정책은 클러스터 구성이 완전히 적용되었고 운영자가 초기화를 완료했는지 확인합니다. 정책은 다음 사항을 검증합니다.
-
대상
MachineConfigPool
에 예상 항목이 포함되어 있으며 업데이트가 완료되었습니다. 모든 노드가 사용 가능하며 성능이 저하되지 않았습니다. -
SR-IOV 운영자는 최소한 하나의
SriovNetworkNodeState
와syncStatus: Succeeded
로 표시된 대로 초기화를 완료했습니다. - PTP 운영자 데몬 세트가 존재합니다.
-
대상