16.6. 관리형 클러스터에서 정책 업데이트


TALM(토폴로지 라이프사이클 관리자)은 ClusterGroupUpgrade CR에 지정된 클러스터에 대한 정보 정책을 조정합니다. TALM은 관리되는 RHACM 정책 사본을 시행 하여 정보 정책을 해결합니다. 복사된 각 정책에는 자체 RHACM 배치 규칙과 RHACM 배치 바인딩이 있습니다.

하나씩 TALM은 현재 배치의 각 클러스터를 적용 가능한 관리 정책에 해당하는 배치 규칙에 추가합니다. 클러스터가 이미 정책을 준수하는 경우 TALM은 호환 클러스터에 해당 정책을 적용하는 것을 건너뜁니다. 그런 다음 TALM은 비호환 클러스터에 다음 정책을 적용하기 위해 계속 이동합니다. TALM이 일괄 처리에서 업데이트를 완료하면 복사된 정책과 연결된 배치 규칙에서 모든 클러스터가 제거됩니다. 그런 다음 다음 배치의 업데이트가 시작됩니다.

스포크 클러스터에서 RHACM에 호환 상태를 보고하지 않는 경우 hub 클러스터에 대한 관리 정책에 TALM에 필요한 상태 정보가 누락될 수 있습니다. TALM에서는 다음과 같은 방법으로 이러한 경우를 처리합니다.

  • 정책의 status.compliant 필드가 없는 경우 TALM은 정책을 무시하고 로그 항목을 추가합니다. 그런 다음 TALM은 정책의 status.status 필드를 계속 확인합니다.
  • 정책의 status.status 가 누락된 경우 TALM에서 오류를 생성합니다.
  • 정책의 status.status 필드에 클러스터의 규정 준수 상태가 없는 경우 TALM은 해당 클러스터를 해당 정책과 준수하지 않는 것으로 간주합니다.

RHACM 정책에 대한 자세한 내용은 정책 개요 를 참조하십시오.

추가 리소스

PolicyGenTemplate CRD에 대한 자세한 내용은 PolicyGenTemplate CRD 정보를 참조하십시오.

16.6.1. 관리 클러스터에 업데이트 정책 적용

정책을 적용하여 관리 클러스터를 업데이트할 수 있습니다.

사전 요구 사항

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

