5장. 업데이트된 부팅 이미지
MCO(Machine Config Operator)는 부팅 이미지를 사용하여 RHCOS(Red Hat Enterprise Linux CoreOS) 노드를 시작합니다. 기본적으로 OpenShift Container Platform은 부팅 이미지를 관리하지 않습니다.
즉 클러스터의 부팅 이미지가 클러스터와 함께 업데이트되지 않습니다. 예를 들어 클러스터가 원래 OpenShift Container Platform 4.12를 사용하여 생성된 경우 클러스터를 생성하는 데 사용하는 부팅 이미지는 클러스터가 이후 버전에 있더라도 동일한 4.12 버전입니다. 나중에 클러스터가 4.13 이상으로 업그레이드된 경우 새 노드는 동일한 4.12 이미지로 계속 확장됩니다.
이 프로세스에서는 다음과 같은 문제가 발생할 수 있습니다.
- 노드를 시작하는 추가 시간
- 인증서 만료 문제
- 버전 skew 문제
이러한 문제를 방지하려면 클러스터를 업데이트할 때마다 부팅 이미지를 업데이트하도록 클러스터를 구성할 수 있습니다. MachineConfiguration
오브젝트를 수정하여 이 기능을 활성화할 수 있습니다. 현재 GCP(Google Cloud Platform) 클러스터에서만 부팅 이미지를 업데이트할 수 있으며 Cluster API에서 관리하는 클러스터에서는 지원되지 않습니다.
부팅 이미지 업데이트 기능은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
클러스터에 사용된 현재 부팅 이미지를 보려면 머신 세트를 검사합니다.
부팅 이미지 참조가 있는 머신 세트 예
apiVersion: machine.openshift.io/v1beta1
kind: MachineSet
metadata:
name: ci-ln-hmy310k-72292-5f87z-worker-a
namespace: openshift-machine-api
spec:
# ...
template:
# ...
spec:
# ...
providerSpec:
# ...
value:
disks:
- autoDelete: true
boot: true
image: projects/rhcos-cloud/global/images/rhcos-412-85-202203181601-0-gcp-x86-64 1
# ...
- 1
- 이 부팅 이미지는 현재 클러스터 버전에 관계없이 원래 설치된 OpenShift Container Platform 버전 (이 예제 OpenShift Container Platform 4.12)과 동일합니다. 부팅 이미지가 머신 세트에 표시되는 방식은
providerSpec
필드의 구조가 플랫폼마다 다르기 때문에 플랫폼에 따라 다릅니다.
부팅 이미지를 업데이트하도록 클러스터를 구성하면 머신 세트에서 참조하는 부팅 이미지가 현재 클러스터 버전과 일치합니다.
5.1. 업데이트된 부팅 이미지 구성
기본적으로 OpenShift Container Platform은 부팅 이미지를 관리하지 않습니다. MachineConfiguration
오브젝트를 수정하여 클러스터를 업데이트할 때마다 부팅 이미지를 업데이트하도록 클러스터를 구성할 수 있습니다.
사전 요구 사항
-
기능 게이트를 사용하여 설정된
TechPreviewNoUpgrade
기능을 활성화했습니다. 자세한 내용은 추가 리소스 섹션의 "기능 게이트를 사용하여 기능 활성화"를 참조하십시오.
프로세스
다음 명령을 실행하여 부팅 이미지 업데이트를 활성화하려면
cluster
라는MachineConfiguration
오브젝트를 편집합니다.$ oc edit MachineConfiguration cluster
선택 사항: 모든 머신 세트의 부팅 이미지 업데이트 기능을 구성합니다.
apiVersion: operator.openshift.io/v1 kind: MachineConfiguration metadata: name: cluster namespace: openshift-machine-config-operator spec: # ... managedBootImages: 1 machineManagers: - resource: machinesets apiGroup: machine.openshift.io selection: mode: All 2
선택 사항: 특정 머신 세트의 부팅 이미지 업데이트 기능을 구성합니다.
apiVersion: operator.openshift.io/v1 kind: MachineConfiguration metadata: name: cluster namespace: openshift-machine-config-operator spec: # ... managedBootImages: 1 machineManagers: - resource: machinesets apiGroup: machine.openshift.io selection: mode: Partial partial: machineResourceSelector: matchLabels: update-boot-image: "true" 2
작은 정보머신 세트에 적절한 라벨이 없는 경우 다음과 유사한 명령을 실행하여 키/값 쌍을 추가합니다.
$ oc label machineset.machine ci-ln-hmy310k-72292-5f87z-worker-a update-boot-image=true -n openshift-machine-api
검증
다음 명령을 실행하여 부팅 이미지 버전을 가져옵니다.
$ oc get machinesets <machineset_name> -n openshift-machine-api -o yaml
부팅 이미지 참조가 있는 머신 세트 예
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: labels: machine.openshift.io/cluster-api-cluster: ci-ln-77hmkpt-72292-d4pxp update-boot-image: "true" name: ci-ln-77hmkpt-72292-d4pxp-worker-a namespace: openshift-machine-api spec: # ... template: # ... spec: # ... providerSpec: # ... value: disks: - autoDelete: true boot: true image: projects/rhcos-cloud/global/images/rhcos-416-92-202402201450-0-gcp-x86-64 1 # ...
- 1
- 이 부팅 이미지는 현재 OpenShift Container Platform 버전과 동일합니다.
추가 리소스