16.5. ClusterGroupUpgrade CR 정보


Topology Aware Lifecycle Manager(TALM)는 클러스터 그룹에 대한 ClusterGroupUpgrade CR에서 수정 계획을 빌드합니다. ClusterGroupUpgrade CR에서 다음 사양을 정의할 수 있습니다.

  • 그룹의 클러스터
  • ClusterGroupUpgrade CR 차단
  • 적용 가능한 정책 목록
  • 동시 업데이트 수
  • 적용 가능한 카나리아 업데이트
  • 업데이트 전과 후에 수행할 작업
  • 업데이트 타이밍

TALM은 지정된 클러스터에 대한 정책 수정을 통해 작동하므로 ClusterGroupUpgrade CR의 상태가 다음과 같습니다.

  • UpgradeNotStarted
  • UpgradeCannotStart
  • UpgradeNotComplete
  • UpgradeTimedOut
  • UpgradeCompleted
  • PrecachingRequired
참고

TALM이 클러스터 업데이트를 완료하면 동일한 ClusterGroupUpgrade CR에서 클러스터에서 다시 업데이트되지 않습니다. 다음과 같은 경우 새 ClusterGroupUpgrade CR을 생성해야 합니다.

  • 클러스터를 다시 업데이트해야 하는 경우
  • 클러스터가 업데이트 후 정보 정책과 일치하지 않는 것으로 변경되는 경우

16.5.1. UpgradeNotStarted 상태

ClusterGroupUpgrade CR의 초기 상태는 UpgradeNotStarted 입니다.

TALM은 다음 필드를 기반으로 수정 계획을 빌드합니다.

  • clusterSelector 필드는 업데이트하려는 클러스터의 레이블을 지정합니다.
  • cluster 필드는 업데이트할 클러스터 목록을 지정합니다.
  • canaries 필드는 카나리아 업데이트의 클러스터를 지정합니다.
  • maxConcurrency 필드는 일괄 처리에서 업데이트할 클러스터 수를 지정합니다.

클러스터clusterSelector 필드를 함께 사용하여 결합된 클러스터 목록을 생성할 수 있습니다.

수정 계획은 canaries 필드에 나열된 클러스터로 시작됩니다. 각 카나리아 클러스터는 단일 클러스터 배치를 형성합니다.

참고

카나리아 클러스터를 업데이트하는 동안 오류가 발생하면 업데이트 프로세스가 중지됩니다.

수정 계획이 성공적으로 생성된 후 및 enable 필드가 true 로 설정된 후 ClusterGroupUpgrade CR이 UpgradeNotCompleted 상태로 전환됩니다. 이 시점에서 TALM은 지정된 관리 정책을 사용하여 비호환 클러스터를 업데이트하기 시작합니다.

참고

ClusterGroupUpgrade CR이 UpgradeNotStarted 또는 UpgradeCannotStart 상태인 경우에만 사양 필드를 변경할 수 있습니다.

UpgradeNotStarted 상태의 샘플 ClusterGroupUpgrade CR

apiVersion: ran.openshift.io/v1alpha1
kind: ClusterGroupUpgrade
metadata:
  name: cgu-upgrade-complete
  namespace: default
spec:
  clusters: 
1

  - spoke1
  enable: false
  managedPolicies: 
2

  - policy1-common-cluster-version-policy
  - policy2-common-pao-sub-policy
  remediationStrategy: 
3

    canaries: 
4

      - spoke1
    maxConcurrency: 1 
5

    timeout: 240
status: 
6

  conditions:
  - message: The ClusterGroupUpgrade CR is not enabled
    reason: UpgradeNotStarted
    status: "False"
    type: Ready
  copiedPolicies:
  - cgu-upgrade-complete-policy1-common-cluster-version-policy
  - cgu-upgrade-complete-policy2-common-pao-sub-policy
  managedPoliciesForUpgrade:
  - name: policy1-common-cluster-version-policy
    namespace: default
  - name: policy2-common-pao-sub-policy
    namespace: default
  placementBindings:
  - cgu-upgrade-complete-policy1-common-cluster-version-policy
  - cgu-upgrade-complete-policy2-common-pao-sub-policy
  placementRules:
  - cgu-upgrade-complete-policy1-common-cluster-version-policy
  - cgu-upgrade-complete-policy2-common-pao-sub-policy
  remediationPlan:
  - - spoke1