절차

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

    Copy to Clipboard Toggle word wrap
    apiVersion: ran.openshift.io/v1alpha1
    kind: ClusterGroupUpgrade
    metadata:
      name: cgu-1
      namespace: default
    spec:
      managedPolicies: 
    1
    
        - policy1-common-cluster-version-policy
        - policy2-common-pao-sub-policy
        - policy3-common-ptp-sub-policy
        - policy4-common-sriov-sub-policy
      enable: false
      clusters: 
    2
    
      - spoke1
      - spoke2
      - spoke5
      - spoke6
      remediationStrategy:
        maxConcurrency: 2 
    3
    
        timeout: 240 
    4
    1
    적용할 정책의 이름입니다.
    2
    업데이트할 클러스터 목록입니다.
    3
    maxConcurrency 필드는 동시에 업데이트되는 클러스터 수를 나타냅니다.
    4
    업데이트 제한 시간(분)입니다.
  2. 다음 명령을 실행하여 ClusterGroupUpgrade CR을 생성합니다.

    Copy to Clipboard Toggle word wrap
    $ oc create -f cgu-1.yaml
    1. 다음 명령을 실행하여 hub 클러스터에서 ClusterGroupUpgrade CR이 생성되었는지 확인합니다.

      Copy to Clipboard Toggle word wrap
      $ oc get cgu --all-namespaces

      출력 예

      Copy to Clipboard Toggle word wrap
      NAMESPACE   NAME      AGE
      default     cgu-1     8m55s

    2. 다음 명령을 실행하여 업데이트 상태를 확인합니다.

      Copy to Clipboard Toggle word wrap
      $ oc get cgu -n default cgu-1 -ojsonpath='{.status}' | jq

      출력 예

      Copy to Clipboard Toggle word wrap
      {
        "computedMaxConcurrency": 2,
        "conditions": [
          {
            "lastTransitionTime": "2022-02-25T15:34:07Z",
            "message": "The ClusterGroupUpgrade CR is not enabled", 
      1
      
            "reason": "UpgradeNotStarted",
            "status": "False",
            "type": "Ready"
          }
        ],
        "copiedPolicies": [
          "cgu-policy1-common-cluster-version-policy",
          "cgu-policy2-common-pao-sub-policy",
          "cgu-policy3-common-ptp-sub-policy",
          "cgu-policy4-common-sriov-sub-policy"
        ],
        "managedPoliciesContent": {
          "policy1-common-cluster-version-policy": "null",
          "policy2-common-pao-sub-policy": "[{\"kind\":\"Subscription\",\"name\":\"performance-addon-operator\",\"namespace\":\"openshift-performance-addon-operator\"}]",
          "policy3-common-ptp-sub-policy": "[{\"kind\":\"Subscription\",\"name\":\"ptp-operator-subscription\",\"namespace\":\"openshift-ptp\"}]",
          "policy4-common-sriov-sub-policy": "[{\"kind\":\"Subscription\",\"name\":\"sriov-network-operator-subscription\",\"namespace\":\"openshift-sriov-network-operator\"}]"
        },
        "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"
          }
        ],
        "managedPoliciesNs": {
          "policy1-common-cluster-version-policy": "default",
          "policy2-common-pao-sub-policy": "default",
          "policy3-common-ptp-sub-policy": "default",
          "policy4-common-sriov-sub-policy": "default"
        },
        "placementBindings": [
          "cgu-policy1-common-cluster-version-policy",
          "cgu-policy2-common-pao-sub-policy",
          "cgu-policy3-common-ptp-sub-policy",
          "cgu-policy4-common-sriov-sub-policy"
        ],
        "placementRules": [
          "cgu-policy1-common-cluster-version-policy",
          "cgu-policy2-common-pao-sub-policy",
          "cgu-policy3-common-ptp-sub-policy",
          "cgu-policy4-common-sriov-sub-policy"
        ],
        "precaching": {
          "spec": {}
        },
        "remediationPlan": [
          [
            "spoke1",
            "spoke2"
          ],
          [
            "spoke5",
            "spoke6"
          ]
        ],
        "status": {}
      }

      1
      ClusterGroupUpgrade CR의 spec.enable 필드가 false 로 설정됩니다.
    3. 다음 명령을 실행하여 정책 상태를 확인합니다.

      Copy to Clipboard Toggle word wrap
      $ oc get policies -A

      출력 예

      Copy to Clipboard Toggle word wrap
      NAMESPACE   NAME                                                 REMEDIATION ACTION   COMPLIANCE STATE   AGE
      default     cgu-policy1-common-cluster-version-policy            enforce                                 17m 
      1
      
      default     cgu-policy2-common-pao-sub-policy                    enforce                                 17m
      default     cgu-policy3-common-ptp-sub-policy                    enforce                                 17m
      default     cgu-policy4-common-sriov-sub-policy                  enforce                                 17m
      default     policy1-common-cluster-version-policy                inform               NonCompliant       15h
      default     policy2-common-pao-sub-policy                        inform               NonCompliant       15h
      default     policy3-common-ptp-sub-policy                        inform               NonCompliant       18m
      default     policy4-common-sriov-sub-policy                      inform               NonCompliant       18m

      1
      현재 클러스터에 적용되는 정책의 spec.remediationAction 필드가 적용 되도록 설정되어 있습니다. ClusterGroupUpgrade CR의 정보 정보 모드의 관리형 정책은 업데이트 중에 정보 모드를 유지합니다.
  3. 다음 명령을 실행하여 spec.enable 필드의 값을 true 로 변경합니다.

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

