13.8. 토폴로지 인식 라이프사이클 관리자 문제 해결


Topology Aware Lifecycle Manager (TALM)는 RHACM 정책을 수정하는 OpenShift Container Platform Operator입니다. 문제가 발생하면 oc adm must-gather 명령을 사용하여 세부 정보 및 로그를 수집하고 문제를 디버깅하는 단계를 수행합니다.

관련 항목에 대한 자세한 내용은 다음 설명서를 참조하십시오.

13.8.1. 일반 문제 해결

다음 질문을 검토하여 문제의 원인을 확인할 수 있습니다.

ClusterGroupUpgrade 구성이 작동하는지 확인하려면 다음을 수행할 수 있습니다.

  1. spec.enable 필드가 false 로 설정된 ClusterGroupUpgrade CR을 생성합니다.
  2. 상태가 업데이트될 때까지 기다린 후 문제 해결 질문을 진행합니다.
  3. 모든 항목이 예상대로 표시되면 ClusterGroupUpgrade CR에서 spec.enable 필드를 true 로 설정합니다.
주의

ClusterUpgradeGroup CR에서 spec.enable 필드를 true 로 설정한 후에는 업데이트 절차가 시작되고 CR의 spec 필드를 더 이상 편집할 수 없습니다.

13.8.2. ClusterUpgradeGroup CR을 수정할 수 없음

문제
업데이트를 활성화한 후에는 ClusterUpgradeGroup CR을 편집할 수 없습니다.
해결

다음 단계를 수행하여 절차를 다시 시작합니다.

  1. 다음 명령을 실행하여 이전 ClusterGroupUpgrade CR을 제거합니다.

    $ oc delete cgu -n <ClusterGroupUpgradeCR_namespace> <ClusterGroupUpgradeCR_name>
    Copy to Clipboard Toggle word wrap
  2. 관리 클러스터 및 정책의 기존 문제를 확인하고 수정합니다.

    1. 모든 클러스터가 관리 클러스터이고 사용 가능한지 확인합니다.
    2. 모든 정책이 존재하고 spec.remediationAction 필드가 설정되어 있는지 확인합니다.
  3. 올바른 구성으로 새 ClusterGroupUpgrade CR을 생성합니다.

    $ oc apply -f <ClusterGroupUpgradeCR_YAML>
    Copy to Clipboard Toggle word wrap

13.8.3. 관리형 정책

시스템에서 관리되는 정책 확인

문제
시스템에 올바른 관리 정책이 있는지 확인하려고 합니다.
해결

다음 명령을 실행합니다.

$ oc get cgu lab-upgrade -ojsonpath='{.spec.managedPolicies}'
Copy to Clipboard Toggle word wrap

출력 예

["group-du-sno-validator-du-validator-policy", "policy2-common-nto-sub-policy", "policy3-common-ptp-sub-policy"]
Copy to Clipboard Toggle word wrap

수정 모드 확인

문제
관리되는 정책의 사양 에서 remediationAction 필드가 inform 으로 설정되어 있는지 확인하고 싶습니다.
해결

다음 명령을 실행합니다.

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

출력 예

NAMESPACE   NAME                                                 REMEDIATION ACTION   COMPLIANCE STATE   AGE
default     policy1-common-cluster-version-policy                inform               NonCompliant       5d21h
default     policy2-common-nto-sub-policy                        inform               Compliant          5d21h
default     policy3-common-ptp-sub-policy                        inform               NonCompliant       5d21h
default     policy4-common-sriov-sub-policy                      inform               NonCompliant       5d21h
Copy to Clipboard Toggle word wrap

정책 규정 준수 상태 확인

문제
정책의 규정 준수 상태를 확인하려고 합니다.
해결

다음 명령을 실행합니다.

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

출력 예

NAMESPACE   NAME                                                 REMEDIATION ACTION   COMPLIANCE STATE   AGE
default     policy1-common-cluster-version-policy                inform               NonCompliant       5d21h
default     policy2-common-nto-sub-policy                        inform               Compliant          5d21h
default     policy3-common-ptp-sub-policy                        inform               NonCompliant       5d21h
default     policy4-common-sriov-sub-policy                      inform               NonCompliant       5d21h
Copy to Clipboard Toggle word wrap

13.8.4. 클러스터