Copy to Clipboard Toggle word wrap

1
업데이트할 클러스터 목록을 정의합니다.
2
수정할 사용자 정의 정책 세트를 나열합니다.
3
클러스터 업데이트의 세부 사항을 정의합니다.
4
카나리아 업데이트의 클러스터를 정의합니다.
5
일괄 처리의 최대 동시 업데이트 수를 정의합니다. 수정 배치 수는 maxConcurrency 값으로 나눈 카나리아 클러스터 수와 카나리아 클러스터를 제외한 클러스터 수입니다. 모든 관리 정책을 이미 준수하는 클러스터는 수정 계획에서 제외됩니다.
6
업데이트 상태에 대한 정보를 표시합니다.

16.5.2. UpgradeCannotStart 상태

UpgradeCannotStart 상태에서 다음과 같은 이유로 인해 업데이트를 시작할 수 없습니다.

  • 시스템에서 차단 CR이 누락됨
  • CR 차단이 완료되지 않았습니다.

16.5.3. UpgradeNotCompleted 상태

UpgradeNotCompleted 상태에서 TALM은 UpgradeNotStarted 상태에 정의된 수정 계획에 따라 정책을 적용합니다.

후속 배치에 대한 정책을 강제 적용하는 것은 현재 배치의 모든 클러스터가 관리되는 모든 정책을 준수하는 후 즉시 시작됩니다. 일괄 처리가 시간 초과되면 TALM은 다음 일괄 처리로 이동합니다. 일괄 처리의 시간 초과 값은 spec.timeout 필드로, 수정 계획의 배치 수로 나눈 값입니다.

참고

관리형 정책은 ClusterGroupUpgrade CR의 managedPolicies 필드에 나열된 순서에 적용됩니다. 하나의 관리형 정책은 한 번에 지정된 클러스터에 적용됩니다. 지정된 클러스터가 현재 정책을 준수하면 다음 관리 정책이 다음 비준수 클러스터에 적용됩니다.

UpgradeNotCompleted 상태의 샘플 ClusterGroupUpgrade CR

apiVersion: ran.openshift.io/v1alpha1
kind: ClusterGroupUpgrade
metadata:
  name: cgu-upgrade-complete
  namespace: default
spec:
  clusters:
  - spoke1
  enable: true 
1

  managedPolicies:
  - policy1-common-cluster-version-policy
  - policy2-common-pao-sub-policy
  remediationStrategy:
    maxConcurrency: 1
    timeout: 240
status: 
2

  conditions:
  - message: The ClusterGroupUpgrade CR has upgrade policies that are still non compliant
    reason: UpgradeNotCompleted
    status: "False"
    type: Ready
  copiedPolicies:
  - cgu-upgrade-complete-policy1-common-cluster-version-policy
  - cgu-upgrade-complete-policy2-common-pao-sub-policy
  managedPoliciesForUpgrade:
  - name: policy1-common-cluster-version-policy
    namespace: default
  - name: policy2-common-pao-sub-policy
    namespace: default
  placementBindings:
  - cgu-upgrade-complete-policy1-common-cluster-version-policy
  - cgu-upgrade-complete-policy2-common-pao-sub-policy
  placementRules:
  - cgu-upgrade-complete-policy1-common-cluster-version-policy
  - cgu-upgrade-complete-policy2-common-pao-sub-policy
  remediationPlan:
  - - spoke1
  status:
    currentBatch: 1
    remediationPlanForBatch: 
3

      spoke1: 0
Copy to Clipboard Toggle word wrap

1
spec.enable 필드의 값이 true 인 경우 업데이트가 시작됩니다.
2
업데이트가 시작될 때 상태 필드가 적절하게 변경됩니다.
3
배치의 클러스터와 각 클러스터에 현재 적용되는 정책의 인덱스를 나열합니다. 정책의 인덱스는 0 으로 시작하고 인덱스가 status.managedPoliciesForUpgrade 목록의 순서를 따릅니다.