검증

  1. 다음 명령을 실행하여 업데이트 상태를 다시 확인합니다.

    Copy to Clipboard Toggle word wrap
    $ oc get cgu -n default cgu-1 -ojsonpath='{.status}' | jq

    출력 예

    Copy to Clipboard Toggle word wrap
    {
      "computedMaxConcurrency": 2,
      "conditions": [ 
    1
    
        {
          "lastTransitionTime": "2022-02-25T15:34:07Z",
          "message": "The ClusterGroupUpgrade CR has upgrade policies that are still non compliant",
          "reason": "UpgradeNotCompleted",
          "status": "False",
          "type": "Ready"
        }
      ],
      "copiedPolicies": [
        "cgu-policy1-common-cluster-version-policy",
        "cgu-policy2-common-pao-sub-policy",
        "cgu-policy3-common-ptp-sub-policy",
        "cgu-policy4-common-sriov-sub-policy"
      ],
      "managedPoliciesContent": {
        "policy1-common-cluster-version-policy": "null",
        "policy2-common-pao-sub-policy": "[{\"kind\":\"Subscription\",\"name\":\"performance-addon-operator\",\"namespace\":\"openshift-performance-addon-operator\"}]",
        "policy3-common-ptp-sub-policy": "[{\"kind\":\"Subscription\",\"name\":\"ptp-operator-subscription\",\"namespace\":\"openshift-ptp\"}]",
        "policy4-common-sriov-sub-policy": "[{\"kind\":\"Subscription\",\"name\":\"sriov-network-operator-subscription\",\"namespace\":\"openshift-sriov-network-operator\"}]"
      },
      "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"
        }
      ],
      "managedPoliciesNs": {
        "policy1-common-cluster-version-policy": "default",
        "policy2-common-pao-sub-policy": "default",
        "policy3-common-ptp-sub-policy": "default",
        "policy4-common-sriov-sub-policy": "default"
      },
      "placementBindings": [
        "cgu-policy1-common-cluster-version-policy",
        "cgu-policy2-common-pao-sub-policy",
        "cgu-policy3-common-ptp-sub-policy",
        "cgu-policy4-common-sriov-sub-policy"
      ],
      "placementRules": [
        "cgu-policy1-common-cluster-version-policy",
        "cgu-policy2-common-pao-sub-policy",
        "cgu-policy3-common-ptp-sub-policy",
        "cgu-policy4-common-sriov-sub-policy"
      ],
      "precaching": {
        "spec": {}
      },
      "remediationPlan": [
        [
          "spoke1",
          "spoke2"
        ],
        [
          "spoke5",
          "spoke6"
        ]
      ],
      "status": {
        "currentBatch": 1,
        "currentBatchStartedAt": "2022-02-25T15:54:16Z",
        "remediationPlanForBatch": {
          "spoke1": 0,
          "spoke2": 1
        },
        "startedAt": "2022-02-25T15:54:16Z"
      }
    }

    1
    현재 일괄 처리의 업데이트 진행 상황을 반영합니다. 이 명령을 다시 실행하여 진행 상황에 대한 업데이트된 정보를 받습니다.
  2. 정책에 Operator 서브스크립션이 포함된 경우 단일 노드 클러스터에서 직접 설치 진행 상황을 확인할 수 있습니다.

    1. 다음 명령을 실행하여 설치 진행 상황을 확인할 단일 노드 클러스터의 KUBECONFIG 파일을 내보냅니다.

      Copy to Clipboard Toggle word wrap
      $ export KUBECONFIG=<cluster_kubeconfig_absolute_path>
    2. 단일 노드 클러스터에 있는 모든 서브스크립션을 확인하고 다음 명령을 실행하여 ClusterGroupUpgrade CR을 통해 설치하려는 정책에서 해당 서브스크립션을 찾습니다.

      Copy to Clipboard Toggle word wrap
      $ oc get subs -A | grep -i <subscription_name>

      cluster-logging 정책의 출력 예

      Copy to Clipboard Toggle word wrap
      NAMESPACE                              NAME                         PACKAGE                      SOURCE             CHANNEL
      openshift-logging                      cluster-logging              cluster-logging              redhat-operators   stable

  3. 관리 정책 중 하나에 ClusterVersion CR이 포함된 경우 스포크 클러스터에 대해 다음 명령을 실행하여 현재 배치에서 플랫폼 업데이트의 상태를 확인합니다.

    Copy to Clipboard Toggle word wrap
    $ oc get clusterversion

    출력 예

    Copy to Clipboard Toggle word wrap
    NAME      VERSION   AVAILABLE   PROGRESSING   SINCE   STATUS
    version   4.9.5     True        True          43s     Working towards 4.9.7: 71 of 735 done (9% complete)

  4. 다음 명령을 실행하여 Operator 서브스크립션을 확인합니다.

    Copy to Clipboard Toggle word wrap
    $ oc get subs -n <operator-namespace> <operator-subscription> -ojsonpath="{.status}"
  5. 다음 명령을 실행하여 원하는 서브스크립션과 연결된 단일 노드 클러스터에 설치 계획이 있는지 확인합니다.

    Copy to Clipboard Toggle word wrap
    $ oc get installplan -n <subscription_namespace>

    cluster-logging Operator의 출력 예

    Copy to Clipboard Toggle word wrap
    NAMESPACE                              NAME            CSV                                 APPROVAL   APPROVED
    openshift-logging                      install-6khtw   cluster-logging.5.3.3-4             Manual     true 
    1

    1
    설치 계획의 Approval 필드가 Manual 로 설정되고 TALM에서 설치 계획을 승인한 후 승인 필드가 false 에서 true 로 변경됩니다.
    참고

    TALM이 서브스크립션이 포함된 정책을 수정하면 해당 서브스크립션에 연결된 모든 설치 계획을 자동으로 승인합니다. Operator를 최신 알려진 버전으로 가져오기 위해 여러 설치 계획이 필요한 경우 TALM에서 여러 설치 계획을 승인하고 하나 이상의 중간 버전을 통해 업그레이드하여 최종 버전으로 가져올 수 있습니다.

  6. 다음 명령을 실행하여 ClusterGroupUpgrade 가 설치하는 정책의 Operator의 클러스터 서비스 버전이 Succeeded 단계에 도달했는지 확인합니다.

    Copy to Clipboard Toggle word wrap
    $ oc get csv -n <operator_namespace>

    OpenShift Logging Operator의 출력 예

    Copy to Clipboard Toggle word wrap
    NAME                    DISPLAY                     VERSION   REPLACES   PHASE
    cluster-logging.5.4.2   Red Hat OpenShift Logging   5.4.2                Succeeded

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat, Inc.