This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.18.9. 토폴로지 Aware Lifecycle Manager 문제 해결
TALM(토폴로지 라이프사이클 관리자)은 RHACM 정책을 해결하는 OpenShift Container Platform Operator입니다. 문제가 발생하면 oc adm must-gather
명령을 사용하여 세부 정보 및 로그를 수집하고 문제를 디버깅하는 단계를 수행합니다.
관련 항목에 대한 자세한 내용은 다음 문서를 참조하십시오.
18.9.1. 일반 문제 해결
다음 질문을 검토하여 문제의 원인을 확인할 수 있습니다.
적용 중인 구성이 지원됩니까?
- RHACM 및 OpenShift Container Platform 버전이 호환됩니까?
- TALM 및 RHACM 버전이 호환됩니까?
다음 중 문제를 유발하는 구성 요소는 무엇입니까?
ClusterGroupUpgrade
구성이 작동하는지 확인하려면 다음을 수행합니다.
-
spec.enable
필드를false
로 설정하여ClusterGroupUpgrade
CR을 생성합니다. - 상태가 업데이트될 때까지 기다린 후 문제 해결 질문을 진행합니다.
-
모든 항목이 예상대로 표시되면
ClusterGroupUpgrade
CR에서spec.enable
필드를true
로 설정합니다.
ClusterUpgradeGroup
CR에서 spec.enable
필드를 true
로 설정한 후 업데이트 절차가 시작되고 CR의 spec
필드를 더 이상 편집할 수 없습니다.
18.9.2. ClusterUpgradeGroup CR을 수정할 수 없습니다.
- 문제
-
업데이트를 활성화한 후에는
ClusterUpgradeGroup
CR을 편집할 수 없습니다. - 해결
다음 단계를 수행하여 절차를 다시 시작하십시오.
다음 명령을 실행하여 이전
ClusterGroupUpgrade
CR을 제거합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete cgu -n <ClusterGroupUpgradeCR_namespace> <ClusterGroupUpgradeCR_name>
$ oc delete cgu -n <ClusterGroupUpgradeCR_namespace> <ClusterGroupUpgradeCR_name>
관리 클러스터 및 정책의 기존 문제를 확인하고 수정합니다.
- 모든 클러스터가 관리 클러스터이고 사용 가능한지 확인합니다.
-
모든 정책이 존재하고
spec.remediationAction
필드가inform
로 설정되어 있는지 확인합니다.
올바른 구성으로 새
ClusterGroupUpgrade
CR을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc apply -f <ClusterGroupUpgradeCR_YAML>
$ oc apply -f <ClusterGroupUpgradeCR_YAML>
18.9.3. 관리형 정책
시스템에서 관리 정책 확인
- 문제
- 시스템에 올바른 관리 정책이 있는지 확인하려고 합니다.
- 해결
다음 명령을 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get cgu lab-upgrade -ojsonpath='{.spec.managedPolicies}'
$ oc get cgu lab-upgrade -ojsonpath='{.spec.managedPolicies}'
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ["group-du-sno-validator-du-validator-policy", "policy2-common-nto-sub-policy", "policy3-common-ptp-sub-policy"]
["group-du-sno-validator-du-validator-policy", "policy2-common-nto-sub-policy", "policy3-common-ptp-sub-policy"]
수정 모드 확인
- 문제
-
관리 정책의
사양
을알리기
위해remediationAction
필드가 설정되어 있는지 확인하려고 합니다. - 해결
다음 명령을 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get policies --all-namespaces
$ oc get policies --all-namespaces
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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 Copied! Toggle word wrap Toggle overflow oc get policies --all-namespaces
$ oc get policies --all-namespaces
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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
18.9.4. 클러스터
관리 클러스터가 있는지 확인
- 문제
-
ClusterGroupUpgrade
CR의 클러스터가 관리 클러스터인지 확인하려고 합니다. - 해결
다음 명령을 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get managedclusters
$ oc get managedclusters
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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
또는 TALM 관리자 로그를 확인합니다.
다음 명령을 실행하여 TALM 관리자의 이름을 가져옵니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pod -n openshift-operators
$ oc get pod -n openshift-operators
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NAME READY STATUS RESTARTS AGE cluster-group-upgrades-controller-manager-75bcc7484d-8k8xp 2/2 Running 0 45m
NAME READY STATUS RESTARTS AGE cluster-group-upgrades-controller-manager-75bcc7484d-8k8xp 2/2 Running 0 45m
다음 명령을 실행하여 TALM 관리자 로그를 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc logs -n openshift-operators \ cluster-group-upgrades-controller-manager-75bcc7484d-8k8xp -c manager
$ oc logs -n openshift-operators \ cluster-group-upgrades-controller-manager-75bcc7484d-8k8xp -c manager
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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"} sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
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
- 1
- 오류 메시지는 클러스터가 관리 클러스터가 아님을 나타냅니다.
관리 클러스터를 사용할 수 있는지 확인
- 문제
-
ClusterGroupUpgrade
CR에 지정된 관리 클러스터를 사용할 수 있는지 확인하려고 합니다. - 해결
다음 명령을 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get managedclusters
$ oc get managedclusters
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 spoke3 true https://api.spoke3.testlab.com:6443 True True 27h
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
clusterSelector 확인
- 문제
-
관리 클러스터 중 하나 이상에서
clusterSelector
필드가ClusterGroupUpgrade
CR에 지정되어 있는지 확인하려고 합니다. - 해결
다음 명령을 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get managedcluster --selector=upgrade=true
$ oc get managedcluster --selector=upgrade=true
1 - 1
- 업데이트하려는 클러스터의 레이블은
upgrade:true
입니다.
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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
카나리아 클러스터가 있는지 확인
- 문제
클러스터 목록에 카나리아 클러스터가 있는지 확인하려고 합니다.
ClusterGroupUpgrade
CR의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec: clusters: - spoke1 - spoke3 clusterSelector: - upgrade2=true remediationStrategy: canaries: - spoke3 maxConcurrency: 2 timeout: 240
spec: clusters: - spoke1 - spoke3 clusterSelector: - upgrade2=true remediationStrategy: canaries: - spoke3 maxConcurrency: 2 timeout: 240
- 해결
다음 명령을 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get cgu lab-upgrade -ojsonpath='{.spec.clusters}'
$ oc get cgu lab-upgrade -ojsonpath='{.spec.clusters}'
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ["spoke1", "spoke3"]
["spoke1", "spoke3"]
다음 명령을 실행하여
clusterSelector
레이블과 일치하는 클러스터 목록에 카나리아 클러스터가 있는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get managedcluster --selector=upgrade=true
$ oc get managedcluster --selector=upgrade=true
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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
클러스터는 spec.clusters
에 있을 수 있으며 spec.clusterSelecter
레이블과 일치시킬 수도 있습니다.
스포크 클러스터에서 사전 캐싱 상태 확인
스포크 클러스터에서 다음 명령을 실행하여 사전 캐싱의 상태를 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get jobs,pods -n openshift-talo-pre-cache
$ oc get jobs,pods -n openshift-talo-pre-cache
18.9.5. 수정 전략
ClusterGroupUpgrade CR에 remediationStrategy가 있는지 확인
- 문제
-
ClusterGroupUpgrade
CR에remediationStrategy
가 있는지 확인하려고 합니다. - 해결
다음 명령을 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get cgu lab-upgrade -ojsonpath='{.spec.remediationStrategy}'
$ oc get cgu lab-upgrade -ojsonpath='{.spec.remediationStrategy}'
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow {"maxConcurrency":2, "timeout":240}
{"maxConcurrency":2, "timeout":240}
ClusterGroupUpgrade CR에 maxConcurrency가 지정되었는지 확인
- 문제
-
maxConcurrency
가ClusterGroupUpgrade
CR에 지정되어 있는지 확인하려고 합니다. - 해결
다음 명령을 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get cgu lab-upgrade -ojsonpath='{.spec.remediationStrategy.maxConcurrency}'
$ oc get cgu lab-upgrade -ojsonpath='{.spec.remediationStrategy.maxConcurrency}'
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 2
2
18.9.6. 토폴로지 수명 주기 관리자
ClusterGroupUpgrade CR에서 조건 메시지 및 상태 확인
- 문제
-
ClusterGroupUpgrade
CR에서status.conditions
필드 값을 확인하려고 합니다. - 해결
다음 명령을 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get cgu lab-upgrade -ojsonpath='{.status.conditions}'
$ oc get cgu lab-upgrade -ojsonpath='{.status.conditions}'
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow {"lastTransitionTime":"2022-02-17T22:25:28Z", "message":"The ClusterGroupUpgrade CR has managed policies that are missing:[policyThatDoesntExist]", "reason":"UpgradeCannotStart", "status":"False", "type":"Ready"}
{"lastTransitionTime":"2022-02-17T22:25:28Z", "message":"The ClusterGroupUpgrade CR has managed policies that are missing:[policyThatDoesntExist]", "reason":"UpgradeCannotStart", "status":"False", "type":"Ready"}
복사된 정책 확인
- 문제
-
status.managedPoliciesForUpgrade
의 모든 정책에 해당 정책이status.copiedPolicies
에 있는지 확인하려고 합니다. - 해결
다음 명령을 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get cgu lab-upgrade -oyaml
$ oc get cgu lab-upgrade -oyaml
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow status: … copiedPolicies: - lab-upgrade-policy3-common-ptp-sub-policy managedPoliciesForUpgrade: - name: policy3-common-ptp-sub-policy namespace: default
status: … copiedPolicies: - lab-upgrade-policy3-common-ptp-sub-policy managedPoliciesForUpgrade: - name: policy3-common-ptp-sub-policy namespace: default
status.remediationPlan이 계산되었는지 확인
- 문제
-
status.remediationPlan
이 계산되었는지 확인하려고 합니다. - 해결
다음 명령을 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get cgu lab-upgrade -ojsonpath='{.status.remediationPlan}'
$ oc get cgu lab-upgrade -ojsonpath='{.status.remediationPlan}'
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [["spoke2", "spoke3"]]
[["spoke2", "spoke3"]]
TALM 관리자 컨테이너의 오류
- 문제
- TALM의 관리자 컨테이너의 로그를 확인하려고 합니다.
- 해결
다음 명령을 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc logs -n openshift-operators \ cluster-group-upgrades-controller-manager-75bcc7484d-8k8xp -c manager
$ oc logs -n openshift-operators \ cluster-group-upgrades-controller-manager-75bcc7484d-8k8xp -c manager
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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"} sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
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
- 1
- 오류를 표시합니다.
추가 리소스
- 문제 해결에 대한 자세한 내용은 OpenShift Container Platform Troubleshooting Operator 문제 해결을 참조하십시오.
- ZTP 워크플로에서 토폴로지 Aware Lifecycle Manager를 사용하는 방법에 대한 자세한 내용은 토폴로지 Aware Lifecycle Manager를 사용하여 관리되는 정책 업데이트를 참조하십시오.
-
PolicyGenTemplate
CRD에 대한 자세한 내용은 PolicyGenTemplate CRD정보를 참조하십시오.