관리 클러스터가 있는지 확인
문제
ClusterGroupUpgrade CR의 클러스터가 관리 클러스터인지 확인하려고 합니다.
해결

다음 명령을 실행합니다.

$ oc get managedclusters
Copy to Clipboard Toggle word wrap

출력 예

NAME            HUB ACCEPTED   MANAGED CLUSTER URLS                    JOINED   AVAILABLE   AGE
local-cluster   true           https://api.hub.example.com:6443        True     Unknown     13d
spoke1          true           https://api.spoke1.example.com:6443     True     True        13d
spoke3          true           https://api.spoke3.example.com:6443     True     True        27h
Copy to Clipboard Toggle word wrap

  1. 또는 TALM 관리자 로그를 확인합니다.

    1. 다음 명령을 실행하여 TALM 관리자의 이름을 가져옵니다.

      $ oc get pod -n openshift-operators
      Copy to Clipboard Toggle word wrap

      출력 예

      NAME                                                         READY   STATUS    RESTARTS   AGE
      cluster-group-upgrades-controller-manager-75bcc7484d-8k8xp   2/2     Running   0          45m
      Copy to Clipboard Toggle word wrap

    2. 다음 명령을 실행하여 TALM 관리자 로그를 확인합니다.

      $ oc logs -n openshift-operators \
      cluster-group-upgrades-controller-manager-75bcc7484d-8k8xp -c manager
      Copy to Clipboard Toggle word wrap

      출력 예

      ERROR	controller-runtime.manager.controller.clustergroupupgrade	Reconciler error	{"reconciler group": "ran.openshift.io", "reconciler kind": "ClusterGroupUpgrade", "name": "lab-upgrade", "namespace": "default", "error": "Cluster spoke5555 is not a ManagedCluster"} 
      1
      
      sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
      Copy to Clipboard Toggle word wrap

      1
      오류 메시지는 클러스터가 관리 클러스터가 아님을 나타냅니다.
관리 클러스터를 사용할 수 있는지 확인
문제
ClusterGroupUpgrade CR에 지정된 관리 클러스터를 사용할 수 있는지 확인하려고 합니다.
해결

다음 명령을 실행합니다.

$ oc get managedclusters
Copy to Clipboard Toggle word wrap

출력 예

NAME            HUB ACCEPTED   MANAGED CLUSTER URLS                    JOINED   AVAILABLE   AGE
local-cluster   true           https://api.hub.testlab.com:6443        True     Unknown     13d
spoke1          true           https://api.spoke1.testlab.com:6443     True     True        13d 
1

spoke3          true           https://api.spoke3.testlab.com:6443     True     True        27h 
2
Copy to Clipboard Toggle word wrap

1 2
AVAILABLE 필드의 값은 관리되는 클러스터의 경우 True 입니다.
clusterLabelSelector 확인
문제
ClusterGroupUpgrade CR에 지정된 clusterLabelSelector 필드가 관리 클러스터 중 하나와 일치하는지 확인해야 합니다.
해결

다음 명령을 실행합니다.

$ oc get managedcluster --selector=upgrade=true 
1
Copy to Clipboard Toggle word wrap
1
업데이트하려는 클러스터의 레이블은 upgrade:true 입니다.

출력 예

NAME            HUB ACCEPTED   MANAGED CLUSTER URLS                     JOINED    AVAILABLE   AGE
spoke1          true           https://api.spoke1.testlab.com:6443      True     True        13d
spoke3          true           https://api.spoke3.testlab.com:6443      True     True        27h
Copy to Clipboard Toggle word wrap

카나리아 클러스터가 있는지 확인
문제

카나리아 클러스터가 클러스터 목록에 있는지 확인하려고 합니다.

ClusterGroupUpgrade CR의 예

spec:
    remediationStrategy:
        canaries:
        - spoke3
        maxConcurrency: 2
        timeout: 240
    clusterLabelSelectors:
      - matchLabels:
          upgrade: true
Copy to Clipboard Toggle word wrap

해결

다음 명령을 실행합니다.

$ oc get cgu lab-upgrade -ojsonpath='{.spec.clusters}'
Copy to Clipboard Toggle word wrap

출력 예

