18.8. 컨테이너 이미지 사전 캐시 기능 사용
클러스터는 컨테이너 이미지 레지스트리에 액세스하기 위해 대역폭이 제한되어 업데이트 완료 전에 타임아웃이 발생할 수 있습니다.
업데이트 시간은 TALM에 의해 설정되지 않습니다. 수동 애플리케이션 또는 외부 자동화로 업데이트를 시작할 때 ClusterGroupUpgrade
CR을 적용할 수 있습니다.
ClusterGroupUpgrade
CR에서 preCaching
필드가 true
로 설정된 경우 컨테이너 이미지 사전 캐싱이 시작됩니다. 성공적인 사전 캐싱 프로세스 후 정책을 수정할 수 있습니다. enable
필드가 true
로 설정된 경우 수정 작업이 시작됩니다.
사전 캐싱 프로세스는 다음 상태에 있을 수 있습니다.
PrecacheNotStarted
이는 모든 클러스터가
ClusterGroupUpgrade
CR의 첫 번째 조정 통과 시에 자동으로 할당된 초기 상태입니다.TALM은 이전의 불완전한 업데이트에서 남아 있는 맞춤 클러스터의 사전 캐싱 네임스페이스 및 허브 뷰 리소스를 삭제합니다. 그런 다음 TALM은 spoke pre-caching namespace에 대한 새로운
ManagedClusterView
리소스를 생성하여PrecachePreparing
상태에서 해당 삭제를 확인합니다.PrecachePreparing
- 이전의 불완전한 업데이트에서 나머지 리소스를 정리하는 작업이 진행 중입니다.
PrecacheStarting
- 사전 캐싱 작업 사전 요구 사항 및 작업이 생성됩니다.
PrecacheActive
- 작업은 "Active" 상태입니다.
PrecacheSucceeded
- 사전 캐시 작업이 성공했습니다.
PrecacheTimeout
- 아티팩트 사전 캐싱이 부분적으로 완료되었습니다.
PrecacheUnrecoverableError
- 작업은 0이 아닌 종료 코드로 끝납니다.
18.8.1. 사전 캐싱을 사용하여 ClusterGroupUpgrade CR 생성
사전 캐시 기능을 사용하면 업데이트가 시작되기 전에 필요한 컨테이너 이미지를 맞춤식 클러스터에 표시할 수 있습니다.
사전 요구 사항
- Topology Aware Lifecycle Manager (TALM)를 설치합니다.
- 하나 이상의 관리 클러스터를 프로비저닝합니다.
-
cluster-admin
권한이 있는 사용자로 로그인합니다.
절차
clustergroupupgrades-group-du.yaml
파일에서preCaching
필드가true
로 설정된 상태에서ClusterGroupUpgrade
CR의 콘텐츠를 저장합니다.apiVersion: ran.openshift.io/v1alpha1 kind: ClusterGroupUpgrade metadata: name: du-upgrade-4918 namespace: ztp-group-du-sno spec: preCaching: true 1 clusters: - cnfdb1 - cnfdb2 enable: false managedPolicies: - du-upgrade-platform-upgrade remediationStrategy: maxConcurrency: 2 timeout: 240
- 1
preCaching
필드가true
로 설정되어 업데이트를 시작하기 전에 TALM이 컨테이너 이미지를 가져올 수 있습니다.
업데이트를 시작하려면 다음 명령을 실행하여
ClusterGroupUpgrade
CR을 적용합니다.$ oc apply -f clustergroupupgrades-group-du.yaml
검증
다음 명령을 실행하여 hub 클러스터에
ClusterGroupUpgrade
CR이 있는지 확인합니다.$ oc get cgu -A
출력 예
NAMESPACE NAME AGE ztp-group-du-sno du-upgrade-4918 10s 1
- 1
- CR이 생성됩니다.
다음 명령을 실행하여 사전 캐싱 작업의 상태를 확인합니다.
$ oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'
출력 예
{ "conditions": [ { "lastTransitionTime": "2022-01-27T19:07:24Z", "message": "Precaching is not completed (required)", 1 "reason": "PrecachingRequired", "status": "False", "type": "Ready" }, { "lastTransitionTime": "2022-01-27T19:07:24Z", "message": "Precaching is required and not done", "reason": "PrecachingNotDone", "status": "False", "type": "PrecachingDone" }, { "lastTransitionTime": "2022-01-27T19:07:34Z", "message": "Pre-caching spec is valid and consistent", "reason": "PrecacheSpecIsWellFormed", "status": "True", "type": "PrecacheSpecValid" } ], "precaching": { "clusters": [ "cnfdb1" 2 ], "spec": { "platformImage": "image.example.io"}, "status": { "cnfdb1": "Active"} } }
스포크 클러스터에서 다음 명령을 실행하여 사전 캐싱 작업의 상태를 확인합니다.
$ oc get jobs,pods -n openshift-talm-pre-cache
출력 예
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
다음 명령을 실행하여
ClusterGroupUpgrade
CR의 상태를 확인합니다.$ oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'
출력 예
"conditions": [ { "lastTransitionTime": "2022-01-27T19:30:41Z", "message": "The ClusterGroupUpgrade CR has all clusters compliant with all the managed policies", "reason": "UpgradeCompleted", "status": "True", "type": "Ready" }, { "lastTransitionTime": "2022-01-27T19:28:57Z", "message": "Precaching is completed", "reason": "PrecachingCompleted", "status": "True", "type": "PrecachingDone" 1 }
- 1
- 사전 캐시 작업이 수행됩니다.