12.5. ClusterGroupUpgrade CR에 관하여
TALM(Topology Aware Lifecycle Manager)은 클러스터 그룹에 대한 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을 만들어야 합니다.
- 클러스터를 다시 업데이트해야 하는 경우
-
클러스터가 업데이트 후
정보
정책을 준수하지 않는 것으로 변경되는 경우
12.5.1. 클러스터 선택 링크 복사링크가 클립보드에 복사되었습니다!
TALM은 다음 필드를 기반으로 교정 계획을 수립하고 클러스터를 선택합니다.
-
clusterLabelSelector
필드는 업데이트하려는 클러스터의 레이블을 지정합니다. 여기에는k8s.io/apimachinery/pkg/apis/meta/v1
의 표준 레이블 선택기 목록이 포함되어 있습니다. 목록의 각 선택자는 레이블 값 쌍이나 레이블 표현식을 사용합니다. 각 선택기의 일치 항목은clusterSelector
필드와cluster
필드의 일치 항목과 함께 최종 클러스터 목록에 추가됩니다. -
클러스터
필드는 업데이트할 클러스터 목록을 지정합니다. -
카나리아
필드는 카나리아 업데이트에 대한 클러스터를 지정합니다. -
maxConcurrency
필드는 배치에서 업데이트할 클러스터 수를 지정합니다. -
actions
필드는 TALM이 업데이트 프로세스를 시작할 때 수행하는beforeEnable
작업과 TALM이 각 클러스터에 대한 정책 수정을 완료할 때 수행하는afterCompletion
작업을 지정합니다.
clusters
, clusterLabelSelector
, clusterSelector
필드를 함께 사용하면 클러스터의 결합된 목록을 만들 수 있습니다.
교정 계획은 카나리아
필드에 나열된 클러스터부터 시작됩니다. 각 카나리아 클러스터는 단일 클러스터 배치를 형성합니다.
활성화된 필드가
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
필드를 변경할 수 있습니다.
12.5.2. 검증 링크 복사링크가 클립보드에 복사되었습니다!
TALM은 지정된 모든 관리 정책이 사용 가능하고 올바른지 확인하고 검증
조건을 사용하여 다음과 같이 상태 및 이유를 보고합니다.
true
검증이 완료되었습니다.
false
정책이 없거나 유효하지 않거나 잘못된 플랫폼 이미지가 지정되었습니다.
12.5.3. 사전 캐싱 링크 복사링크가 클립보드에 복사되었습니다!
클러스터는 컨테이너 이미지 레지스트리에 액세스하기 위한 대역폭이 제한될 수 있으므로 업데이트가 완료되기 전에 시간 초과가 발생할 수 있습니다. 단일 노드 OpenShift 클러스터에서는 사전 캐싱을 사용하여 이 문제를 방지할 수 있습니다. preCaching
필드가 true
로 설정된 ClusterGroupUpgrade
CR을 생성할 때 컨테이너 이미지 사전 캐싱이 시작됩니다. TALM은 사용 가능한 디스크 공간을 예상 OpenShift Container Platform 이미지 크기와 비교하여 충분한 공간이 있는지 확인합니다. 클러스터에 공간이 충분하지 않으면 TALM은 해당 클러스터의 사전 캐싱을 취소하고 정책을 수정하지 않습니다.
TALM은 PrecacheSpecValid
조건을 사용하여 다음과 같이 상태 정보를 보고합니다.
true
사전 캐싱 사양은 유효하고 일관되게 유지됩니다.
false
사전 캐싱 사양은 불완전합니다.
TALM은 PrecachingSucceeded
조건을 사용하여 다음과 같이 상태 정보를 보고합니다.
true
TALM은 사전 캐싱 프로세스를 완료했습니다. 어떤 클러스터에서 사전 캐싱이 실패하면 해당 클러스터의 업데이트는 실패하지만 다른 모든 클러스터의 업데이트는 진행됩니다. 클러스터에 대한 사전 캐싱이 실패한 경우 이를 알려주는 메시지가 표시됩니다.
false
하나 이상의 클러스터에 대한 사전 캐싱이 아직 진행 중이거나 모든 클러스터에 대해 실패했습니다.
자세한 내용은 "컨테이너 이미지 사전 캐시 기능 사용" 섹션을 참조하세요.
12.5.4. 클러스터 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
TALM은 개선 계획에 따라 정책을 시행합니다. 현재 배치의 모든 클러스터가 관리되는 모든 정책을 준수한 직후에 후속 배치에 대한 정책을 시행하는 것이 시작됩니다. 배치 시간이 초과되면 TALM은 다음 배치로 넘어갑니다. 배치의 시간 초과 값은 spec.timeout
필드를 수정 계획의 배치 수로 나눈 값입니다.
TALM은 진행
조건을 사용하여 다음과 같이 상태와 이유를 보고합니다.
true
TALM은 규정을 준수하지 않는 정책을 시정하고 있습니다.
false
업데이트가 진행되지 않습니다. 이에 대한 가능한 이유는 다음과 같습니다.
- 모든 클러스터는 모든 관리 정책을 준수합니다.
- 정책 수정에 너무 오랜 시간이 걸려 업데이트 시간이 초과되었습니다.
- 차단 CR이 시스템에 없거나 아직 완료되지 않았습니다.
-
ClusterGroupUpgrade
CR이 활성화되어 있지 않습니다.
관리되는 정책은 ClusterGroupUpgrade
CR의 managedPolicies
필드에 나열된 순서대로 적용됩니다. 한 번에 하나의 관리 정책이 지정된 클러스터에 적용됩니다. 클러스터가 현재 정책을 준수하는 경우 다음 관리 정책이 적용됩니다.
진행 중
상태의 ClusterGroupUpgrade
CR 샘플
- 1
진행 중
필드는 TALM이 정책을 개선하는 과정에 있음을 보여줍니다.
12.5.5. 상태 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
TALM은 Succeeded
조건을 사용하여 다음과 같이 상태와 이유를 보고합니다.
true
모든 클러스터는 지정된 관리 정책을 준수합니다.
false
클러스터를 수정할 수 없거나, 다음 이유 중 하나로 정책 수정에 너무 오랜 시간이 걸려 정책 수정이 실패했습니다.
- 현재 배치에는 카나리아 업데이트가 포함되어 있으며, 배치의 클러스터는 배치 시간 초과 내의 모든 관리 정책을 준수하지 않습니다.
-
클러스터가
remediationStrategy
필드에 지정된시간 초과
값 내에서 관리되는 정책을 준수하지 않았습니다.
성공
상태의 ClusterGroupUpgrade
CR 샘플
시간 초과
상태의 ClusterGroupUpgrade
CR 샘플
12.5.6. Blocking ClusterGroupUpgrade CRs 링크 복사링크가 클립보드에 복사되었습니다!
여러 개의 ClusterGroupUpgrade
CR을 만들고 적용 순서를 제어할 수 있습니다.
예를 들어, ClusterGroupUpgrade
CR A의 시작을 차단하는 ClusterGroupUpgrade
CR C를 생성하는 경우 ClusterGroupUpgrade
CR C의 상태가 UpgradeComplete가
될 때까지 ClusterGroupUpgrade
CR A를 시작할 수 없습니다.
하나의 ClusterGroupUpgrade
CR에는 여러 개의 차단 CR이 있을 수 있습니다. 이 경우, 현재 CR에 대한 업그레이드를 시작하기 전에 모든 차단 CR이 완료되어야 합니다.
사전 요구 사항
- TALM(Topology Aware Lifecycle Manager)을 설치합니다.
- 하나 이상의 관리형 클러스터를 프로비저닝합니다.
-
cluster-admin
권한이 있는 사용자로 로그인합니다. - 허브 클러스터에서 RHACM 정책을 만듭니다.
프로세스
ClusterGroupUpgrade
CR의 내용을cgu-a.yaml
,cgu-b.yaml
및cgu-c.yaml
파일에 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 차단 CR을 정의합니다.
cgu-
c가 완료될 때까지 cgu-
a 업데이트를 시작할 수 없습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
cgu-a가
완료될 때까지cgu-b
업데이트를 시작할 수 없습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
cgu-c
업데이트에는 차단 CR이 없습니다. TALM은enable
필드가true
로 설정되면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이 없습니다.