["spoke1", "spoke3"]
Copy to Clipboard Toggle word wrap

  1. 다음 명령을 실행하여 카나리아 클러스터가 clusterLabelSelector 라벨과 일치하는 클러스터 목록에 있는지 확인합니다.

    $ oc get managedcluster --selector=upgrade=true
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME            HUB ACCEPTED   MANAGED CLUSTER URLS   JOINED    AVAILABLE   AGE
    spoke1          true           https://api.spoke1.testlab.com:6443   True     True        13d
    spoke3          true           https://api.spoke3.testlab.com:6443   True     True        27h
    Copy to Clipboard Toggle word wrap

참고

클러스터는 spec.clusters 에 존재할 수 있으며 spec.clusterLabelSelector 라벨과 일치할 수도 있습니다.

spoke 클러스터에서 사전 캐싱 상태 확인
  1. spoke 클러스터에서 다음 명령을 실행하여 사전 캐싱 상태를 확인합니다.

    $ oc get jobs,pods -n openshift-talo-pre-cache
    Copy to Clipboard Toggle word wrap

13.8.5. 수정 전략

ClusterGroupUpgrade CR에 remediationStrategy가 있는지 확인
문제
remediationStrategyClusterGroupUpgrade CR에 있는지 확인하려고 합니다.
해결

다음 명령을 실행합니다.

$ oc get cgu lab-upgrade -ojsonpath='{.spec.remediationStrategy}'
Copy to Clipboard Toggle word wrap

출력 예

{"maxConcurrency":2, "timeout":240}
Copy to Clipboard Toggle word wrap

ClusterGroupUpgrade CR에 maxConcurrency가 지정되었는지 확인
문제
maxConcurrencyClusterGroupUpgrade CR에 지정되어 있는지 확인하려고 합니다.
해결

다음 명령을 실행합니다.

$ oc get cgu lab-upgrade -ojsonpath='{.spec.remediationStrategy.maxConcurrency}'
Copy to Clipboard Toggle word wrap

출력 예

2
Copy to Clipboard Toggle word wrap

13.8.6. 토폴로지 인식 라이프사이클 관리자

ClusterGroupUpgrade CR에서 조건 메시지 및 상태 확인
문제
ClusterGroupUpgrade CR에서 status.conditions 필드의 값을 확인하려고 합니다.
해결

다음 명령을 실행합니다.

$ oc get cgu lab-upgrade -ojsonpath='{.status.conditions}'
Copy to Clipboard Toggle word wrap

출력 예

{"lastTransitionTime":"2022-02-17T22:25:28Z", "message":"Missing managed policies:[policyList]", "reason":"NotAllManagedPoliciesExist", "status":"False", "type":"Validated"}
Copy to Clipboard Toggle word wrap

status.remediationPlan이 계산되었는지 확인
문제
status.remediationPlan 이 계산되었는지 확인하려고 합니다.
해결

다음 명령을 실행합니다.

$ oc get cgu lab-upgrade -ojsonpath='{.status.remediationPlan}'
Copy to Clipboard Toggle word wrap

출력 예

[["spoke2", "spoke3"]]
Copy to Clipboard Toggle word wrap

TALM 관리자 컨테이너의 오류
문제
TALM의 manager 컨테이너의 로그를 확인하려고 합니다.
해결

다음 명령을 실행합니다.

$ oc logs -n openshift-operators \
cluster-group-upgrades-controller-manager-75bcc7484d-8k8xp -c manager
Copy to Clipboard Toggle word wrap

출력 예

ERROR	controller-runtime.manager.controller.clustergroupupgrade	Reconciler error	{"reconciler group": "ran.openshift.io", "reconciler kind": "ClusterGroupUpgrade", "name": "lab-upgrade", "namespace": "default", "error": "Cluster spoke5555 is not a ManagedCluster"} 
1

sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
Copy to Clipboard Toggle word wrap

1
오류를 표시합니다.
ClusterGroupUpgrade CR이 완료된 후 일부 정책을 준수하지 않는 클러스터
문제

TALM이 사용하는 정책 준수 상태는 모든 클러스터에 대해 수정이 아직 완전히 업데이트되지 않았는지 여부를 결정하는 데 사용합니다. 그 이유는 다음과 같습니다.

  • 정책을 만들거나 업데이트한 후 CGU가 너무 빨리 실행되었습니다.
  • 정책을 수정하면 ClusterGroupUpgrade CR의 후속 정책 준수에 영향을 미칩니다.
