16.3. Lifecycle Agent를 사용하여 단일 노드 OpenShift 클러스터에 대한 이미지 기반 업그레이드 수행
Lifecycle Agent를 사용하여 단일 노드 OpenShift 클러스터의 수동 이미지 기반 업그레이드를 수행할 수 있습니다.
클러스터에 Lifecycle Agent를 배포하면 ImageBasedUpgrade CR이 자동으로 생성됩니다. 이 CR을 업데이트하여 시드 이미지의 이미지 리포지터리를 지정하고 다른 단계를 진행합니다.
16.3.1. Lifecycle Agent를 사용하여 이미지 기반 업그레이드의 Prep 단계로 이동 링크 복사링크가 클립보드에 복사되었습니다!
클러스터에 Lifecycle Agent를 배포하면 Lifecycle Agent에서 ImageBasedUpgrade CR(사용자 정의 리소스)을 자동으로 생성합니다.
업그레이드 중에 필요한 모든 리소스를 생성한 후 Prep 단계로 이동할 수 있습니다. 자세한 내용은 "라이프사이클 에이전트를 사용한 이미지 기반 업그레이드에 대한 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: <target_version> image: <seed_container_image> pullSecretRef: <seed_pull_secret> autoRollbackOnFailure: {} initMonitorTimeoutSeconds: <initMonitorTimeoutSeconds> extraManifests: - name: example-extra-manifests-cm namespace: openshift-lifecycle-agent - name: example-catalogsources-cm namespace: openshift-lifecycle-agent oadpContent: - name: oadp-cm-example namespace: openshift-adp다음과 같습니다.
<target_version>- 대상 플랫폼 버전. 값은 시드 이미지 버전과 일치해야 합니다.
<seed_container_image>- 대상 클러스터에서 시드 이미지를 가져올 수 있는 리포지토리입니다.
<seed_pull_secret>- 이미지가 프라이빗 레지스트리에 있는 경우 컨테이너 이미지를 가져오는 인증 정보가 있는 보안에 대한 참조입니다.
<initMonitorTimeoutSeconds>-
선택 사항: 첫 번째 재부팅 후 업그레이드가 완료되지 않으면 롤백할 시간(초)입니다. 정의되지 않았거나
0으로 설정되지 않은 경우 Lifecycle Agent는 기본값1800초 (30 분)를 사용합니다. extraManifests-
선택사항:
ConfigMap리소스 목록입니다. 이러한 리소스에는 업그레이드 후 유지할 사용자 정의 카탈로그 소스와 시드 이미지에 포함되지 않은 추가 매니페스트가 포함됩니다. oadpContent-
OADP
Backup및RestoreCR이 포함된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는Prep단계에서 지정된ConfigMap오브젝트를 검증합니다.다음과 같은 문제가 발생할 수 있습니다.
-
Lifecycle Agent가
추가Manifests매개변수와 관련된 문제를 감지하면 유효성 검사 경고 또는 오류입니다. -
라이프사이클 에이전트가
oadpContent매개변수와 관련된 문제를 감지하면 유효성 검사 오류가 발생합니다.
검증 경고는
업그레이드단계를 차단하지 않지만 업그레이드를 진행하는 것이 안전한지 결정해야 합니다. 이러한 경고(예: 누락된 CRD(사용자 정의 리소스 정의), 네임스페이스 또는 예행 실행 실패와 같은 경고에 대한 세부 정보를 사용하여ImageBasedUpgradeCR의Prepstage 및annotation필드에 대한status.conditions를 업데이트합니다. 다음 예제에서는 이러한 세부 정보를 보여줍니다.# ... metadata: annotations: extra-manifest.lca.openshift.io/validation-warning: '...' # ...그러나
MachineConfig또는 Operator 매니페스트를 추가 매니페스트에 추가하는 것과 같은 검증 오류로 인해Prep단계가 실패하고Upgrade단계를 차단합니다.검증을 통과하면 클러스터에서 새
ostreestateroot를 생성합니다. 여기에는 시드 이미지를 가져오고 압축 해제하고 호스트 수준 명령을 실행하는 작업이 포함됩니다. 마지막으로 Lifecycle Agent는 대상 클러스터에서 필요한 모든 이미지를 사전 캐시합니다.-
Lifecycle Agent가
검증
다음 명령을 실행하여
ImageBasedUpgradeCR의 상태를 확인합니다.$ oc get ibu -o yaml다음 예제에서는 성공적인
Prep단계를 보여줍니다.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