16.5.4. UpgradeTimedOut 상태

UpgradeTimedOut 상태에서 TALM은 ClusterGroupUpgrade CR에 대한 모든 정책이 호환되는 경우 매시간 확인합니다. ClusterGroupUpgrade CR이 삭제되거나 업데이트가 완료될 때까지 검사가 계속됩니다. 정기적인 검사를 통해 네트워크, CPU 또는 기타 문제로 인해 시간이 길어지는 경우 업데이트가 완료될 수 있습니다.

두 가지 경우 TALM이 UpgradeTimedOut 상태로 전환됩니다.

  • 현재 배치에 카나리아 업데이트가 포함되어 있고 일괄 처리의 클러스터가 일괄 타임아웃 내의 모든 관리 정책을 준수하지 않는 경우
  • 클러스터가 remediationStrategy 필드에 지정된 타임아웃 값 내의 관리 정책을 준수하지 않는 경우

정책이 준수되면 TALM이 UpgradeCompleted 상태로 전환됩니다.

16.5.5. UpgradeCompleted 상태

UpgradeCompleted 상태에서 클러스터 업데이트가 완료됩니다.

UpgradeCompleted 상태의 샘플 ClusterGroupUpgrade CR

apiVersion: ran.openshift.io/v1alpha1
kind: ClusterGroupUpgrade
metadata:
  name: cgu-upgrade-complete
  namespace: default
spec:
  actions:
    afterCompletion:
      deleteObjects: true 
1

  clusters:
  - spoke1
  enable: true
  managedPolicies:
  - policy1-common-cluster-version-policy
  - policy2-common-pao-sub-policy
  remediationStrategy:
    maxConcurrency: 1
    timeout: 240
status: 
2

  conditions:
  - message: The ClusterGroupUpgrade CR has all clusters compliant with all the managed policies
    reason: UpgradeCompleted
    status: "True"
    type: Ready
  managedPoliciesForUpgrade:
  - name: policy1-common-cluster-version-policy
    namespace: default
  - name: policy2-common-pao-sub-policy
    namespace: default
  remediationPlan:
  - - spoke1
  status:
    remediationPlanForBatch:
      spoke1: -2 
3
Copy to Clipboard Toggle word wrap

1
spec.action.afterCompletion.deleteObjects 필드의 값은 기본적으로 true 입니다. 업데이트가 완료되면 TALM은 업데이트 중에 생성된 기본 RHACM 개체를 삭제합니다. 이 옵션은 업데이트 후 RHACM 허브가 지속적으로 컴플라이언스를 확인하지 못하도록 하기 위한 것입니다.
2
status 필드에는 업데이트가 성공적으로 완료되었음이 표시됩니다.
3
모든 정책이 클러스터에 적용되는 것을 표시합니다.
<discreet><title>PrecachingRequired 상태</title>

PrecachingRequired 상태에서 클러스터에 업데이트를 시작하기 전에 이미지가 사전 캐시되어야 합니다. 사전 캐싱에 대한 자세한 내용은 "컨테이너 이미지 사전 캐시 기능 사용" 섹션을 참조하십시오.

</discreet>

16.5.6. ClusterGroupUpgrade CR 차단

여러 ClusterGroupUpgrade CR을 생성하고 애플리케이션 순서를 제어할 수 있습니다.

예를 들어 ClusterGroupUpgrade CR A의 시작을 차단하는 ClusterGroupUpgrade CR C를 생성하는 경우 ClusterGroupUpgrade CR A의 상태가 UpgradeComplete 가 될 때까지 시작할 수 없습니다.

하나의 ClusterGroupUpgrade CR에는 여러 개의 차단 CR이 있을 수 있습니다. 이 경우 현재 CR의 업그레이드가 시작되기 전에 모든 차단 CR을 완료해야 합니다.

사전 요구 사항

  • TALM(토폴로지 라이프사이클 관리자)을 설치합니다.
  • 하나 이상의 관리 클러스터를 프로비저닝합니다.
  • cluster-admin 권한이 있는 사용자로 로그인합니다.
  • hub 클러스터에 RHACM 정책을 생성합니다.