해결
동일한 사양으로 새 ClusterGroupUpdate CR을 생성하고 적용합니다.
GitOps ZTP 워크플로의 자동 생성된 ClusterGroupUpgrade CR에는 관리 정책이 없습니다.
문제
클러스터가 Ready 가 될 때 관리 클러스터에 대한 정책이 없는 경우 정책이 자동으로 생성되지 않은 ClusterGroupUpgrade CR이 있습니다. ClusterGroupUpgrade CR이 완료되면 관리 클러스터에 ztp-done 이라는 레이블이 지정됩니다. SiteConfig 리소스를 푸시한 후 필요한 시간 내에 PolicyGenerator 또는 PolicyGenTemplate CR이 Git 리포지토리로 푸시되지 않은 경우 클러스터가 준비 될 때 대상 클러스터에 정책을 사용할 수 없게 될 수 있습니다.
해결
적용할 정책을 hub 클러스터에서 사용할 수 있는지 확인한 다음 필요한 정책을 사용하여 ClusterGroupUpgrade CR을 생성합니다.

ClusterGroupUpgrade CR을 수동으로 생성하거나 자동 생성을 다시 트리거할 수 있습니다. ClusterGroupUpgrade CR의 자동 생성을 트리거하려면 클러스터에서 ztp-done 레이블을 제거하고 zip-install 네임스페이스에서 이전에 생성된 비어 있는 ClusterGroupUpgrade CR을 삭제합니다.

사전 캐싱 실패
문제

다음 이유 중 하나로 인해 사전 캐싱이 실패할 수 있습니다.

  • 노드에 사용 가능한 공간이 충분하지 않습니다.
  • 연결이 끊긴 환경의 경우 사전 캐시 이미지가 올바르게 미러링되지 않았습니다.
  • Pod를 생성할 때 문제가 발생했습니다.
해결
  1. 공간이 부족하여 사전 캐싱이 실패했는지 확인하려면 노드에서 사전 캐싱 Pod의 로그를 확인합니다.

    1. 다음 명령을 사용하여 Pod 이름을 찾습니다.

      $ oc get pods -n openshift-talo-pre-cache
      Copy to Clipboard Toggle word wrap
    2. 다음 명령을 사용하여 로그에서 오류가 충분하지 않은 공간과 관련이 있는지 확인합니다.

      $ oc logs -n openshift-talo-pre-cache <pod name>
      Copy to Clipboard Toggle word wrap
  2. 로그가 없는 경우 다음 명령을 사용하여 Pod 상태를 확인합니다.

    $ oc describe pod -n openshift-talo-pre-cache <pod name>
    Copy to Clipboard Toggle word wrap
  3. Pod가 없는 경우 작업 상태를 확인하여 다음 명령을 사용하여 Pod를 생성할 수 없는 이유를 확인합니다.

    $ oc describe job -n openshift-talo-pre-cache pre-cache
    Copy to Clipboard Toggle word wrap
관리 클러스터를 사용할 수 있기 전에 일치하는 정책 및 ManagedCluster CR
문제
관리 클러스터를 사용할 수 있게 되기 전에 RHACM이 정책 및 관리 클러스터에 일치하도록 합니다.
해결

TALM이 CGU( ClusterGroupUpgrade ) CR의 spec.managedPolicies 필드에 지정된 RHACM 정책을 올바르게 적용하려면 관리 클러스터를 사용할 수 있기 전에 TALM 정책을 관리 클러스터에 일치시켜야 합니다. RHACM PolicyGenerator 는 생성된 배치 CR을 사용하여 자동으로 수행합니다. 기본적으로 이 배치 CR에는 적절한 TALM 동작을 보장하는 데 필요한 허용 오차가 포함됩니다.

Placement CR에서 예상되는 spec.tolerations 설정은 다음과 같습니다.

#…​
  tolerations:
    - key: cluster.open-cluster-management.io/unavailable
     operator: Exists
    - key: cluster.open-cluster-management.io/unreachable
     operator: Exists
#…​
Copy to Clipboard Toggle word wrap

RHACM PolicyGenerator 에서 생성한 대신 사용자 정의 배치 CR을 사용하는 경우 해당 배치 CR에 이러한 허용 오차를 포함합니다.

RHACM의 배치에 대한 자세한 내용은 배치 개요 를 참조하십시오.

RHACM의 허용 오차에 대한 자세한 내용은 테인트 및 허용 오차를 사용하여 관리 클러스터 배치를 참조하십시오.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat