18.11. 토폴로지 Aware Lifecycle Manager를 사용하여 관리형 클러스터 업데이트
Topology Aware Lifecycle Manager(TALM)를 사용하여 여러 클러스터의 소프트웨어 라이프사이클을 관리할 수 있습니다. TALM은 RHACM(Red Hat Advanced Cluster Management) 정책을 사용하여 대상 클러스터에서 변경 사항을 수행합니다.
18.11.1. 토폴로지 Aware Lifecycle Manager 구성 정보 링크 복사링크가 클립보드에 복사되었습니다!
Topology Aware Lifecycle Manager(TALM)는 하나 이상의 OpenShift Container Platform 클러스터에 대한 RHACM(Red Hat Advanced Cluster Management) 정책 배포를 관리합니다. 대규모 클러스터 네트워크에서 TALM을 사용하면 제한된 배치로 클러스터에 정책을 단계적으로 롤아웃할 수 있습니다. 이를 통해 업데이트 시 가능한 서비스 중단을 최소화할 수 있습니다. TALM을 사용하면 다음 작업을 제어할 수 있습니다.
- 업데이트의 타이밍
- RHACM 관리 클러스터 수
- 정책을 적용할 관리 클러스터의 하위 세트
- 클러스터의 업데이트 순서
- 클러스터에 적용되는 정책 세트
- 클러스터에 대한 정책 업데이트 순서
- 카나리아 클러스터 할당
단일 노드 OpenShift의 경우 Topology Aware Lifecycle Manager(TALM)는 다음과 같은 기능을 제공합니다.
- 업그레이드하기 전에 배포 백업 생성
- 대역폭이 제한된 클러스터의 이미지 사전 캐싱
TALM은 OpenShift Container Platform y-stream 및 z-stream 업데이트의 오케스트레이션과 y-stream 및 z-streams에 대한 Day-two 작업을 지원합니다.
18.11.2. 토폴로지 Aware Lifecycle Manager와 함께 사용되는 관리형 정책 정보 링크 복사링크가 클립보드에 복사되었습니다!
TALM( Topology Aware Lifecycle Manager)은 클러스터 업데이트에 RHACM 정책을 사용합니다.
TALM을 사용하여 remediationAction
필드가 알리는
모든 정책 CR의 롤아웃을 관리할 수 있습니다. 지원되는 사용 사례는 다음과 같습니다.
- 정책 CR 수동 사용자 생성
-
PolicyGenTemplate
CRD(사용자 정의 리소스 정의)에서 자동으로 생성된 정책
Operator 서브스크립션을 수동 승인으로 업데이트하는 정책의 경우 TALM은 업데이트된 Operator 설치를 승인하는 추가 기능을 제공합니다.
관리 정책에 대한 자세한 내용은 RHACM 설명서의 정책 개요 를 참조하십시오.
PolicyGenTemplate
CRD에 대한 자세한 내용은 "policy 및 PolicyGenTemplate 리소스를 사용하여 관리 클러스터 구성"의 " PolicyGenTemplate CRD 설명" 섹션을 참조하십시오.
18.11.3. 웹 콘솔을 사용하여 토폴로지 Aware Lifecycle Manager 설치 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 웹 콘솔을 사용하여 토폴로지 Aware Lifecycle Manager를 설치할 수 있습니다.
사전 요구 사항
- 최신 버전의 RHACM Operator를 설치합니다.
- 연결이 끊긴 regitry를 사용하여 허브 클러스터를 설정합니다.
-
cluster-admin
권한이 있는 사용자로 로그인합니다.
프로세스
-
OpenShift Container Platform 웹 콘솔에서 Operator
OperatorHub로 이동합니다. - 사용 가능한 Operator 목록에서 토폴로지 Aware Lifecycle Manager 를 검색한 다음 설치를 클릭합니다.
- 기본 설치 모드 ["기본"] 및 설치된 네임스페이스("openshift-operators")를 계속 선택하여 Operator가 올바르게 설치되었는지 확인합니다.
- 설치를 클릭합니다.
검증
설치에 성공했는지 확인하려면 다음을 수행하십시오.
-
Operator
설치된 Operator 페이지로 이동합니다. -
Operator가
모든 네임스페이스
네임스페이스에 설치되어 있고 해당 상태가Succeeded
인지 확인합니다.
Operator가 성공적으로 설치되지 않은 경우 다음을 수행하십시오.
-
Operator
설치된 Operator 페이지로 이동하여 Status
열에 오류 또는 실패가 있는지 점검합니다. -
워크로드
Pod 페이지로 이동하여 문제를 보고하는 cluster-group-upgrades-controller-manager
Pod에서 컨테이너의 로그를 확인합니다.
18.11.4. CLI를 사용하여 토폴로지 인식 라이프사이클 관리자 설치 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift CLI(oc
)를 사용하여 Topology Aware Lifecycle Manager(TALM)를 설치할 수 있습니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. - 최신 버전의 RHACM Operator를 설치합니다.
- 연결이 끊긴 레지스트리를 사용하여 허브 클러스터를 설정합니다.
-
cluster-admin
권한이 있는 사용자로 로그인합니다.
프로세스
서브스크립션
CR을 생성합니다.Subscription
CR을 정의하고 YAML 파일을 저장합니다(예:talm-subscription.yaml
):Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
서브스크립션
CR을 생성합니다.oc create -f talm-subscription.yaml
$ oc create -f talm-subscription.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
CSV 리소스를 검사하여 설치에 성공했는지 확인합니다.
oc get csv -n openshift-operators
$ oc get csv -n openshift-operators
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME DISPLAY VERSION REPLACES PHASE topology-aware-lifecycle-manager.4.14.x Topology Aware Lifecycle Manager 4.14.x Succeeded
NAME DISPLAY VERSION REPLACES PHASE topology-aware-lifecycle-manager.4.14.x Topology Aware Lifecycle Manager 4.14.x Succeeded
Copy to Clipboard Copied! Toggle word wrap Toggle overflow TALM이 실행 중인지 확인합니다.
oc get deploy -n openshift-operators
$ oc get deploy -n openshift-operators
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE openshift-operators cluster-group-upgrades-controller-manager 1/1 1 1 14s
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE openshift-operators cluster-group-upgrades-controller-manager 1/1 1 1 14s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.11.5. ClusterGroupUpgrade CR 정보 링크 복사링크가 클립보드에 복사되었습니다!
Topology Aware Lifecycle Manager(TALM)는 클러스터 그룹의 ClusterGroupUpgrade
CR에서 수정 계획을 빌드합니다. ClusterGroupUpgrade
CR에서 다음 사양을 정의할 수 있습니다.
- 그룹의 클러스터
-
ClusterGroupUpgrade
CR 차단 - 적용 가능한 관리 정책 목록
- 동시 업데이트 수
- 적용 가능한 카나리아 업데이트
- 업데이트 전후에 수행할 작업
- 업데이트 타이밍
ClusterGroupUpgrade
CR의 enable
필드를 사용하여 업데이트 시작 시간을 제어할 수 있습니다. 예를 들어 스케줄링된 유지 관리 기간이 4시간인 경우 enable
필드가 false
로 설정된 ClusterGroupUpgrade
CR을 준비할 수 있습니다.
spec.remediationStrategy.timeout
설정을 다음과 같이 구성하여 시간 제한을 설정할 수 있습니다.
spec remediationStrategy: maxConcurrency: 1 timeout: 240
spec
remediationStrategy:
maxConcurrency: 1
timeout: 240
batchTimeoutAction
을 사용하여 클러스터에 대한 업데이트가 실패하면 어떤 일이 발생하는지 확인할 수 있습니다. 실패한 클러스터를 계속
건너뛰고 다른 클러스터를 계속 업그레이드하거나 모든 클러스터의 정책 수정을 중지하도록 중단할
수 있습니다. 시간 초과가 경과하면 TALM은 모든 적용
정책을 제거하여 클러스터에 대한 추가 업데이트가 없는지 확인합니다.
변경 사항을 적용하려면 enabled
필드를 true
로 설정합니다.
자세한 내용은 "관리된 클러스터에 업데이트 정책 적용" 섹션을 참조하십시오.
TALM은 지정된 클러스터에 대한 정책 수정을 통해 작동하므로 ClusterGroupUpgrade
CR은 여러 조건에 대해 true 또는 false 상태를 보고할 수 있습니다.
TALM이 클러스터 업데이트를 완료한 후 동일한 ClusterGroupUpgrade
CR 제어 하에서 클러스터가 다시 업데이트되지 않습니다. 다음과 같은 경우 새 ClusterGroupUpgrade
CR을 생성해야 합니다.
- 클러스터를 다시 업데이트해야 하는 경우
-
클러스터가 업데이트 후 알림 정책과
호환되지
않는 경우
18.11.5.1. 클러스터 선택 링크 복사링크가 클립보드에 복사되었습니다!
TALM은 수정 계획을 빌드하고 다음 필드를 기반으로 클러스터를 선택합니다.
-
clusterLabelSelector
필드는 업데이트할 클러스터의 레이블을 지정합니다.k8s.io/apimachinery/pkg/apis/meta/v1
의 표준 라벨 선택기 목록으로 구성됩니다. 목록의 각 선택기는 레이블 값 쌍 또는 레이블 표현식을 사용합니다. 각 선택기의 일치 항목은clusterSelector
필드 및 cluster 필드의 일치 항목과 함께 최종클러스터
목록에 추가됩니다. -
cluster
필드는 업데이트할 클러스터 목록을 지정합니다. -
canaries
필드는 카나리아 업데이트를 위한 클러스터를 지정합니다. -
maxConcurrency
필드는 배치에서 업데이트할 클러스터 수를 지정합니다. -
actions
필드는 TALM이 업데이트 프로세스를 시작할 때 TALM이 수행하는 작업 및 각 클러스터에 대한 정책 수정을 완료할 때 TALM이 수행하는afterCompletion
작업을 지정합니다.
클러스터 ,
및 cluster
LabelSelectorclusterSelector
필드를 함께 사용하여 결합된 클러스터 목록을 생성할 수 있습니다.
수정 계획은 canaries
필드에 나열된 클러스터로 시작합니다. 각 카나리아 클러스터는 단일 클러스터 배치를 형성합니다.
enabled 필드
가 false
로 설정된 샘플 ClusterGroupUpgrade
CR
- 1
- 각 클러스터에 대한 정책 수정을 완료할 때 TALM이 수행하는 작업을 지정합니다.
- 2
- 업데이트 프로세스를 시작할 때 TALM이 수행하는 작업을 지정합니다.
- 3
- 업데이트할 클러스터 목록을 정의합니다.
- 4
enable
필드는false
로 설정됩니다.- 5
- 수정할 사용자 정의 정책 집합을 나열합니다.
- 6
- 클러스터 업데이트의 세부 사항을 정의합니다.
- 7
- 카나리아 업데이트를 위한 클러스터를 정의합니다.
- 8
- 일괄 처리의 최대 동시 업데이트 수를 정의합니다. 수정 배치 수는 카나리아 클러스터 수와 카나리아 클러스터를 제외하고
maxConcurrency
값으로 나눈 클러스터 수입니다. 이미 모든 관리 정책과 호환되는 클러스터는 수정 계획에서 제외됩니다. - 9
- 클러스터 선택을 위한 매개변수를 표시합니다.
- 10
- 일괄 처리가 시간 초과되는 경우 발생하는 작업을 제어합니다. 가능한 값은
abort
또는continue
입니다. 지정되지 않은 경우 기본값은계속됩니다
. - 11
- 업데이트 상태에 대한 정보를 표시합니다.
- 12
ClustersSelected
조건은 선택한 모든 클러스터가 유효한 것으로 표시됩니다.- 13
검증됨
조건은 선택한 모든 클러스터가 검증되었음을 보여줍니다.
카나리아 클러스터를 업데이트하는 동안 오류가 발생하면 업데이트 프로세스가 중지됩니다.
수정 계획이 성공적으로 생성되면 enable
필드를 true
로 설정하고 TALM이 지정된 관리 정책으로 호환되지 않는 클러스터를 업데이트하기 시작할 수 있습니다.
ClusterGroupUpgrade
CR의 enable
필드가 false
로 설정된 경우에만 spec
필드를 변경할 수 있습니다.
18.11.5.2. 검증 링크 복사링크가 클립보드에 복사되었습니다!
TALM은 지정된 모든 관리 정책이 사용 가능하고 올바른지 확인하고 검증
조건을 사용하여 다음과 같이 상태 및 이유를 보고합니다.
true
검증이 완료되었습니다.
false
정책이 없거나 유효하지 않거나 잘못된 플랫폼 이미지가 지정되었습니다.
18.11.5.3. 사전 캐싱 링크 복사링크가 클립보드에 복사되었습니다!
클러스터는 컨테이너 이미지 레지스트리에 액세스하기 위한 대역폭이 제한될 수 있으므로 업데이트가 완료되기 전에 시간 초과가 발생할 수 있습니다. 단일 노드 OpenShift 클러스터에서는 사전 캐싱을 사용하여 이 문제를 방지할 수 있습니다. preCaching
필드가 true
로 설정된 ClusterGroupUpgrade
CR을 생성할 때 컨테이너 이미지 사전 캐싱이 시작됩니다. TALM은 사용 가능한 디스크 공간을 예상 OpenShift Container Platform 이미지 크기와 비교하여 충분한 공간이 있는지 확인합니다. 클러스터에 공간이 충분하지 않으면 TALM은 해당 클러스터의 사전 캐싱을 취소하고 정책을 수정하지 않습니다.
TALM은 PrecacheSpecValid
조건을 사용하여 다음과 같이 상태 정보를 보고합니다.
true
사전 캐싱 사양은 유효하고 일관되게 유지됩니다.
false
사전 캐싱 사양은 불완전합니다.
TALM은 PrecachingSucceeded
조건을 사용하여 다음과 같이 상태 정보를 보고합니다.
true
TALM은 사전 캐싱 프로세스를 완료했습니다. 클러스터에 대한 사전 캐싱이 실패하면 해당 클러스터에 대한 업데이트가 실패하지만 다른 모든 클러스터를 진행합니다. 클러스터에 대해 사전 캐싱이 실패한 경우 메시지가 표시됩니다.
false
하나 이상의 클러스터에 대해 아직 진행 중이거나 모든 클러스터에서 실패했습니다.
자세한 내용은 "컨테이너 이미지 사전 캐시 기능 사용" 섹션을 참조하십시오.
18.11.5.4. 백업 생성 링크 복사링크가 클립보드에 복사되었습니다!
단일 노드 OpenShift의 경우 TALM은 업데이트 전에 배포 백업을 생성할 수 있습니다. 업데이트가 실패하면 이전 버전을 복구하고 애플리케이션을 다시 프로비저닝하지 않고도 클러스터를 작동 상태로 복원할 수 있습니다. 백업 기능을 사용하려면 먼저 backup
필드가 true
로 설정된 ClusterGroupUpgrade
CR을 생성합니다. 백업 내용이 최신 상태인지 확인하기 위해 ClusterGroupUpgrade
CR의 enable
필드를 true
로 설정할 때까지 백업이 수행되지 않습니다.
TALM은 BackupSucceeded
조건을 사용하여 다음과 같이 상태 및 이유를 보고합니다.
true
모든 클러스터 또는 백업 실행이 완료되었지만 하나 이상의 클러스터에 대해 백업이 완료되었습니다. 클러스터에 대한 백업이 실패하면 해당 클러스터에 대한 업데이트가 실패하지만 다른 모든 클러스터를 진행합니다.
false
하나 이상의 클러스터에 대한 백업이 진행 중이거나 모든 클러스터에 실패했습니다.
자세한 내용은 "업그레이드 전에 클러스터 리소스의 백업 생성" 섹션을 참조하십시오.
18.11.5.5. 클러스터 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
TALM은 수정 계획에 따라 정책을 적용합니다. 현재 배치의 모든 클러스터가 모든 관리 정책을 준수한 직후 후속 배치에 대한 정책을 강제 적용합니다. 배치 시간이 초과되면 TALM은 다음 일괄 처리로 이동합니다. 배치의 시간 초과 값은 수정 계획의 배치 수로 나눈 spec.timeout
필드입니다.
TALM은 Progressing
조건을 사용하여 다음과 같이 상태 및 이유를 보고합니다.
true
TALM은 준수하지 않는 정책을 수정하고 있습니다.
false
업데이트가 진행 중이 아닙니다. 가능한 이유는 다음과 같습니다.
- 모든 클러스터는 모든 관리 정책을 준수합니다.
- 정책 수정이 너무 오래 걸리기 때문에 업데이트가 시간 초과되었습니다.
- 차단 CR이 시스템에서 누락되었거나 아직 완료되지 않았습니다.
-
ClusterGroupUpgrade
CR이 활성화되지 않습니다. - 백업은 아직 진행 중입니다.
관리되는 정책은 ClusterGroupUpgrade
CR의 managedPolicies
필드에 나열된 순서에 적용됩니다. 한 번에 지정된 클러스터에 하나의 관리 정책이 적용됩니다. 클러스터가 현재 정책을 준수하면 다음 관리 정책이 적용됩니다.
Progressing
상태의 샘플 ClusterGroupUpgrade
CR
- 1
진행
중 필드에 TALM이 정책을 수정하는 중입니다.
18.11.5.6. 업데이트 상태 링크 복사링크가 클립보드에 복사되었습니다!
TALM은 Succeeded
조건을 사용하여 다음과 같이 상태 및 이유를 보고합니다.
true
모든 클러스터는 지정된 관리 정책을 준수합니다.
false
수정에 사용할 수 있는 클러스터가 없으므로 정책 수정이 실패했거나 다음과 같은 이유 중 하나에 정책 수정을 수행하는 데 시간이 너무 오래 걸리기 때문입니다.
- 현재 배치에는 카나리아 업데이트가 포함되어 있으며 일괄 처리의 클러스터는 배치 시간 초과 내의 모든 관리 정책을 준수하지는 않습니다.
-
클러스터는
remediationStrategy
필드에 지정된타임아웃
값 내의 관리 정책을 준수하지 않았습니다.
Succeeded
상태의 샘플 ClusterGroupUpgrade
CR
timedout
상태의 샘플 ClusterGroupUpgrade
CR
18.11.5.7. Blocking ClusterGroupUpgrade CRs 링크 복사링크가 클립보드에 복사되었습니다!
ClusterGroupUpgrade
CR을 여러 개 생성하고 애플리케이션 순서를 제어할 수 있습니다.
예를 들어
CR A의 시작을 차단하는 ClusterGroupUpgrade CR C를 생성하는 경우 ClusterGroupUpgrade
ClusterGroupUpgrade
CR C의 상태가 UpgradeComplete
가 될 때까지 ClusterGroupUpgrade
CR A를 시작할 수 없습니다.
하나의 ClusterGroupUpgrade
CR에는 차단 CR이 여러 개 있을 수 있습니다. 이 경우 현재 CR의 업그레이드가 시작되기 전에 차단 CR을 모두 완료해야 합니다.
사전 요구 사항
- TALM(토폴로지 Aware Lifecycle Manager)을 설치합니다.
- 하나 이상의 관리 클러스터를 프로비저닝합니다.
-
cluster-admin
권한이 있는 사용자로 로그인합니다. - hub 클러스터에 RHACM 정책을 생성합니다.
프로세스
ClusterGroupUpgrade
CR의 내용을cgu-a.yaml
,cgu-b.yaml
및cgu-c.yaml
파일에 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- blocking CR을 정의합니다.
cgu-a
업데이트는cgu-c
가 완료될 때까지 시작할 수 없습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
cgu-b
업데이트는cgu-a
가 완료될 때까지 시작할 수 없습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
cgu-c
업데이트에는 차단 CR이 없습니다.enable
필드가true
로 설정된 경우 TALM은cgu-c
업데이트를 시작합니다.
각 관련 CR에 대해 다음 명령을 실행하여
ClusterGroupUpgrade
CR을 생성합니다.oc apply -f <name>.yaml
$ oc apply -f <name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 각 관련 CR에 대해 다음 명령을 실행하여 업데이트 프로세스를 시작합니다.
oc --namespace=default patch clustergroupupgrade.ran.openshift.io/<name> \ --type merge -p '{"spec":{"enable":true}}'
$ oc --namespace=default patch clustergroupupgrade.ran.openshift.io/<name> \ --type merge -p '{"spec":{"enable":true}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예제에서는
enable
필드가true
로 설정된ClusterGroupUpgrade
CR을 보여줍니다.CR 차단이 있는
cgu-a
의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 차단 CR 목록을 표시합니다.
CR 차단이 있는
cgu-b
의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 차단 CR 목록을 표시합니다.
CR 차단이 있는
cgu-c
의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
cgu-c
업데이트에는 차단 CR이 없습니다.
18.11.6. 관리 클러스터에서 정책 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
TALM( Topology Aware Lifecycle Manager)은 ClusterGroupUpgrade
CR에 지정된 클러스터에 대한 정보
정책 세트를 수정합니다. TALM은 관리
RHACM 정책의 사본을 적용하여
정보 정책을 해결합니다. 복사된 각 정책에는 고유한 RHACM 배치 규칙과 RHACM 배치 바인딩이 있습니다.
TALM은 현재 배치의 각 클러스터를 적용 가능한 관리 정책에 해당하는 배치 규칙에 추가합니다. 클러스터가 이미 정책과 호환되는 경우 TALM은 규정 준수 클러스터에 해당 정책 적용을 건너뜁니다. 그런 다음 TALM은 호환되지 않는 클러스터에 다음 정책을 적용하기 위해 계속 이동합니다. TALM이 배치의 업데이트를 완료하면 복사된 정책과 연결된 배치 규칙에서 모든 클러스터가 제거됩니다. 그런 다음 다음 배치의 업데이트가 시작됩니다.
spoke 클러스터에서 RHACM에 호환되는 상태를 보고하지 않으면 허브 클러스터의 관리 정책에 TALM에 필요한 상태 정보가 누락될 수 있습니다. TALM은 다음과 같은 방법으로 이러한 사례를 처리합니다.
-
정책의
status.compliant
필드가 없는 경우 TALM은 정책을 무시하고 로그 항목을 추가합니다. 그런 다음 TALM은 정책의status.status
필드를 계속 확인합니다. -
정책의
status.status
가 없으면 TALM에서 오류가 발생합니다. -
정책의
status.status
필드에 클러스터의 규정 준수 상태가 없는 경우 TALM은 해당 클러스터가 해당 정책과 호환되지 않는 것으로 간주합니다.
ClusterGroupUpgrade
CR의 batchTimeoutAction
에 따라 클러스터에 대한 업그레이드가 실패하는 경우 발생하는 상황이 결정됩니다. 실패한 클러스터를 계속
건너뛰고 다른 클러스터를 계속 업그레이드하거나 모든 클러스터의 정책 수정을 중지하려면 중단을
지정할 수 있습니다. 시간 초과가 경과하면 TALM은 모든 적용 정책을 제거하여 클러스터에 대한 추가 업데이트가 없는지 확인합니다.
업그레이드 정책의 예
RHACM 정책에 대한 자세한 내용은 정책 개요 를 참조하십시오.
18.11.6.1. TALM을 사용하여 설치하는 관리형 클러스터에 대한 Operator 서브스크립션 구성 링크 복사링크가 클립보드에 복사되었습니다!
Operator의 Subscription
CR(사용자 정의 리소스)에 status.state.AtLatestKnown
필드가 포함된 경우에만 TALM( topology Aware Lifecycle Manager)은 Operator에 대한 설치 계획을 승인할 수 있습니다.
프로세스
status.state.AtLatestKnown
필드를 Operator의Subscription
CR에 추가합니다.서브스크립션 CR의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
status.state: AtLatestKnown
필드는 Operator 카탈로그에서 사용 가능한 최신 Operator 버전에 사용됩니다.
참고레지스트리에서 새 버전의 Operator를 사용할 수 있으면 연결된 정책이 호환되지 않습니다.
-
ClusterGroupUpgrade
CR이 있는 관리 클러스터에 변경된서브스크립션
정책을 적용합니다.
18.11.6.2. 관리 클러스터에 업데이트 정책 적용 링크 복사링크가 클립보드에 복사되었습니다!
정책을 적용하여 관리 클러스터를 업데이트할 수 있습니다.
사전 요구 사항
- TALM(토폴로지 Aware Lifecycle Manager)을 설치합니다.
- 하나 이상의 관리 클러스터를 프로비저닝합니다.
-
cluster-admin
권한이 있는 사용자로 로그인합니다. - hub 클러스터에 RHACM 정책을 생성합니다.
프로세스
ClusterGroupUpgrade
CR의 내용을cgu-1.yaml
파일에 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
ClusterGroupUpgrade
CR을 생성합니다.oc create -f cgu-1.yaml
$ oc create -f cgu-1.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Hub 클러스터에서
ClusterGroupUpgrade
CR이 생성되었는지 확인합니다.oc get cgu --all-namespaces
$ oc get cgu --all-namespaces
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAMESPACE NAME AGE STATE DETAILS default cgu-1 8m55 NotEnabled Not Enabled
NAMESPACE NAME AGE STATE DETAILS default cgu-1 8m55 NotEnabled Not Enabled
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 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
ClusterGroupUpgrade
CR의spec.enable
필드는false
로 설정됩니다.
다음 명령을 실행하여 정책의 상태를 확인합니다.
oc get policies -A
$ oc get policies -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 클러스터에 현재 적용된 정책의
spec.remediationAction
필드는적용
하도록 설정되어 있습니다. 업데이트 중에ClusterGroupUpgrade
CR의 알림 모드에서 관리되는정책은
알림 모드로 유지됩니다.
다음 명령을 실행하여
spec.enable
필드의 값을true
로 변경합니다.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 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 현재 배치의 업데이트 진행 상황을 반영합니다. 이 명령을 다시 실행하여 진행 상황에 대한 업데이트된 정보를 수신합니다.
정책에 Operator 서브스크립션이 포함된 경우 단일 노드 클러스터에서 직접 설치 진행 상황을 확인할 수 있습니다.
다음 명령을 실행하여 설치 진행 상황을 확인할 단일 노드 클러스터의
KUBECONFIG
파일을 내보냅니다.export KUBECONFIG=<cluster_kubeconfig_absolute_path>
$ export KUBECONFIG=<cluster_kubeconfig_absolute_path>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 단일 노드 클러스터에 있는 모든 서브스크립션을 확인하고 다음 명령을 실행하여
ClusterGroupUpgrade
CR을 통해 설치하려는 정책에서 해당 서브스크립션을 찾습니다.oc get subs -A | grep -i <subscription_name>
$ oc get subs -A | grep -i <subscription_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cluster-logging
정책의 출력 예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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
관리 정책 중 하나에
ClusterVersion
CR이 포함된 경우 spoke 클러스터에 대해 다음 명령을 실행하여 현재 일괄 처리에서 플랫폼 업데이트 상태를 확인합니다.oc get clusterversion
$ oc get clusterversion
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.4.14.5 True True 43s Working towards 4.4.14.7: 71 of 735 done (9% complete)
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.4.14.5 True True 43s Working towards 4.4.14.7: 71 of 735 done (9% complete)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Operator 서브스크립션을 확인합니다.
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>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cluster-logging
Operator의 출력 예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 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 설치 계획의
승인
필드가Manual
로 설정되고 TALM에서 설치 계획을 승인한 후승인
필드가false
에서true
로 변경됩니다.
참고TALM이 서브스크립션이 포함된 정책을 수정하면 해당 서브스크립션에 연결된 모든 설치 계획을 자동으로 승인합니다. Operator를 최신 알려진 버전으로 가져오기 위해 여러 설치 계획이 필요한 경우 TALM은 여러 설치 계획을 승인하여 하나 이상의 중간 버전을 통해 최종 버전으로 업그레이드할 수 있습니다.
다음 명령을 실행하여
ClusterGroupUpgrade
가Succeeded
단계에 도달한 정책의 Operator의 클러스터 서비스 버전이 있는지 확인합니다.oc get csv -n <operator_namespace>
$ oc get csv -n <operator_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Logging Operator의 출력 예
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.11.7. 업그레이드하기 전에 클러스터 리소스의 백업 생성 링크 복사링크가 클립보드에 복사되었습니다!
단일 노드 OpenShift의 경우 TALM(토폴로지 Aware Lifecycle Manager)은 업그레이드하기 전에 배포 백업을 생성할 수 있습니다. 업그레이드에 실패하면 이전 버전을 복구하고 애플리케이션을 다시 프로비저닝하지 않고도 클러스터를 작동 상태로 복원할 수 있습니다.
백업 기능을 사용하려면 먼저 backup
필드가 true
로 설정된 ClusterGroupUpgrade
CR을 생성합니다. 백업 내용이 최신 상태인지 확인하기 위해 ClusterGroupUpgrade
CR의 enable
필드를 true
로 설정할 때까지 백업이 수행되지 않습니다.
TALM은 BackupSucceeded
조건을 사용하여 다음과 같이 상태 및 이유를 보고합니다.
true
모든 클러스터 또는 백업 실행이 완료되었지만 하나 이상의 클러스터에 대해 백업이 완료되었습니다. 클러스터에 대한 백업이 실패하면 해당 클러스터를 업데이트하지 않습니다.
false
하나 이상의 클러스터에 대한 백업이 진행 중이거나 모든 클러스터에 실패했습니다. spoke 클러스터에서 실행되는 백업 프로세스는 다음과 같은 상태를 가질 수 있습니다.
preparingToStart
첫 번째 조정 단계는 진행 중입니다. TALM은 업그레이드 실패 시 생성된 모든 spoke 백업 네임스페이스 및 허브 뷰 리소스를 삭제합니다.
Starting
백업 사전 요구 사항 및 백업 작업이 생성 중입니다.
활성 상태
백업이 진행 중입니다.
succeeded
백업에 성공했습니다.
BackupTimeout
아티팩트 백업은 부분적으로 수행됩니다.
UnrecoverableError
백업이 0이 아닌 종료 코드로 종료되었습니다.
클러스터 백업에 실패하고 BackupTimeout
또는 UnrecoverableError
상태를 입력하면 클러스터 업데이트가 해당 클러스터를 진행하지 않습니다. 다른 클러스터의 업데이트는 영향을 받지 않으며 계속됩니다.
18.11.7.1. 백업을 사용하여 ClusterGroupUpgrade CR 생성 링크 복사링크가 클립보드에 복사되었습니다!
단일 노드 OpenShift 클러스터에서 업그레이드하기 전에 배포 백업을 생성할 수 있습니다. 업그레이드에 실패하면 Topology Aware Lifecycle Manager(TALM)에서 생성한 upgrade-recovery.sh
스크립트를 사용하여 시스템을 사전 업그레이드 상태로 되돌릴 수 있습니다. 백업은 다음 항목으로 구성됩니다.
- 클러스터 백업
-
etcd
및 정적 pod 매니페스트의 스냅샷입니다. - 콘텐츠 백업
-
폴더의 백업(예:
/etc
,/usr/local
,/var/lib/kubelet
). - 변경된 파일 백업
-
변경된
machine-config
에서 관리하는 모든 파일입니다. - Deployment
-
고정된
ostree
배포입니다. - 이미지(선택 사항)
- 사용 중인 컨테이너 이미지입니다.
사전 요구 사항
- TALM(토폴로지 Aware Lifecycle Manager)을 설치합니다.
- 하나 이상의 관리 클러스터를 프로비저닝합니다.
-
cluster-admin
권한이 있는 사용자로 로그인합니다. - RHACM(Red Hat Advanced Cluster Management)을 설치합니다.
복구 파티션을 만드는 것이 좋습니다. 다음은 50GB의 복구 파티션에 대한 SiteConfig
CR(사용자 정의 리소스)의 예입니다.
프로세스
clustergroupupgrades-group-du.yaml
파일에서backup
및enable
필드를true
로 설정하여ClusterGroupUpgrade
CR의 내용을 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 업데이트를 시작하려면 다음 명령을 실행하여
ClusterGroupUpgrade
CR을 적용합니다.oc apply -f clustergroupupgrades-group-du.yaml
$ oc apply -f clustergroupupgrades-group-du.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 hub 클러스터에서 업그레이드 상태를 확인합니다.
oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'
$ oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.11.7.2. 업그레이드 실패 후 클러스터 복구 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 업그레이드가 실패하면 클러스터에 수동으로 로그인하고 백업을 사용하여 클러스터를 업그레이드 전 상태로 되돌릴 수 있습니다. 두 단계가 있습니다.
- rollback
- 시도한 업그레이드에 플랫폼 OS 배포 변경 사항이 포함된 경우 복구 스크립트를 실행하기 전에 이전 버전으로 롤백해야 합니다.
롤백은 TALM 및 단일 노드 OpenShift에서 업그레이드하는 경우에만 사용할 수 있습니다. 이 프로세스는 다른 업그레이드 유형의 롤백에는 적용되지 않습니다.
- 복구
- 복구는 컨테이너를 종료하고 백업 파티션의 파일을 사용하여 컨테이너를 다시 시작하고 클러스터를 복원합니다.
사전 요구 사항
- TALM(토폴로지 Aware Lifecycle Manager)을 설치합니다.
- 하나 이상의 관리 클러스터를 프로비저닝합니다.
- RHACM(Red Hat Advanced Cluster Management)을 설치합니다.
-
cluster-admin
권한이 있는 사용자로 로그인합니다. - 백업용으로 구성된 업그레이드를 실행합니다.
프로세스
다음 명령을 실행하여 이전에 생성한
ClusterGroupUpgrade
CR(사용자 정의 리소스)을 삭제합니다.oc delete cgu/du-upgrade-4918 -n ztp-group-du-sno
$ oc delete cgu/du-upgrade-4918 -n ztp-group-du-sno
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 복구할 클러스터에 로그인합니다.
다음 명령을 실행하여 플랫폼 OS 배포의 상태를 확인합니다.
ostree admin status
$ ostree admin status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
ostree admin status
[root@lab-test-spoke2-node-0 core]# ostree admin status * rhcos c038a8f08458bbed83a77ece033ad3c55597e3f64edad66ea12fda18cbdceaf9.0 Version: 49.84.202202230006-0 Pinned: yes
1 origin refspec: c038a8f08458bbed83a77ece033ad3c55597e3f64edad66ea12fda18cbdceaf9
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 현재 배포가 고정되어 있습니다. 플랫폼 OS 배포 롤백은 필요하지 않습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 플랫폼 OS 배포의 롤백을 트리거하려면 다음 명령을 실행합니다.
rpm-ostree rollback -r
$ rpm-ostree rollback -r
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 복구의 첫 번째 단계는 컨테이너를 종료하고 백업 파티션에서 대상 디렉터리로 파일을 복원합니다. 복구를 시작하려면 다음 명령을 실행합니다.
/var/recovery/upgrade-recovery.sh
$ /var/recovery/upgrade-recovery.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 메시지가 표시되면 다음 명령을 실행하여 클러스터를 재부팅합니다.
systemctl reboot
$ systemctl reboot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 재부팅 후 다음 명령을 실행하여 복구를 다시 시작합니다.
/var/recovery/upgrade-recovery.sh --resume
$ /var/recovery/upgrade-recovery.sh --resume
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
복구 유틸리티가 실패하면 --restart
옵션을 사용하여 다시 시도할 수 있습니다.
/var/recovery/upgrade-recovery.sh --restart
$ /var/recovery/upgrade-recovery.sh --restart
검증
복구 상태를 확인하려면 다음 명령을 실행합니다.
oc get clusterversion,nodes,clusteroperator
$ oc get clusterversion,nodes,clusteroperator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.11.8. 컨테이너 이미지 사전 캐시 기능 사용 링크 복사링크가 클립보드에 복사되었습니다!
단일 노드 OpenShift 클러스터는 컨테이너 이미지 레지스트리에 액세스하기 위해 대역폭이 제한될 수 있으므로 업데이트가 완료되기 전에 시간 초과가 발생할 수 있습니다.
업데이트 시간은 TALM에 의해 설정되지 않습니다. 수동 애플리케이션 또는 외부 자동화를 통해 업데이트 시작 시 ClusterGroupUpgrade
CR을 적용할 수 있습니다.
ClusterGroupUpgrade
CR에서 preCaching
필드가 true
로 설정된 경우 컨테이너 이미지 사전 캐싱이 시작됩니다.
TALM은 PrecacheSpecValid
조건을 사용하여 다음과 같이 상태 정보를 보고합니다.
true
사전 캐싱 사양은 유효하고 일관되게 유지됩니다.
false
사전 캐싱 사양은 불완전합니다.
TALM은 PrecachingSucceeded
조건을 사용하여 다음과 같이 상태 정보를 보고합니다.
true
TALM은 사전 캐싱 프로세스를 완료했습니다. 클러스터에 대한 사전 캐싱이 실패하면 해당 클러스터에 대한 업데이트가 실패하지만 다른 모든 클러스터를 진행합니다. 클러스터에 대해 사전 캐싱이 실패한 경우 메시지가 표시됩니다.
false
하나 이상의 클러스터에 대해 아직 진행 중이거나 모든 클러스터에서 실패했습니다.
성공적인 사전 캐싱 프로세스 후 정책 수정을 시작할 수 있습니다. 수정 작업은 enable
필드가 true
로 설정된 경우 시작됩니다. 클러스터에 사전 캐싱 오류가 발생하면 해당 클러스터에 대한 업그레이드가 실패합니다. 업그레이드 프로세스는 사전 캐시가 성공한 다른 모든 클러스터에서 계속됩니다.
사전 캐싱 프로세스는 다음과 같은 상태에 있을 수 있습니다.
NotStarted
이는
ClusterGroupUpgrade
CR의 첫 번째 조정 패스에서 모든 클러스터가 자동으로 할당됩니다. 이 상태에서 TALM은 이전에 불완전한 업데이트에서 남아 있는 spoke 클러스터의 모든 사전 캐싱 네임스페이스 및 허브 뷰 리소스를 삭제합니다. 그런 다음 TALM은PrecachePreparing
상태에서 삭제를 확인하기 위해 spoke pre-caching 네임스페이스에 대한 새ManagedClusterView
리소스를 생성합니다.preparingToStart
이전 불완전한 업데이트의 나머지 리소스를 정리하는 작업이 진행 중입니다.
Starting
작업 사전 캐싱 사전 요구 사항 및 작업이 생성됩니다.
활성 상태
작업은 "활성" 상태입니다.
succeeded
pre-cache 작업이 성공했습니다.
PrecacheTimeout
아티팩트 사전 캐싱은 부분적으로 수행됩니다.
UnrecoverableError
작업은 0이 아닌 종료 코드로 끝납니다.
18.11.8.1. 컨테이너 이미지 사전 캐시 필터 사용 링크 복사링크가 클립보드에 복사되었습니다!
사전 캐시 기능은 일반적으로 업데이트에 필요한 클러스터보다 많은 이미지를 다운로드합니다. 클러스터에 다운로드되는 사전 캐시 이미지를 제어할 수 있습니다. 이렇게 하면 다운로드 시간이 줄어들고 대역폭과 스토리지를 절약할 수 있습니다.
다음 명령을 사용하여 다운로드할 모든 이미지 목록을 확인할 수 있습니다.
oc adm release info <ocp-version>
$ oc adm release info <ocp-version>
다음 ConfigMap
예제에서는 excludePrecachePatterns
필드를 사용하여 이미지를 제외하는 방법을 보여줍니다.
- 1
- TALM은 여기에 나열된 패턴이 포함된 이름이 있는 모든 이미지를 제외합니다.
18.11.8.2. 사전 캐싱을 사용하여 ClusterGroupUpgrade CR 생성 링크 복사링크가 클립보드에 복사되었습니다!
단일 노드 OpenShift의 경우 사전 캐시 기능을 사용하면 업데이트가 시작되기 전에 필요한 컨테이너 이미지를 spoke 클러스터에 표시할 수 있습니다.
사전 캐싱의 경우 TALM은 ClusterGroupUpgrade
CR의 spec.remediationStrategy.timeout
값을 사용합니다. 사전 캐싱 작업을 완료하는 데 충분한 시간을 허용하는 시간 초과
값을 설정해야 합니다. 사전 캐싱이 완료된 후 ClusterGroupUpgrade
CR을 활성화하면 시간 초과
값을 업데이트에 적합한 기간으로 변경할 수 있습니다.
사전 요구 사항
- TALM(토폴로지 Aware Lifecycle Manager)을 설치합니다.
- 하나 이상의 관리 클러스터를 프로비저닝합니다.
-
cluster-admin
권한이 있는 사용자로 로그인합니다.
프로세스
clustergroupupgrades-group-du.yaml
파일에서preCaching
필드를true
로 설정하여ClusterGroupUpgrade
CR의 내용을 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
preCaching
필드는true
로 설정되어 업데이트를 시작하기 전에 TALM에서 컨테이너 이미지를 가져올 수 있습니다.
사전 캐싱을 시작하려면 다음 명령을 실행하여
ClusterGroupUpgrade
CR을 적용합니다.oc apply -f clustergroupupgrades-group-du.yaml
$ oc apply -f clustergroupupgrades-group-du.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 Hub 클러스터에
ClusterGroupUpgrade
CR이 있는지 확인합니다.oc get cgu -A
$ oc get cgu -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAMESPACE NAME AGE STATE DETAILS ztp-group-du-sno du-upgrade-4918 10s InProgress Precaching is required and not done
NAMESPACE NAME AGE STATE DETAILS ztp-group-du-sno du-upgrade-4918 10s InProgress Precaching is required and not done
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- CR이 생성됩니다.
다음 명령을 실행하여 사전 캐싱 작업의 상태를 확인합니다.
oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'
$ oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 식별된 클러스터 목록을 표시합니다.
spoke 클러스터에서 다음 명령을 실행하여 사전 캐싱 작업의 상태를 확인합니다.
oc get jobs,pods -n openshift-talo-pre-cache
$ oc get jobs,pods -n openshift-talo-pre-cache
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME COMPLETIONS DURATION AGE job.batch/pre-cache 0/1 3m10s 3m10s NAME READY STATUS RESTARTS AGE pod/pre-cache--1-9bmlr 1/1 Running 0 3m10s
NAME COMPLETIONS DURATION AGE job.batch/pre-cache 0/1 3m10s 3m10s NAME READY STATUS RESTARTS AGE pod/pre-cache--1-9bmlr 1/1 Running 0 3m10s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
ClusterGroupUpgrade
CR의 상태를 확인합니다.oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'
$ oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 사전 캐시 작업이 수행됩니다.
18.11.9. 토폴로지 인식 라이프사이클 관리자 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
Topology Aware Lifecycle Manager (TALM)는 RHACM 정책을 수정하는 OpenShift Container Platform Operator입니다. 문제가 발생하면 oc adm must-gather
명령을 사용하여 세부 정보 및 로그를 수집하고 문제를 디버깅하는 단계를 수행합니다.
관련 항목에 대한 자세한 내용은 다음 설명서를 참조하십시오.
- Red Hat Advanced Cluster Management for Kubernetes 2.4 지원 매트릭스
- Red Hat Advanced Cluster Management 문제 해결
- "Troubleshooting Operator 문제" 섹션
18.11.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.11.9.2. ClusterUpgradeGroup CR을 수정할 수 없음 링크 복사링크가 클립보드에 복사되었습니다!
- 문제
-
업데이트를 활성화한 후에는
ClusterUpgradeGroup
CR을 편집할 수 없습니다. - 해결
다음 단계를 수행하여 절차를 다시 시작합니다.
다음 명령을 실행하여 이전
ClusterGroupUpgrade
CR을 제거합니다.oc delete cgu -n <ClusterGroupUpgradeCR_namespace> <ClusterGroupUpgradeCR_name>
$ oc delete cgu -n <ClusterGroupUpgradeCR_namespace> <ClusterGroupUpgradeCR_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리 클러스터 및 정책의 기존 문제를 확인하고 수정합니다.
- 모든 클러스터가 관리 클러스터이고 사용 가능한지 확인합니다.
-
모든 정책이 존재하고
spec.remediationAction
필드가 설정되어 있는지확인합니다
.
올바른 구성으로 새
ClusterGroupUpgrade
CR을 생성합니다.oc apply -f <ClusterGroupUpgradeCR_YAML>
$ oc apply -f <ClusterGroupUpgradeCR_YAML>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.11.9.3. 관리형 정책 링크 복사링크가 클립보드에 복사되었습니다!
시스템에서 관리되는 정책 확인
- 문제
- 시스템에 올바른 관리 정책이 있는지 확인하려고 합니다.
- 해결
다음 명령을 실행합니다.
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"]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
수정 모드 확인
- 문제
-
관리 정책의 사양에
알리
도록remediationAction
필드가 설정되어 있는지 확인하려고 합니다. - 해결
다음 명령을 실행합니다.
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.11.9.4. 클러스터 링크 복사링크가 클립보드에 복사되었습니다!
관리 클러스터가 있는지 확인
- 문제
-
ClusterGroupUpgrade
CR의 클러스터가 관리 클러스터인지 확인하려고 합니다. - 해결
다음 명령을 실행합니다.
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는 TALM 관리자 로그를 확인합니다.
다음 명령을 실행하여 TALM 관리자의 이름을 가져옵니다.
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 TALM 관리자 로그를 확인합니다.
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 오류 메시지는 클러스터가 관리 클러스터가 아님을 나타냅니다.
관리 클러스터를 사용할 수 있는지 확인
- 문제
-
ClusterGroupUpgrade
CR에 지정된 관리 클러스터를 사용할 수 있는지 확인하려고 합니다. - 해결
다음 명령을 실행합니다.
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 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
clusterLabelSelector 확인
- 문제
-
ClusterGroupUpgrade
CR에 지정된clusterLabelSelector
필드가 관리 클러스터 중 하나와 일치하는지 확인해야 합니다. - 해결
다음 명령을 실행합니다.
oc get managedcluster --selector=upgrade=true
$ oc get managedcluster --selector=upgrade=true
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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
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 Copied! Toggle word wrap Toggle overflow
카나리아 클러스터가 있는지 확인
- 문제
카나리아 클러스터가 클러스터 목록에 있는지 확인하려고 합니다.
ClusterGroupUpgrade
CR의 예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"]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 카나리아 클러스터가
clusterLabelSelector
라벨과 일치하는 클러스터 목록에 있는지 확인합니다.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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
클러스터는 spec.clusters
에 존재할 수 있으며 spec.clusterLabelSelector
라벨과 일치할 수도 있습니다.
spoke 클러스터에서 사전 캐싱 상태 확인
spoke 클러스터에서 다음 명령을 실행하여 사전 캐싱 상태를 확인합니다.
oc get jobs,pods -n openshift-talo-pre-cache
$ oc get jobs,pods -n openshift-talo-pre-cache
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.11.9.5. 수정 전략 링크 복사링크가 클립보드에 복사되었습니다!
ClusterGroupUpgrade CR에 remediationStrategy가 있는지 확인
- 문제
-
remediationStrategy
가ClusterGroupUpgrade
CR에 있는지 확인하려고 합니다. - 해결
다음 명령을 실행합니다.
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}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ClusterGroupUpgrade CR에 maxConcurrency가 지정되었는지 확인
- 문제
-
maxConcurrency
가ClusterGroupUpgrade
CR에 지정되어 있는지 확인하려고 합니다. - 해결
다음 명령을 실행합니다.
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.11.9.6. 토폴로지 인식 라이프사이클 관리자 링크 복사링크가 클립보드에 복사되었습니다!
ClusterGroupUpgrade CR에서 조건 메시지 및 상태 확인
- 문제
-
ClusterGroupUpgrade
CR에서status.conditions
필드의 값을 확인하려고 합니다. - 해결
다음 명령을 실행합니다.
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":"Missing managed policies:[policyList]", "reason":"NotAllManagedPoliciesExist", "status":"False", "type":"Validated"}
{"lastTransitionTime":"2022-02-17T22:25:28Z", "message":"Missing managed policies:[policyList]", "reason":"NotAllManagedPoliciesExist", "status":"False", "type":"Validated"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
복사된 해당 정책 확인
- 문제
-
status.managedPoliciesForUpgrade
의 모든 정책에status.copiedPolicies
.copiedPolicies의 해당 정책이 있는지 확인하려고 합니다. - 해결
다음 명령을 실행합니다.
oc get cgu lab-upgrade -oyaml
$ oc get cgu lab-upgrade -oyaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
status.remediationPlan이 계산되었는지 확인
- 문제
-
status.remediationPlan
이 계산되었는지 확인하려고 합니다. - 해결
다음 명령을 실행합니다.
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"]]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
TALM 관리자 컨테이너의 오류
- 문제
- TALM의 manager 컨테이너의 로그를 확인하려고 합니다.
- 해결
다음 명령을 실행합니다.
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 오류를 표시합니다.
ClusterGroupUpgrade
CR이 완료된 후 일부 정책을 준수하지 않는 클러스터
- 문제
TALM이 사용하는 정책 준수 상태는 모든 클러스터에 대해 수정이 아직 완전히 업데이트되지 않았는지 여부를 결정하는 데 사용합니다. 그 이유는 다음과 같습니다.
- 정책을 만들거나 업데이트한 후 CGU가 너무 빨리 실행되었습니다.
-
정책을 수정하면
ClusterGroupUpgrade
CR의 후속 정책 준수에 영향을 미칩니다.
- 해결
-
동일한 사양으로 새
ClusterGroupUpdate
CR을 생성하고 적용합니다.
GitOps ZTP 워크플로의 자동 생성된 ClusterGroupUpgrade
CR에는 관리 정책이 없습니다.
- 문제
-
클러스터가
Ready
가 될 때 관리 클러스터에 대한 정책이 없는 경우 정책이 자동으로 생성되지 않은ClusterGroupUpgrade
CR이 있습니다.ClusterGroupUpgrade
CR이 완료되면 관리 클러스터에ztp-done
이라는 레이블이 지정됩니다.SiteConfig
리소스를 푸시한 후 필요한 시간 내에PolicyGenTemplate
CR이 Git 리포지토리로 푸시되지 않은 경우 클러스터가Ready
상태가 되면 대상 클러스터에 정책을 사용할 수 없을 수 있습니다. - 해결
-
적용할 정책을 hub 클러스터에서 사용할 수 있는지 확인한 다음 필요한 정책을 사용하여
ClusterGroupUpgrade
CR을 생성합니다.
ClusterGroupUpgrade
CR을 수동으로 생성하거나 자동 생성을 다시 트리거할 수 있습니다. ClusterGroupUpgrade
CR의 자동 생성을 트리거하려면 클러스터에서 ztp-done
레이블을 제거하고 zip-install
네임스페이스에서 이전에 생성된 비어 있는 ClusterGroupUpgrade
CR을 삭제합니다.
사전 캐싱 실패
- 문제
다음 이유 중 하나로 인해 사전 캐싱이 실패할 수 있습니다.
- 노드에 사용 가능한 공간이 충분하지 않습니다.
- 연결이 끊긴 환경의 경우 사전 캐시 이미지가 올바르게 미러링되지 않았습니다.
- Pod를 생성할 때 문제가 발생했습니다.
- 해결
공간이 부족하여 사전 캐싱이 실패했는지 확인하려면 노드에서 사전 캐싱 Pod의 로그를 확인합니다.
다음 명령을 사용하여 Pod 이름을 찾습니다.
oc get pods -n openshift-talo-pre-cache
$ oc get pods -n openshift-talo-pre-cache
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 로그에서 오류가 충분하지 않은 공간과 관련이 있는지 확인합니다.
oc logs -n openshift-talo-pre-cache <pod name>
$ oc logs -n openshift-talo-pre-cache <pod name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
로그가 없는 경우 다음 명령을 사용하여 Pod 상태를 확인합니다.
oc describe pod -n openshift-talo-pre-cache <pod name>
$ oc describe pod -n openshift-talo-pre-cache <pod name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod가 없는 경우 작업 상태를 확인하여 다음 명령을 사용하여 Pod를 생성할 수 없는 이유를 확인합니다.
oc describe job -n openshift-talo-pre-cache pre-cache
$ oc describe job -n openshift-talo-pre-cache pre-cache
Copy to Clipboard Copied! Toggle word wrap Toggle overflow