절차

  1. ClusterGroupUpgrade CR의 콘텐츠를 cgu-a.yaml,cgu-b.yaml, cgu-c.yaml 파일에 저장합니다.

    apiVersion: ran.openshift.io/v1alpha1
    kind: ClusterGroupUpgrade
    metadata:
      name: cgu-a
      namespace: default
    spec:
      blockingCRs: 
    1
    
      - name: cgu-c
        namespace: default
      clusters:
      - spoke1
      - spoke2
      - spoke3
      enable: false
      managedPolicies:
      - policy1-common-cluster-version-policy
      - policy2-common-pao-sub-policy
      - policy3-common-ptp-sub-policy
      remediationStrategy:
        canaries:
        - spoke1
        maxConcurrency: 2
        timeout: 240
    status:
      conditions:
      - message: The ClusterGroupUpgrade CR is not enabled
        reason: UpgradeNotStarted
        status: "False"
        type: Ready
      copiedPolicies:
      - cgu-a-policy1-common-cluster-version-policy
      - cgu-a-policy2-common-pao-sub-policy
      - cgu-a-policy3-common-ptp-sub-policy
      managedPoliciesForUpgrade:
      - name: policy1-common-cluster-version-policy
        namespace: default
      - name: policy2-common-pao-sub-policy
        namespace: default
      - name: policy3-common-ptp-sub-policy
        namespace: default
      placementBindings:
      - cgu-a-policy1-common-cluster-version-policy
      - cgu-a-policy2-common-pao-sub-policy
      - cgu-a-policy3-common-ptp-sub-policy
      placementRules:
      - cgu-a-policy1-common-cluster-version-policy
      - cgu-a-policy2-common-pao-sub-policy
      - cgu-a-policy3-common-ptp-sub-policy
      remediationPlan:
      - - spoke1
      - - spoke2
    Copy to Clipboard Toggle word wrap
    1
    차단 CR을 정의합니다. cgu-a 업데이트는 cgu-c 가 완료될 때까지 시작할 수 없습니다.
    apiVersion: ran.openshift.io/v1alpha1
    kind: ClusterGroupUpgrade
    metadata:
      name: cgu-b
      namespace: default
    spec:
      blockingCRs: 
    1
    
      - name: cgu-a
        namespace: default
      clusters:
      - spoke4
      - spoke5
      enable: false
      managedPolicies:
      - policy1-common-cluster-version-policy
      - policy2-common-pao-sub-policy
      - policy3-common-ptp-sub-policy
      - policy4-common-sriov-sub-policy
      remediationStrategy:
        maxConcurrency: 1
        timeout: 240
    status:
      conditions:
      - message: The ClusterGroupUpgrade CR is not enabled
        reason: UpgradeNotStarted
        status: "False"
        type: Ready
      copiedPolicies:
      - cgu-b-policy1-common-cluster-version-policy
      - cgu-b-policy2-common-pao-sub-policy
      - cgu-b-policy3-common-ptp-sub-policy
      - cgu-b-policy4-common-sriov-sub-policy
      managedPoliciesForUpgrade:
      - name: policy1-common-cluster-version-policy
        namespace: default
      - name: policy2-common-pao-sub-policy
        namespace: default
      - name: policy3-common-ptp-sub-policy
        namespace: default
      - name: policy4-common-sriov-sub-policy
        namespace: default
      placementBindings:
      - cgu-b-policy1-common-cluster-version-policy
      - cgu-b-policy2-common-pao-sub-policy
      - cgu-b-policy3-common-ptp-sub-policy
      - cgu-b-policy4-common-sriov-sub-policy
      placementRules:
      - cgu-b-policy1-common-cluster-version-policy
      - cgu-b-policy2-common-pao-sub-policy
      - cgu-b-policy3-common-ptp-sub-policy
      - cgu-b-policy4-common-sriov-sub-policy
      remediationPlan:
      - - spoke4
      - - spoke5
      status: {}
    Copy to Clipboard Toggle word wrap
    1
    cgu-b 업데이트는 cgu-a 가 완료될 때까지 시작할 수 없습니다.
    apiVersion: ran.openshift.io/v1alpha1
    kind: ClusterGroupUpgrade
    metadata:
      name: cgu-c
      namespace: default
    spec: 
    1
    
      clusters:
      - spoke6
      enable: false
      managedPolicies:
      - policy1-common-cluster-version-policy
      - policy2-common-pao-sub-policy
      - policy3-common-ptp-sub-policy
      - policy4-common-sriov-sub-policy
      remediationStrategy:
        maxConcurrency: 1
        timeout: 240
    status:
      conditions:
      - message: The ClusterGroupUpgrade CR is not enabled
        reason: UpgradeNotStarted
        status: "False"
        type: Ready
      copiedPolicies:
      - cgu-c-policy1-common-cluster-version-policy
      - cgu-c-policy4-common-sriov-sub-policy
      managedPoliciesCompliantBeforeUpgrade:
      - policy2-common-pao-sub-policy
      - policy3-common-ptp-sub-policy
      managedPoliciesForUpgrade:
      - name: policy1-common-cluster-version-policy
        namespace: default
      - name: policy4-common-sriov-sub-policy
        namespace: default
      placementBindings:
      - cgu-c-policy1-common-cluster-version-policy
      - cgu-c-policy4-common-sriov-sub-policy
      placementRules:
      - cgu-c-policy1-common-cluster-version-policy
      - cgu-c-policy4-common-sriov-sub-policy
      remediationPlan:
      - - spoke6
      status: {}
    Copy to Clipboard Toggle word wrap
    1
    cgu-c 업데이트는 차단 CR이 없습니다. enable 필드가 true 로 설정된 경우 TALM이 cgu-c 업데이트를 시작합니다.
  2. 각 관련 CR에 대해 다음 명령을 실행하여 ClusterGroupUpgrade CR을 생성합니다.

    $ oc apply -f <name>.yaml
    Copy to Clipboard Toggle word wrap
  3. 관련 각 CR에 대해 다음 명령을 실행하여 업데이트 프로세스를 시작합니다.

    $ oc --namespace=default patch clustergroupupgrade.ran.openshift.io/<name> \
    --type merge -p '{"spec":{"enable":true}}'
    Copy to Clipboard Toggle word wrap

    다음 예제에서는 enable 필드가 true 로 설정된 ClusterGroupUpgrade CR을 보여줍니다.

    cgu-a 차단 CR의 예

    apiVersion: ran.openshift.io/v1alpha1
    kind: ClusterGroupUpgrade
    metadata:
      name: cgu-a
      namespace: default
    spec:
      blockingCRs:
      - name: cgu-c
        namespace: default
      clusters:
      - spoke1
      - spoke2
      - spoke3
      enable: true
      managedPolicies:
      - policy1-common-cluster-version-policy
      - policy2-common-pao-sub-policy
      - policy3-common-ptp-sub-policy
      remediationStrategy:
        canaries:
        - spoke1
        maxConcurrency: 2
        timeout: 240
    status:
      conditions:
      - message: 'The ClusterGroupUpgrade CR is blocked by other CRs that have not yet
          completed: [cgu-c]' 
    1
    
        reason: UpgradeCannotStart
        status: "False"
        type: Ready
      copiedPolicies:
      - cgu-a-policy1-common-cluster-version-policy
      - cgu-a-policy2-common-pao-sub-policy
      - cgu-a-policy3-common-ptp-sub-policy
      managedPoliciesForUpgrade:
      - name: policy1-common-cluster-version-policy
        namespace: default
      - name: policy2-common-pao-sub-policy
        namespace: default
      - name: policy3-common-ptp-sub-policy
        namespace: default
      placementBindings:
      - cgu-a-policy1-common-cluster-version-policy
      - cgu-a-policy2-common-pao-sub-policy
      - cgu-a-policy3-common-ptp-sub-policy
      placementRules:
      - cgu-a-policy1-common-cluster-version-policy
      - cgu-a-policy2-common-pao-sub-policy
      - cgu-a-policy3-common-ptp-sub-policy
      remediationPlan:
      - - spoke1
      - - spoke2
      status: {}
    Copy to Clipboard Toggle word wrap

    1
    차단 CR 목록을 표시합니다.

    CR을 차단하는 cgu-b 의 예

    apiVersion: ran.openshift.io/v1alpha1
    kind: ClusterGroupUpgrade
    metadata:
      name: cgu-b
      namespace: default
    spec:
      blockingCRs:
      - name: cgu-a
        namespace: default
      clusters:
      - spoke4
      - spoke5
      enable: true
      managedPolicies:
      - policy1-common-cluster-version-policy
      - policy2-common-pao-sub-policy
      - policy3-common-ptp-sub-policy
      - policy4-common-sriov-sub-policy
      remediationStrategy:
        maxConcurrency: 1
        timeout: 240
    status:
      conditions:
      - message: 'The ClusterGroupUpgrade CR is blocked by other CRs that have not yet
          completed: [cgu-a]' 
    1
    
        reason: UpgradeCannotStart
        status: "False"
        type: Ready
      copiedPolicies:
      - cgu-b-policy1-common-cluster-version-policy
      - cgu-b-policy2-common-pao-sub-policy
      - cgu-b-policy3-common-ptp-sub-policy
      - cgu-b-policy4-common-sriov-sub-policy
      managedPoliciesForUpgrade:
      - name: policy1-common-cluster-version-policy
        namespace: default
      - name: policy2-common-pao-sub-policy
        namespace: default
      - name: policy3-common-ptp-sub-policy
        namespace: default
      - name: policy4-common-sriov-sub-policy
        namespace: default
      placementBindings:
      - cgu-b-policy1-common-cluster-version-policy
      - cgu-b-policy2-common-pao-sub-policy
      - cgu-b-policy3-common-ptp-sub-policy
      - cgu-b-policy4-common-sriov-sub-policy
      placementRules:
      - cgu-b-policy1-common-cluster-version-policy
      - cgu-b-policy2-common-pao-sub-policy
      - cgu-b-policy3-common-ptp-sub-policy
      - cgu-b-policy4-common-sriov-sub-policy
      remediationPlan:
      - - spoke4
      - - spoke5
      status: {}
    Copy to Clipboard Toggle word wrap

    1
    차단 CR 목록을 표시합니다.

    CR을 차단하는 cgu-c 의 예

    apiVersion: ran.openshift.io/v1alpha1
    kind: ClusterGroupUpgrade
    metadata:
      name: cgu-c
      namespace: default
    spec:
      clusters:
      - spoke6
      enable: true
      managedPolicies:
      - policy1-common-cluster-version-policy
      - policy2-common-pao-sub-policy
      - policy3-common-ptp-sub-policy
      - policy4-common-sriov-sub-policy
      remediationStrategy:
        maxConcurrency: 1
        timeout: 240
    status:
      conditions:
      - message: The ClusterGroupUpgrade CR has upgrade policies that are still non compliant 
    1
    
        reason: UpgradeNotCompleted
        status: "False"
        type: Ready
      copiedPolicies:
      - cgu-c-policy1-common-cluster-version-policy
      - cgu-c-policy4-common-sriov-sub-policy
      managedPoliciesCompliantBeforeUpgrade:
      - policy2-common-pao-sub-policy
      - policy3-common-ptp-sub-policy
      managedPoliciesForUpgrade:
      - name: policy1-common-cluster-version-policy
        namespace: default
      - name: policy4-common-sriov-sub-policy
        namespace: default
      placementBindings:
      - cgu-c-policy1-common-cluster-version-policy
      - cgu-c-policy4-common-sriov-sub-policy
      placementRules:
      - cgu-c-policy1-common-cluster-version-policy
      - cgu-c-policy4-common-sriov-sub-policy
      remediationPlan:
      - - spoke6
      status:
        currentBatch: 1
        remediationPlanForBatch:
          spoke6: 0
    Copy to Clipboard Toggle word wrap

    1
    cgu-c 업데이트는 차단 CR이 없습니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat