3장. 클러스터 업데이트 수행
3.1. CLI를 사용하여 클러스터 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift CLI(oc
)를 사용하여 OpenShift Container Platform 클러스터에서 마이너 버전 및 패치 업데이트를 수행할 수 있습니다.
3.1.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
-
admin
권한이 있는 사용자로 클러스터에 액세스합니다. RBAC를 사용하여 권한 정의 및 적용을 참조하십시오. - 업그레이드에 실패할 경우 etcd backup이 있어야 하고 클러스터를 이전 상태로 복원해야 합니다.
- Pod 실패로 인해 영구 볼륨을 복원해야 하는 경우 최신 CSI(Container Storage Interface) 볼륨 스냅샷 이 있어야 합니다.
- RHEL7 작업자는 RHEL8 또는 RHCOS 작업자로 교체됩니다. Red Hat은 RHEL 작업자의 RHEL7에서 RHEL8 업데이트를 지원하지 않습니다. 해당 호스트는 완전히 새로운 운영 체제 설치로 교체되어야 합니다.
- OLM(Operator Lifecycle Manager)을 통해 이전에 설치된 모든 Operator를 대상 릴리스와 호환되는 버전으로 업데이트했습니다. Operator를 업데이트하면 클러스터 업그레이드 중에 기본 OperatorHub 카탈로그가 현재 마이너 버전에서 다음 버전으로 전환될 때 유효한 업그레이드 경로를 갖게 됩니다. 호환성을 확인하고 필요한 경우 설치된 Operator를 업데이트하는 방법에 대한 자세한 내용은 설치된 Operator 업데이트를 참조하십시오.
- 모든 MCP(Machine config pool)가 실행 중이고 일시 중지되지 않는지 확인합니다. 업데이트 프로세스 중에 일시 중지된 MCP와 연결된 노드를 건너뜁니다. 카나리아 롤아웃 업데이트 전략을 수행하는 경우 MCP를 일시 중지할 수 있습니다.
- 클러스터에서 수동으로 유지 관리되는 인증 정보를 사용하는 경우 새 릴리스의 클라우드 공급자 리소스를 업데이트합니다. 클러스터의 요구 사항인지 확인하는 방법을 포함하여 자세한 내용은 수동으로 유지 관리되는 인증 정보를 사용하여 클러스터 업데이트 준비를 참조하십시오.
-
클러스터가 다음 마이너 버전으로 업그레이드할 수 있도록 모든
Upgradeable=False
조건을 처리해야 합니다. 업그레이드할 수 없는 클러스터 Operator가 하나 이상 있는 경우 클러스터 설정 페이지 상단에 경고가 표시됩니다. 현재 사용 중인 마이너 릴리스에 대해 사용 가능한 다음 패치 업데이트로 업그레이드할 수 있습니다. -
Operator를 실행하거나 Pod 중단 예산으로 애플리케이션을 구성한 경우 업데이트 프로세스 중에 중단이 발생할 수 있습니다.
PodDisruptionBudget
에서minAvailable이
1로 설정된 경우 보류 중인 머신 구성을 적용하기 위해 노드가 비워지며 이로 인해 퇴거 프로세스가 차단될 수 있습니다. 여러 노드가 재부팅되면 모든 포드가 하나의 노드에서만 실행될 수 있으며,PodDisruptionBudget
필드가 노드 비움을 방지할 수 있습니다.
- 업데이트가 완료되지 않으면 클러스터 버전 운영자(CVO)가 업데이트를 조정하는 동안 차단된 구성 요소의 상태를 보고합니다. 클러스터를 이전 버전으로 롤백하는 것은 지원되지 않습니다. 업데이트가 완료되지 않으면 Red Hat 지원팀에 문의하세요.
-
unsupportedConfigOverrides
섹션을 사용하여 Operator의 구성을 수정하는 것은 지원되지 않으며 클러스터 업데이트가 차단될 수 있습니다. 클러스터를 업데이트하려면 먼저 이 설정을 제거해야 합니다.
3.1.2. MachineHealthCheck 리소스 일시 중지 링크 복사링크가 클립보드에 복사되었습니다!
업데이트 프로세스 중에 클러스터의 노드를 일시적으로 사용할 수 없게 될 수 있습니다. 워커 노드의 경우, MachineHealthCheck
리소스는 해당 노드를 비정상으로 식별하고 재부팅할 수 있습니다. 이러한 노드를 재부팅하지 않으려면 클러스터를 업데이트하기 전에 모든 MachineHealthCheck
리소스를 일시 중지합니다.
일부 MachineHealthCheck
리소스는 일시 중지할 필요가 없을 수도 있습니다. MachineHealthCheck
리소스가 복구할 수 없는 조건에 의존하는 경우 해당 MHC를 일시 중지할 필요가 없습니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다.
프로세스
일시 중지하려는 사용 가능한
MachineHealthCheck
리소스를 모두 나열하려면 다음 명령을 실행합니다.oc get machinehealthcheck -n openshift-machine-api
$ oc get machinehealthcheck -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 머신 상태 점검을 일시 중지하려면
cluster.x-k8s.io/paused=""
주석을MachineHealthCheck
리소스에 추가합니다. 다음 명령을 실행합니다.oc -n openshift-machine-api annotate mhc <mhc-name> cluster.x-k8s.io/paused=""
$ oc -n openshift-machine-api annotate mhc <mhc-name> cluster.x-k8s.io/paused=""
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 주석이 지정된
MachineHealthCheck
리소스는 다음 YAML 파일과 유사합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요클러스터를 업데이트한 후 머신 상태 점검을 다시 시작합니다. 검사를 다시 시작하려면 다음 명령을 실행하여
MachineHealthCheck
리소스에서 일시 중지 주석을 제거합니다.oc -n openshift-machine-api annotate mhc <mhc-name> cluster.x-k8s.io/paused-
$ oc -n openshift-machine-api annotate mhc <mhc-name> cluster.x-k8s.io/paused-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.3. 단일 노드 OpenShift 컨테이너 플랫폼 업데이트에 관하여 링크 복사링크가 클립보드에 복사되었습니다!
콘솔이나 CLI를 사용하여 단일 노드 OpenShift Container Platform 클러스터를 업데이트하거나 업그레이드할 수 있습니다.
그러나 다음과 같은 제한 사항이 있습니다.
-
MachineHealthCheck
리소스를 일시 중지하는 전제 조건은 상태 검사를 수행할 다른 노드가 없기 때문에 필요하지 않습니다. - etcd 백업을 사용하여 단일 노드 OpenShift Container Platform 클러스터를 복원하는 것은 공식적으로 지원되지 않습니다. 하지만 업데이트가 실패할 경우를 대비해 etcd 백업을 수행하는 것이 좋습니다. 제어 평면이 정상이면 백업을 사용하여 클러스터를 이전 상태로 복원할 수 있습니다.
단일 노드 OpenShift Container Platform 클러스터를 업데이트하려면 가동 중지 시간이 필요하며 자동 재부팅이 포함될 수 있습니다. 다운타임의 양은 다음 시나리오에서 설명한 대로 업데이트 페이로드에 따라 달라집니다.
- 업데이트 페이로드에 재부팅이 필요한 운영 체제 업데이트가 포함되어 있는 경우 다운타임이 심각해지고 클러스터 관리와 사용자 작업 부하에 영향을 미칩니다.
- 업데이트에 재부팅이 필요하지 않은 머신 구성 변경 사항이 포함된 경우 가동 중지 시간이 줄어들고 클러스터 관리 및 사용자 작업 부하에 미치는 영향도 줄어듭니다. 이 경우, 클러스터에 작업 부하를 재조정할 다른 노드가 없기 때문에 단일 노드 OpenShift Container Platform에서는 노드 드레이닝 단계가 건너뜁니다.
- 업데이트 페이로드에 운영 체제 업데이트나 머신 구성 변경 사항이 포함되지 않은 경우 짧은 API 중단이 발생하지만 빠르게 해결됩니다.
업데이트된 패키지의 버그와 같은 조건으로 인해 재부팅 후 단일 노드가 다시 시작되지 않을 수 있습니다. 이 경우 업데이트가 자동으로 롤백되지 않습니다.
3.1.4. CLI를 사용하여 클러스터 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift CLI( oc
)를 사용하여 클러스터 업데이트를 검토하고 요청할 수 있습니다.
사용 가능한 OpenShift Container Platform 권고 및 업데이트는 고객 포털의 에라타 섹션을 참조하십시오.
전제 조건
-
업데이트된 버전과 일치하는 OpenShift CLI (
oc
)를 설치합니다. -
cluster-admin
권한이 있는 사용자로 클러스터에 로그인합니다. -
모든
MachineHealthCheck
리소스를 일시 중지합니다.
프로세스
사용 가능한 업데이트를 확인하고 적용하려는 업데이트의 버전 번호를 기록해 둡니다.
oc adm upgrade
$ oc adm upgrade
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고- 권장 업데이트가 없더라도 알려진 문제가 있는 업데이트는 여전히 사용 가능할 수 있습니다. 자세한 내용은 조건부 업데이트 경로를 따라업데이트를 참조하십시오.
-
제어 평면 전용
업데이트를 수행하는 방법에 대한 자세한 내용과 정보는 추가 리소스 섹션에 나열된 제어 평면 전용 업데이트 수행 준비 페이지를 참조하세요.
조직의 요구 사항에 따라 적절한 업데이트 채널을 설정하세요. 예를 들어 채널을
stable-4.13
또는fast-4.13
으로 설정할 수 있습니다. 채널에 대한 자세한 내용은 추가 리소스 섹션에 나열된 업데이트 채널 및 릴리스 이해를 참조하세요.oc adm upgrade channel <channel>
$ oc adm upgrade channel <channel>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들어, 채널을
stable-4.19
로 설정하려면 다음을 실행합니다.oc adm upgrade channel stable-4.19
$ oc adm upgrade channel stable-4.19
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요프로덕션 클러스터의 경우
stable-*
,eus-*
또는fast-*
채널을 구독해야 합니다.참고다음 마이너 버전으로 넘어갈 준비가 되면 해당 마이너 버전에 해당하는 채널을 선택하세요. 업데이트 채널이 빨리 선언될수록 클러스터가 대상 버전에 대한 업데이트 경로를 더 효과적으로 추천할 수 있습니다. 클러스터가 사용 가능한 모든 업데이트를 평가하고 선택할 수 있는 최상의 업데이트 권장 사항을 제공하는 데 시간이 걸릴 수 있습니다. 업데이트 권장 사항은 당시에 사용 가능한 업데이트 옵션에 따라 달라지므로 시간이 지남에 따라 변경될 수 있습니다.
대상 마이너 버전에 대한 업데이트 경로가 보이지 않으면 경로에 다음 마이너 버전이 나올 때까지 현재 버전의 최신 패치 릴리스로 클러스터를 계속 업데이트하세요.
업데이트를 적용합니다.
최신 버전으로 업데이트하려면 다음을 수행합니다.
oc adm upgrade --to-latest=true
$ oc adm upgrade --to-latest=true
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 특정 버전으로 업데이트하려면 다음을 수행합니다.
oc adm upgrade --to=<version>
$ oc adm upgrade --to=<version>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요oc adm upgrade --help 를
사용하면--force
에 대한 옵션이 나열됩니다.--force
옵션을 사용하면 릴리스 검증 및 사전 조건 확인을 포함한 클러스터 측 보호 조치를 우회하므로 이 방법은 권장되지 않습니다 .--force를
사용해도 업데이트가 성공적으로 이루어진다는 보장은 없습니다. 경비원을 우회하면 클러스터가 위험에 처하게 됩니다.
클러스터 버전 Operator의 상태를 확인합니다.
oc adm upgrade
$ oc adm upgrade
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 업데이트가 완료되면 클러스터 버전이 새 버전으로 업데이트되었는지 확인합니다.
oc adm upgrade
$ oc adm upgrade
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터를 다음 마이너 버전(예: 버전 Xy에서 X.(y+1))으로 업데이트하는 경우 새 기능에 의존하는 워크로드를 배포하기 전에 노드가 업데이트되었는지 확인하는 것이 좋습니다.
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.5. oc adm upgrade recommend를 사용하여 권장되는 업데이트 경로 찾기(기술 미리 보기) 링크 복사링크가 클립보드에 복사되었습니다!
클러스터를 업데이트할 때 oc adm upgrade
명령은 사용 가능한 다음 버전 목록을 반환합니다. oc adm upgrade recommendation
명령을 사용하면 제안 범위를 좁히고 업데이트를 실행하기 전에 새로운 대상 릴리스를 추천할 수 있습니다.
oc adm upgrade recommendation
명령은 읽기 전용이므로 클러스터 상태를 변경할 수 없습니다.
oc adm upgrade recommendation
명령은 Technology Preview 기능에만 해당됩니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
oc adm upgrade recommend
명령을 사용하려면 클러스터가 Technology Preview가 활성화된 클러스터일 필요는 없습니다.
프로세스
다음 명령을 실행하여
OC_ENABLE_CMD_UPGRADE_RECOMMEND
환경 변수를true
로 설정합니다.export OC_ENABLE_CMD_UPGRADE_RECOMMEND=true
$ export OC_ENABLE_CMD_UPGRADE_RECOMMEND=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령 중 하나를 실행합니다.
업데이트에 권장되는 버전을 나열하려면
oc adm upgrade recommend
명령을 실행하세요.oc adm upgrade recommend
$ oc adm upgrade recommend
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 업데이트에 특정 버전이 권장되는지 확인하려면
oc adm upgrade recommend --version
명령을 실행하세요.oc adm upgrade recommend --version 4.12.51
$ oc adm upgrade recommend --version 4.12.51
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.6. oc adm upgrade status를 사용하여 클러스터 업데이트 상태 수집(기술 미리 보기) 링크 복사링크가 클립보드에 복사되었습니다!
클러스터를 업데이트할 때 oc adm upgrade
명령은 업데이트 상태에 대한 제한된 정보를 반환합니다. oc adm upgrade status
명령을 사용하면 oc adm upgrade
명령에서 상태 정보를 분리하고 제어 평면 및 작업자 노드 업데이트 상태를 포함하여 클러스터 업데이트에 대한 특정 정보를 반환할 수 있습니다.
oc adm upgrade status
명령은 읽기 전용이며 클러스터의 어떤 상태도 변경하지 않습니다.
oc adm upgrade status
명령은 Technology Preview 기능에만 해당됩니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
oc adm upgrade status
명령은 버전 4.12부터 최신 지원 릴리스까지의 클러스터에 사용할 수 있습니다.
oc adm upgrade status
명령을 사용하려면 클러스터가 Technology Preview가 활성화된 클러스터일 필요는 없습니다.
프로세스
다음 명령을 실행하여
OC_ENABLE_CMD_UPGRADE_STATUS
환경 변수를true
로 설정합니다.export OC_ENABLE_CMD_UPGRADE_STATUS=true
$ export OC_ENABLE_CMD_UPGRADE_STATUS=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc adm upgrade status
명령을 실행합니다.oc adm upgrade status
$ oc adm upgrade status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 업데이트가 성공적으로 진행됨에 대한 예시 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.7. 조건부 업데이트 경로를 따라 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
웹 콘솔이나 OpenShift CLI( oc
)를 사용하여 권장되는 조건부 업데이트 경로에 따라 업데이트할 수 있습니다. 클러스터에 조건부 업데이트가 권장되지 않는 경우 OpenShift CLI( oc
) 4.10 이상을 사용하여 조건부 업데이트 경로를 따라 업데이트할 수 있습니다.
프로세스
위험이 적용될 수 있어 업데이트가 권장되지 않는 경우 해당 업데이트에 대한 설명을 보려면 다음 명령을 실행하세요.
oc adm upgrade --include-not-recommended
$ oc adm upgrade --include-not-recommended
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터 관리자가 잠재적으로 알려진 위험을 평가하고 현재 클러스터에 허용 가능하다고 판단하는 경우 관리자는 다음 명령을 실행하여 보안 가드를 해제하고 업데이트를 진행할 수 있습니다.
oc adm upgrade --allow-not-recommended --to <version> <.>
$ oc adm upgrade --allow-not-recommended --to <version> <.>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <.>
<version>
은 이전 명령의 출력에서 얻은 업데이트 버전입니다. 이는 지원되지만 알려진 문제 또는 위험도 있습니다.
3.1.8. CLI를 사용하여 업데이트 서버 변경 링크 복사링크가 클립보드에 복사되었습니다!
업데이트 서버 변경은 선택 사항입니다. 로컬에 설치되어 구성된 OSUS(OpenShift Update Service)가 있는 경우 업데이트 중에 로컬 서버를 사용하도록 서버의 URL을 upstream
으로 설정해야 합니다. upstream
의 기본값은 https://api.openshift.com/api/upgrades_info/v1/graph
입니다.
프로세스
클러스터 버전에서
upstream
매개변수 값을 변경합니다.oc patch clusterversion/version --patch '{"spec":{"upstream":"<update-server-url>"}}' --type=merge
$ oc patch clusterversion/version --patch '{"spec":{"upstream":"<update-server-url>"}}' --type=merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <update-server-url>
변수는 업데이트 서버의 URL을 지정합니다.출력 예
clusterversion.config.openshift.io/version patched
clusterversion.config.openshift.io/version patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow