15.3. Lifecycle Agent를 사용하여 단일 노드 OpenShift 클러스터에 대한 이미지 기반 업그레이드 수행
Lifecycle Agent를 사용하면 단일 노드 OpenShift 클러스터의 수동 이미지 기반 업그레이드를 수행할 수 있습니다.
클러스터에 Lifecycle Agent를 배포하면 ImageBasedUpgrade CR이 자동으로 생성됩니다. 이 CR을 업데이트하여 시드 이미지의 이미지 저장소를 지정하고 각 단계를 진행합니다.
15.3.1. Lifecycle Agent를 사용하여 이미지 기반 업그레이드의 준비 단계로 이동 링크 복사링크가 클립보드에 복사되었습니다!
클러스터에 Lifecycle Agent를 배포하면 ImageBasedUpgrade 사용자 정의 리소스(CR)가 자동으로 생성됩니다.
업그레이드 중에 필요한 모든 리소스를 만든 후 준비 단계로 넘어갈 수 있습니다. 자세한 내용은 "Lifecycle Agent를 사용한 이미지 기반 업그레이드를 위한 ConfigMap 객체 생성" 섹션을 참조하세요.
연결이 끊긴 환경에서 시드 클러스터의 릴리스 이미지 레지스트리가 대상 클러스터의 릴리스 이미지 레지스트리와 다른 경우 대체 미러링된 저장소 위치를 구성하기 위해 ImageDigestMirrorSet (IDMS) 리소스를 만들어야 합니다. 자세한 내용은 "이미지 레지스트리 저장소 미러링 구성"을 참조하십시오.
다음 명령을 실행하면 시드 이미지에 사용된 릴리스 레지스트리를 검색할 수 있습니다.
$ skopeo inspect docker://<imagename> | jq -r '.Labels."com.openshift.lifecycle-agent.seed_cluster_info" | fromjson | .release_registry'
사전 요구 사항
- 클러스터를 백업하고 복원하기 위한 리소스를 생성했습니다.
프로세스
ImageBasedUpgradeCR에 패치가 적용되었는지 확인하세요.apiVersion: lca.openshift.io/v1 kind: ImageBasedUpgrade metadata: name: upgrade spec: stage: Idle seedImageRef: version: 4.15.21 image: <seed_container_image>2 pullSecretRef: <seed_pull_secret>3 autoRollbackOnFailure: {} # initMonitorTimeoutSeconds: 18004 extraManifests:5 - name: example-extra-manifests-cm namespace: openshift-lifecycle-agent - name: example-catalogsources-cm namespace: openshift-lifecycle-agent oadpContent:6 - name: oadp-cm-example namespace: openshift-adp- 1
- 대상 플랫폼 버전. 값은 시드 이미지의 버전과 일치해야 합니다.
- 2
- 대상 클러스터가 시드 이미지를 가져올 수 있는 저장소입니다.
- 3
- 이미지가 개인 레지스트리에 있는 경우 컨테이너 이미지를 가져오기 위한 자격 증명이 포함된 비밀에 대한 참조입니다.
- 4
- 선택 사항: 첫 번째 재부팅 후 해당 시간 내에 업그레이드가 완료되지 않을 경우 롤백할 시간(초)입니다. 정의되지 않았거나
0으로 설정된 경우 기본값인1800초(30분)가 사용됩니다. - 5
- 선택 사항: 업그레이드 후에도 보관할 사용자 정의 카탈로그 소스와 시드 이미지에 포함되지 않은 대상 클러스터에 적용할 추가 매니페스트가 포함된
ConfigMap리소스 목록입니다. - 6
- OADP
백업및복원CR이 포함된ConfigMap리소스 목록입니다.
Prep단계를 시작하려면 다음 명령을 실행하여ImageBasedUpgradeCR에서stage필드 값을Prep으로 변경합니다.$ oc patch imagebasedupgrades.lca.openshift.io upgrade -p='{"spec": {"stage": "Prep"}}' --type=merge -n openshift-lifecycle-agentOADP 리소스와 추가 매니페스트에 대한
ConfigMap객체를 제공하는 경우 Lifecycle Agent는준비단계에서 지정된ConfigMap객체의 유효성을 검사합니다. 다음과 같은 문제가 발생할 수 있습니다.-
Lifecycle Agent가
extraManifests매개변수에 문제가 있는 경우 유효성 검사 경고 또는 오류가 발생합니다. -
Lifecycle Agent가
oadpContent매개변수에 문제가 있는 경우 검증 오류가 발생합니다.
유효성 검사 경고는
업그레이드단계를 차단하지 않지만 업그레이드를 진행하는 것이 안전한지 여부를 결정해야 합니다. 이러한 경고(CRD 누락, 네임스페이스 또는 드라이런 실패 등)는ImageBasedUpgradeCR의준비단계 및주석필드에 대한status.conditions를 경고에 대한 세부 정보로 업데이트합니다.예제 유효성 검사 경고
# ... metadata: annotations: extra-manifest.lca.openshift.io/validation-warning: '...' # ...그러나
MachineConfig또는 Operator 매니페스트를 추가 매니페스트에 추가하는 등의 유효성 검사 오류가 발생하면준비단계가 실패하고업그레이드단계가 차단됩니다.검증을 통과하면 클러스터는 새로운
ostreestateroot를 만듭니다. 여기에는 시드 이미지를 끌어와 압축 해제하고 호스트 수준 명령을 실행하는 작업이 포함됩니다. 마지막으로, 필요한 모든 이미지가 대상 클러스터에 미리 캐시됩니다.-
Lifecycle Agent가
검증
다음 명령을 실행하여
ImageBasedUpgradeCR의 상태를 확인하세요.$ oc get ibu -o yaml출력 예
conditions: - lastTransitionTime: "2024-01-01T09:00:00Z" message: In progress observedGeneration: 13 reason: InProgress status: "False" type: Idle - lastTransitionTime: "2024-01-01T09:00:00Z" message: Prep completed observedGeneration: 13 reason: Completed status: "False" type: PrepInProgress - lastTransitionTime: "2024-01-01T09:00:00Z" message: Prep stage completed successfully observedGeneration: 13 reason: Completed status: "True" type: PrepCompleted observedGeneration: 13 validNextStages: - Idle - Upgrade