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.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 정책을 생성합니다.
절차
ClusterGroupUpgrade
CR의 콘텐츠를cgu-1.yaml
파일에 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: ran.openshift.io/v1alpha1 kind: ClusterGroupUpgrade metadata: name: cgu-1 namespace: default spec: managedPolicies: - policy1-common-cluster-version-policy - policy2-common-pao-sub-policy - policy3-common-ptp-sub-policy - policy4-common-sriov-sub-policy enable: false clusters: - spoke1 - spoke2 - spoke5 - spoke6 remediationStrategy: maxConcurrency: 2 timeout: 240
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 다음 명령을 실행하여
ClusterGroupUpgrade
CR을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create -f cgu-1.yaml
$ oc create -f cgu-1.yaml
다음 명령을 실행하여 hub 클러스터에서
ClusterGroupUpgrade
CR이 생성되었는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get cgu --all-namespaces
$ oc get cgu --all-namespaces
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NAMESPACE NAME AGE default cgu-1 8m55s
NAMESPACE NAME AGE default cgu-1 8m55s
다음 명령을 실행하여 업데이트 상태를 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get cgu -n default cgu-1 -ojsonpath='{.status}' | jq
$ oc get cgu -n default cgu-1 -ojsonpath='{.status}' | jq
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow { "computedMaxConcurrency": 2, "conditions": [ { "lastTransitionTime": "2022-02-25T15:34:07Z", "message": "The ClusterGroupUpgrade CR is not enabled", "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": {} }
{ "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
로 설정됩니다.
다음 명령을 실행하여 정책 상태를 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get policies -A
$ oc get policies -A
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NAMESPACE NAME REMEDIATION ACTION COMPLIANCE STATE AGE default cgu-policy1-common-cluster-version-policy enforce 17m 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
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의정보 정보
모드의 관리형 정책은 업데이트 중에정보
모드를 유지합니다.
다음 명령을 실행하여
spec.enable
필드의 값을true
로 변경합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc --namespace=default patch clustergroupupgrade.ran.openshift.io/cgu-1 \ --patch '{"spec":{"enable":true}}' --type=merge
$ oc --namespace=default patch clustergroupupgrade.ran.openshift.io/cgu-1 \ --patch '{"spec":{"enable":true}}' --type=merge
검증
다음 명령을 실행하여 업데이트 상태를 다시 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get cgu -n default cgu-1 -ojsonpath='{.status}' | jq
$ oc get cgu -n default cgu-1 -ojsonpath='{.status}' | jq
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow { "computedMaxConcurrency": 2, "conditions": [ { "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" } }
{ "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
- 현재 일괄 처리의 업데이트 진행 상황을 반영합니다. 이 명령을 다시 실행하여 진행 상황에 대한 업데이트된 정보를 받습니다.
정책에 Operator 서브스크립션이 포함된 경우 단일 노드 클러스터에서 직접 설치 진행 상황을 확인할 수 있습니다.
다음 명령을 실행하여 설치 진행 상황을 확인할 단일 노드 클러스터의
KUBECONFIG
파일을 내보냅니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow export KUBECONFIG=<cluster_kubeconfig_absolute_path>
$ export KUBECONFIG=<cluster_kubeconfig_absolute_path>
단일 노드 클러스터에 있는 모든 서브스크립션을 확인하고 다음 명령을 실행하여
ClusterGroupUpgrade
CR을 통해 설치하려는 정책에서 해당 서브스크립션을 찾습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get subs -A | grep -i <subscription_name>
$ oc get subs -A | grep -i <subscription_name>
cluster-logging
정책의 출력 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow NAMESPACE NAME PACKAGE SOURCE CHANNEL openshift-logging cluster-logging cluster-logging redhat-operators stable
NAMESPACE NAME PACKAGE SOURCE CHANNEL openshift-logging cluster-logging cluster-logging redhat-operators stable
관리 정책 중 하나에
ClusterVersion
CR이 포함된 경우 스포크 클러스터에 대해 다음 명령을 실행하여 현재 배치에서 플랫폼 업데이트의 상태를 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get clusterversion
$ oc get clusterversion
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.9.5 True True 43s Working towards 4.9.7: 71 of 735 done (9% complete)
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.9.5 True True 43s Working towards 4.9.7: 71 of 735 done (9% complete)
다음 명령을 실행하여 Operator 서브스크립션을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get subs -n <operator-namespace> <operator-subscription> -ojsonpath="{.status}"
$ oc get subs -n <operator-namespace> <operator-subscription> -ojsonpath="{.status}"
다음 명령을 실행하여 원하는 서브스크립션과 연결된 단일 노드 클러스터에 설치 계획이 있는지 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get installplan -n <subscription_namespace>
$ oc get installplan -n <subscription_namespace>
cluster-logging
Operator의 출력 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow NAMESPACE NAME CSV APPROVAL APPROVED openshift-logging install-6khtw cluster-logging.5.3.3-4 Manual true
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에서 여러 설치 계획을 승인하고 하나 이상의 중간 버전을 통해 업그레이드하여 최종 버전으로 가져올 수 있습니다.
다음 명령을 실행하여
ClusterGroupUpgrade
가 설치하는 정책의 Operator의 클러스터 서비스 버전이Succeeded
단계에 도달했는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get csv -n <operator_namespace>
$ oc get csv -n <operator_namespace>
OpenShift Logging Operator의 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NAME DISPLAY VERSION REPLACES PHASE cluster-logging.5.4.2 Red Hat OpenShift Logging 5.4.2 Succeeded
NAME DISPLAY VERSION REPLACES PHASE cluster-logging.5.4.2 Red Hat OpenShift Logging 5.4.2 Succeeded