클러스터, 작업자 노드 및 클러스터 컴포넌트 업데이트
클러스터 마스터 및 작업자 노드를 최신 상태로 유지하는 단계에 대해서는 다음 섹션을 검토하십시오.
마스터 업데이트
- 마스터를 언제 업데이트해야 하는지 어떻게 알 수 있나요?
- 업데이트가 사용 가능하면 콘솔, 공지사항 및 CLI에서 알림을 받습니다. 또한 지원되는 버전 페이지 를 주기적으로 확인할 수 있습니다.
- 마스터 브랜치는 최신 버전보다 몇 버전 뒤처져 있을 수 있나요?
- API 서버는 현재 버전보다 한 단계 앞선 버전으로만 업데이트할 수 있습니다(
n+1). - 작업자 노드에서 마스터보다 최신 버전을 실행할 수 있나요?
- 작업자 노드는 마스터보다 최신
major.minorKubernetes 버전을 실행할 수 없습니다. 또한 작업자 노드는 마스터 버전보다 한 버전만 이전(n-1)일 수 있습니다. 먼저 최신 Kubernetes 버전으로 마스터를 업데이트하십시오. 그리고 클러스터의 작업자 노드를 업데이트하십시오.
작업자 노드는 마스터보다 이후 패치 버전을 실행할 수 있습니다(예: 보안 업데이트를 위한 작업자 노드 전용 패치 버전).
- 패치 업데이트는 어떻게 적용되나요?
- 기본적으로 마스터에 대한 패치 업데이트는 며칠에 걸쳐 자동으로 적용되므로, 마스터에 적용되기 전에는 마스터 패치 버전이 사용 가능으로 표시되지 않을 수 있습니다. 업데이트 자동화는 비정상 상태이거나 현재 오퍼레이션이 진행 중인 클러스터 또한 건너뜁니다. 마스터를 한 부 버전에서 다른 부 버전으로 업데이트하는 경우에만 필요한 패치와 같은 특정 마스터 수정팩에 대해서는 IBM에서 자동 업데이트를 사용 안함으로 설정할 수 있습니다.
이러한 경우라면, Red Hat OpenShift on IBM Cloud 에서 버전 정보를 확인하여 잠재적인 영향 여부를 파악한 후, 자동 업데이트가 적용될 때까지 기다리지 않고 직접
ibmcloud oc cluster master update명령어를 안전하게 실행할 수 있습니다.
마스터와는 달리, 작업자 노드는 각 패치 버전에 대해 업데이트해야 합니다.
- 마스터 업데이트 중에는 어떤 일이 일어나나요?
- 세 개의 복제본 팟(Pod)에서 마스터가 높은 가용성을 보입니다. 한 번에 한 개의 팟(Pod)을 사용할 수 없는 경우에만 마스터 팟(Pod)에서 롤링 업데이트가 수행됩니다. 업데이트 중 사용자가 클러스터에 액세스하여 클러스터를 변경할 수 있도록 두 인스턴스는 시작되어 실행 중입니다. 작업자 노드, 앱 및 리소스는 계속 실행됩니다.
- 업데이트를 이전 버전으로 되돌릴 수 있나요?
- 아니오. 업데이트 프로세스가 발생된 후에는 클러스터를 이전 버전으로 롤백할 수 없습니다. 프로덕션 마스터를 업데이트하기 전에는 반드시 테스트 클러스터를 사용하고 지시사항에 따라 잠재적인 문제를 처리하십시오.
- 마스터를 업데이트하려면 어떤 절차를 따라야 하나요?
- 다음 다이어그램은 마스터 업데이트 시 수행 가능한 프로세스를 보여줍니다.
클러스터 마스터 업데이트 단계
시작하기 전에, ‘운영자’ 또는 ‘관리자’ IAM 플랫폼 액세스 역할을 보유하고 있는지 확인하십시오.
CA(인증 기관) 인증서 로테이션이 진행 중인 경우 클러스터 마스터에 대한 업데이트가 차단됩니다. 클러스터 마스터를 업데이트하기 전에 로테이션이 완료될 때까지 기다립니다.
Red Hat OpenShift 마스터 주 또는 부 버전을 업데이트하려면 다음 작업을 수행하십시오.
-
Red Hat OpenShift on IBM Cloud 버전 정보 를 검토하고 _마스터 이전에 업데이트_로 표시된 업데이트를 작성하십시오.
-
Kubernetes 유용한 주의사항(예: 사용 중단 공지 등)을 모두 검토하십시오.
-
클러스터에 설치한 각 추가 기능 및 플러그인에 대해 클러스터 버전 업데이트로 인해 발생할 수 있는 영향을 확인하십시오.
-
추가 기능 확인
- 클러스터 내의 추가 기능을 나열하십시오.
ibmcloud oc cluster addon ls --cluster CLUSTER - 설치된 각 추가 기능에 대해 지원되는 Red Hat OpenShift버전을 확인하십시오.
ibmcloud oc addon-versions - 클러스터를 업데이트하려는 Red Hat OpenShift 버전에서 실행되도록 추가 기능을 업데이트해야 하는 경우 추가 기능을 업데이트하십시오.
- 클러스터 내의 추가 기능을 나열하십시오.
-
플러그인 확인
- Helm 카탈로그에서 클러스터에 설치한 플러그인을 찾으십시오.
- 사이드 메뉴에서 소스 및 TAR 파일 섹션을 펼치십시오.
- 소스 코드를 다운로드하고 여십시오.
- 지원되는 버전에 대해서는
README.md또는RELEASENOTES.md파일을 확인하십시오. - 클러스터를 업데이트하려는 Red Hat OpenShift 버전에서 실행되도록 플러그인을 업데이트해야 하는 경우 플러그인 지침에 따라 플러그인을 업데이트하십시오.
-
-
IBM Cloud 콘솔을 사용하거나 CLI
ibmcloud oc cluster master update명령을 사용하여 API 서버 및 이와 연관된 마스터 컴포넌트를 업데이트하십시오. -
잠시 기다린 후에 업데이트가 완료되었는지 확인하십시오. IBM Cloud 클러스터 대시보드에서 API 서버 버전을 검토하거나
ibmcloud oc cluster ls를 실행하십시오. -
마스터에서 실행되는 API 서버 버전과 일치하는
oc cli의 버전을 설치하십시오. Kubernetes 서버 버전과 2개 이상의 버전 차이가 나는(n ± 2)oc클라이언트 버전은 지원되지 않습니다.
마스터 업데이트가 완료되면, 보유한 클러스터 인프라 제공자 유형에 따라 작업자 노드를 업데이트할 수 있습니다.
클래식 작업자 노드 업데이트
클래식 인프라 클러스터의 작업자 노드에 대한 업데이트를 사용할 수 있습니다. 무슨 의미일까요? 보안 업데이트와 패치가 API 서버 및 기타 마스터 컴포넌트에 대해 시행되었으므로 사용자는 작업자 노드가 동기화를 유지하는지 확인해야 합니다. 패치 버전만 업데이트하거나 major.minor 버전을 패치 버전으로 업데이트하는 두 가지 유형의 업데이트를 수행할 수 있습니다.
- 패치: 작업자 노드 패치 업데이트에는 보안 수정사항이 포함되어 있습니다.
ibmcloud oc worker reload또는update명령을 사용하여 클래식 작업자 노드를 최신 패치로 업데이트할 수 있습니다.update명령은 또한major.minor버전 업데이트도 사용 가능한 경우 작업자 노드를 마스터 및 최신 패치 버전과 동일한major.minor버전으로 업데이트한다는 점에 유의하십시오. - Major.minor:
major.minor업데이트는 작업자 노드의 Kubernetes 버전을 마스터와 동일한 버전으로 변경합니다. 이 유형의 업데이트에는 클러스터를 준비해야 하는 Kubernetes API 또는 기타 작동에 대한 변경사항이 포함되어 있습니다. 작업자 노드는 마스터 버전보다 한 버전만(n-1) 이전일 수 있습니다.ibmcloud oc worker update명령을 사용하여 클래식 작업자 노드를 동일한 패치로 업데이트할 수 있습니다.
자세한 정보는 업데이트 유형을 참조하십시오.
인증서 로테이션의 가장 긴 단계에는 작업자 노드를 다시 로드하거나 교체하는 것이 포함되므로 작업자 노드를 업데이트할 때마다 CA 인증서를 로테이션하는 것이 좋습니다.
- 업데이트 중에는 내 앱이 어떻게 되나요?
- 업데이트 중인 작업자 노드에서 배치의 일부로서 앱을 실행하는 경우, 해당 앱은 클러스터의 기타 작업자 노드로 다시 스케줄됩니다. 이러한 작업자 노드는 다른 작업자 풀에 있을 수 있습니다. 또는 독립형 작업자 노드가 있으면 앱이 독립형 작업자 노드로 스케줄될 수 있습니다. 앱의 작동 중단 시간을 방지하려면 워크로드를 감당할 만한 충분한 용량이 클러스터에 있는지 확인해야 합니다.
- 업데이트나 재로드 중에 한 번에 몇 개의 워커 노드가 중단되도록 제어하려면 어떻게 해야 하나요?
- 모든 작업자 노드가 시작하여 실행되어야 하는 경우에는 작업자 노드를 더 추가할 수 있도록 작업자 풀 크기 조정 또는 독립형 작업자 노드 추가를 고려하십시오. 업데이트가 완료되면 추가적인 작업자 노드를 제거할 수 있습니다.
또한, 업데이트 중과 같이 한 번에 가용하지 않을 수 있는 워커 노드의 최대 수를 지정하는 Kubernetes 구성 맵을 생성할 수 있습니다. 작업자 노드는 작업자 노드 레이블로 식별됩니다. IBM 제공 레이블을 사용하거나 사용자가 작업자 노드에 추가한 사용자 정의 레이블을 사용할 수 있습니다.
config Kubernetes map 규칙은 작업자 노드 업데이트에만 사용됩니다. 이 규칙은 작업자 노드 다시 로드에 영향을 주지 않습니다. 즉, 요청 시 즉시 다시 로드가 발생합니다.
- 만약 구성 맵을 정의하지 않기로 한다면 어떻게 될까요?
- 구성 맵을 정의하지 않으면 기본값이 사용됩니다. 기본적으로 업데이트 프로세스 중에 각 클러스터의 모든 작업자 노드 중 최대 20%를 사용하지 못할 수 있습니다.
전제조건
클래식 인프라 작업자 노드를 업데이트하기 전에 전제조건 단계를 검토하십시오.
작업자 노드를 업데이트하면 앱과 서비스의 작동이 중단될 수 있습니다. 작업자 노드 머신이 다시 이미징되며, 팟(Pod)의 외부에 저장되지 않은 경우 데이터가 삭제됩니다.
- 최신 보안 패치 및 수정사항이 출시되면 작업자 노드를 최대한 빨리 최신 패치로 업데이트하십시오. 최신 업데이트에 대한 자세한 정보는 Red Hat OpenShift on IBM Cloud 버전 정보 를 검토하십시오.
- Red Hat OpenShift 클러스터에 액세스하십시오.
- 마스터를 업데이트하십시오. 작업자 노드 버전은 Kubernetes 마스터에서 실행되는 API 서버 버전보다 상위 버전일 수 없습니다.
- Red Hat OpenShift 버전 준비 안내서에서 _마스터 이후 업데이트_로 표시된 변경사항을 작성하십시오.
- 패치 업데이트를 적용하려면 Red Hat OpenShift on IBM Cloud 의 버전 정보를 확인하십시오.
- 업데이트 기간 동안 워크로드를 재스케줄링할 수 있을 만큼 클러스터에 충분한 용량이 확보되도록 워커 노드를 추가하는 것을 고려해 보십시오. 자세한 정보는 클래식 클러스터에 작업자 노드 추가 또는 VPC 클러스터에 작업자 노드 추가 를 참조하십시오.
- 운영자 또는 관리자 IAM 플랫폼 액세스 역할 가 설치되어 있는지 확인하십시오.
configmap을 사용하여 CLI에서 클래식 작업자 노드 업데이트
클래식 작업자 노드의 롤링 업데이트를 수행하도록 configmap을 설정하십시오.
-
전제조건 단계를 완료하십시오.
-
사용 가능한 작업자 노드를 나열하고 사설 IP 주소를 기록해 두십시오.
ibmcloud oc worker ls --cluster CLUSTER -
작업자 노드의 레이블을 보십시오. CLI 출력의 Labels 섹션에서 작업자 노드 레이블을 찾을 수 있습니다. 모든 레이블은
NodeSelectorKey및NodeSelectorValue로 구성되어 있습니다.oc describe node PRIVATE-WORKER-IP출력 예
NAME: 10.184.58.3 Roles: <none> Labels: arch=amd64 beta.kubernetes.io/arch=amd64 beta.kubernetes.io/os=linux failure-domain.beta.kubernetes.io/region=us-south failure-domain.beta.kubernetes.io/zone=dal12 ibm-cloud.kubernetes.io/encrypted-docker-data=true ibm-cloud.kubernetes.io/iaas-provider=softlayer ibm-cloud.kubernetes.io/machine-type=u3c.2x4.encrypted kubernetes.io/hostname=10.123.45.3 privateVLAN=2299001 publicVLAN=2299012 Annotations: node.alpha.kubernetes.io/ttl=0 volumes.kubernetes.io/controller-managed-attach-detach=true CreationTimestamp: Tue, 03 Apr 2022 15:26:17 -0400 Taints: <none> Unschedulable: false -
구성 맵을 작성하고 작업자 노드에 대한 비가용성 규칙을 정의하십시오. 다음 예는 네 개의 검사(
zonecheck.json,regioncheck.json,defaultcheck.json및 검사 템플리트)를 보여줍니다. 이러한 예제 검사를 사용하여 특정 구역(zonecheck.json), 지역(regioncheck.json)의 작업자 노드 또는 구성 맵(defaultcheck.json)에 정의한 검사와 일치하지 않는 모든 작업자 노드에 대해 규칙을 정의할 수 있습니다. 모든 검사에 대해, 작업자 노드를 식별하려면 이전 단계에서 검색한 작업자 노드 레이블 중 하나를 선택해야 합니다.검사할 때마다
NodeSelectorKey및NodeSelectorValue에 대해 하나의 값만 설정할 수 있습니다. 둘 이상의 지역, 구역 또는 기타 작업자 노드 레이블에 대해 규칙을 설정하려면 새 검사를 작성하십시오. 구성 맵에서 최대 15개의 검사를 정의할 수 있습니다. 검사를 더 추가하면 요청된 모든 작업자가 업데이트될 때까지 한 번에 하나의 작업자 노드만 다시 로드됩니다.예
apiVersion: v1 kind: ConfigMap metadata: name: ibm-cluster-update-configuration namespace: kube-system data: drain_timeout_seconds: "120" zonecheck.json: | { "MaxUnavailablePercentage": 30, "NodeSelectorKey": "failure-domain.beta.kubernetes.io/zone", "NodeSelectorValue": "dal13" } regioncheck.json: | { "MaxUnavailablePercentage": 20, "NodeSelectorKey": "failure-domain.beta.kubernetes.io/region", "NodeSelectorValue": "us-south" } defaultcheck.json: | { "MaxUnavailablePercentage": 20 } <check_name>: | { "MaxUnavailablePercentage": <value_in_percentage>, "NodeSelectorKey": "<node_selector_key>", "NodeSelectorValue": "<node_selector_value>" }drain_timeout_seconds- 선택 사항: 드레인 작업이 완료될 때까지 기다릴 시간(초). 안전하게 작업자 노드의 드레인을 수행하면 작업자 노드에서 모든 기존 팟(Pod)이 제거되며 클러스터의 기타 작업자 노드로 팟(Pod)이 다시 스케줄됩니다. 허용되는 값은 1 - 180 범위의 정수입니다. 기본값은 30입니다.
zonecheck.json및regioncheck.json- 지정된
NodeSelectorKey및NodeSelectorValue로 식별할 수 있는 작업자 노드 세트에 대한 규칙을 정의하는 두 개의 검사입니다.zonecheck.json은 해당 구역 레이블을 기반으로 작업자 노드를 식별하며,regioncheck.json은 프로비저닝 중에 모든 작업자 노드에 추가된 구역 레이블을 사용합니다. 이 예제에서는 자체 구역 레이블이dal13인 모든 작업자 노드 중 30% 와us-south의 모든 작업자 노드 중 20% 가 업데이트 중에 사용 불가능할 수 있습니다. defaultcheck.json- 구성 맵을 작성하지 않았거나 맵이 잘못 구성된 경우에는 Kubernetes 기본값이 적용됩니다. 기본적으로, 클러스터의 작업자 노드는 한 번에 20%만 사용 불가능 상태가 될 수 있습니다. 구성 맵에 기본 검사를 추가하여 기본값을 대체할 수 있습니다. 이 예제에서는 구역 및 지역 검사(
dal13또는us-south)에서 지정되지 않은 모든 작업자 노드가 업데이트 중에 사용 불가능할 수 있습니다. MaxUnavailablePercentage- 지정된 레이블 키 및 값에 대해 사용 불가능 상태가 될 수 있는 노드의 최대 수이며 이는 백분율로 지정됩니다. 배치, 다시 로드 또는 프로비저닝 프로세스 중에는 작업자 노드를 사용할 수 없습니다. 정의된 최대 사용 불가능 백분율을 초과하면 큐에 지정된 작업자 노드가 업데이트로부터 차단됩니다.
NodeSelectorKey- 해당 규칙을 설정하고자 하는 작업자 노드의 레이블 키입니다. 사용자는 IBM에서 제공한 기본 레이블과 자신이 작성한 작업자 노드 레이블에 대한 규칙을 설정할 수 있습니다. 하나의 작업자 풀에 속하는 작업자 노드에 대한 규칙을 추가하려는 경우에는
ibm-cloud.kubernetes.io/machine-type레이블을 사용할 수 있습니다. NodeSelectorValue- 사용자가 정의한 규칙에 대해 고려되기 위해 작업자 노드가 보유해야 하는 레이블 값입니다.
-
클러스터에서 구성 맵을 작성하십시오.
oc apply -f <filepath/configmap.yaml> -
구성 맵이 작성되었는지 확인하십시오.
oc get configmap --namespace kube-system -
작업자 노드를 업데이트하십시오.
ibmcloud oc worker update --cluster CLUSTER --worker WORKER-NODE-1-ID --worker WORKER-NODE-2-ID -
선택사항: 발생하는 유효성 검증 오류 및 구성 맵에 의해 트리거되는 이벤트를 확인하십시오. 이벤트는 CLI 출력의 Events 섹션에서 검토가 가능합니다.
oc describe -n kube-system cm ibm-cluster-update-configuration -
작업자 노드의 Kubernetes 버전을 검토하여 업데이트가 완료되었는지 확인하십시오.
oc get nodes -
중복된 작업자 노드가 없는지 확인하십시오. 일부 경우에 업데이트 후 이전 클러스터가
NotReady상태의 중복된 작업자 노드를 나열할 수 있습니다. 중복 항목을 제거하려면 문제점 해결을 참조하십시오.
다음 단계:
- 기타 작업자 풀에서 업데이트 프로세스를 반복하십시오.
- 클러스터에서 작업하는 개발자에게
ocCLI를 Kubernetes 마스터의 버전으로 업데이트하도록 알리십시오. - Kubernetes 대시보드가 사용량 그래프를 표시하지 않는 경우에는
kube-dashboard팟(Pod)을 삭제하십시오.
콘솔에서 클래식 작업자 노드 업데이트
ConfigMap을 처음 설정한 후에는 IBM Cloud 콘솔을 사용하여 작업자 노드를 업데이트할 수 있습니다.
콘솔에서 작업자 노드를 업데이트하려면 다음을 수행하십시오.
- 전제조건 단계 및 구성 맵 설정을 완료하여 작업자 노드가 업데이트되는 방법을 제어하십시오.
- IBM Cloud 콘솔 메뉴
클릭하고 컨테이너 > 클러스터를 클릭합니다.
- 클러스터 페이지에서 클러스터를 클릭하십시오.
- 작업자 노드 탭에서 업데이트하려는 각 작업자 노드의 선택란을 선택하십시오. 표 헤더 행 위에 조치 표시줄이 표시됩니다.
- 조치 표시줄에서 업데이트를 클릭하십시오.
클러스터에 Portworx가 설치되어 있는 경우 업데이트된 작업자 노드에서 Portworx 팟(Pod)을 다시 시작해야 합니다. 자세한 정보는 Portworx 제한사항을 참조하십시오.
VPC 작업자 노드 업데이트
VPC 클러스터 내의 워커 노드에 대한 업데이트가 제공되고 있음을 확인합니다. 무슨 의미일까요? 보안 업데이트와 패치가 API 서버 및 기타 마스터 컴포넌트에 대해 시행되었으므로 사용자는 작업자 노드가 동기화를 유지하는지 확인해야 합니다. 패치 버전만 업데이트하거나 major.minor 버전을 패치 버전으로 업데이트하는 두 가지 유형의 업데이트를 수행할 수 있습니다.
클러스터에 Portwort가 배치되어 있는 경우 VPC 작업자 노드를 Portworx 볼륨으로 업데이트하는 단계를 수행하십시오.
인증서 로테이션의 가장 긴 단계에는 작업자 노드를 다시 로드하거나 교체하는 것이 포함되므로 작업자 노드를 업데이트할 때마다 CA 인증서를 로테이션하는 것이 좋습니다.
클러스터에 Data OpenShift Foundation이 배포된 경우, Data OpenShift Foundation으로 VPC 워커 노드를 업데이트하는 단계를 따르십시오.
- 패치: 작업자 노드 패치 업데이트에는 보안 수정사항이 포함되어 있습니다. VPC 베어 메탈 작업자의 경우,
ibmcloud oc worker reload명령어를 사용하여 최신 패치를 적용할 수 있습니다. VPC 가상 서버 인스턴스 작업자의 경우,ibmcloud oc worker replace명령어를 사용하십시오. - Major.minor:
major.minor업데이트는 작업자 노드의 Kubernetes 버전을 마스터와 동일한 버전으로 변경합니다. 이 유형의 업데이트에는 클러스터를 준비해야 하는 Kubernetes API 또는 기타 작동에 대한 변경사항이 포함되어 있습니다. 워커 노드는 마스터 버전보다 한 버전 뒤처져 있을 수만 있다는 점을 기억하십시오(n-1).ibmcloud oc worker replace명령어에--update옵션을 함께 사용하여 VPC 워커 노드를 동일한 패치 버전으로 업데이트할 수 있습니다.
- 업데이트 중에는 내 앱이 어떻게 되나요?
- 업데이트 중인 작업자 노드에서 배치의 일부로서 앱을 실행하는 경우, 해당 앱은 클러스터의 기타 작업자 노드로 다시 스케줄됩니다. 이러한 작업자 노드는 다른 작업자 풀에 있을 수 있습니다. 앱의 가동 중단을 방지하려면, 워커 풀의 크기를 조정하는 등의 방법을 통해 클러스터에 워크로드를 처리할 수 있는 충분한 용량이 확보되어 있는지 확인해야 합니다. 자세한 정보는 클래식 클러스터에 작업자 노드 추가 또는 VPC 클러스터에 작업자 노드 추가 를 참조하십시오.
- 업데이트가 진행되는 동안 내 워커 노드는 어떻게 되나요?
- 이전 작업자 노드를 제거하고 업데이트된 패치 또는
major.minor버전으로 실행되는 새 작업자 노드를 프로비저닝하여 VPC 작업자 노드가 대체됩니다. 대체 작업자 노드는 동일 구역, 동일 작업자 풀에서 삭제된 작업자 노드와 동일한 특성으로 작성됩니다. 그러나 대체 작업자 노드에는 새 사설 IP 주소가 지정되며 이전 작업자 노드에 적용한 사용자 정의 레이블 또는 오염(작업자 풀 레이블 또는 오염은 대체 작업자 노드에 계속 적용됨)을 잃게 됩니다. - 여러 워커 노드를 동시에 교체하면 어떻게 되나요?
- 여러 작업자 노드를 동시에 교체하는 경우 하나씩 삭제되는 것이 아니라 동시에 삭제되고 교체됩니다. 작업자 노드를 교체하기 전에 워크로드를 다시 스케줄링할 수 있는 충분한 용량이 클러스터에 있는지 확인하십시오.
- 대체 작업자 노드가 생성되지 않으면 어떻게 되나요?
- 작업자 풀에서 자동 리밸런싱이 사용으로 설정되지 않으면 대체 작업자 노드가 작성되지 않습니다.
전제조건
VPC 인프라 작업자 노드를 업데이트하기 전에 전제조건 단계를 검토하십시오.
작업자 노드를 업데이트하면 앱과 서비스의 작동이 중단될 수 있습니다. 작업자 노드 머신이 제거되며, 팟(Pod)의 외부에 저장되지 않은 경우 데이터가 삭제됩니다.
- 최신 보안 패치 및 수정사항이 출시되면 작업자 노드를 최대한 빨리 최신 패치로 업데이트하십시오. 최신 업데이트에 대한 자세한 정보는 Red Hat OpenShift on IBM Cloud 버전 정보 를 검토하십시오.
- Red Hat OpenShift 클러스터에 액세스하십시오.
- 마스터를 업데이트하십시오. 작업자 노드 버전은 Kubernetes 마스터에서 실행되는 API 서버 버전보다 상위 버전일 수 없습니다.
- Red Hat OpenShift 버전 준비 안내서에서 _마스터 이후 업데이트_로 표시된 변경사항을 작성하십시오.
- 패치 업데이트를 적용하려면 Red Hat OpenShift on IBM Cloud 의 버전 정보를 확인하십시오.
- 운영자 또는 관리자 IAM 플랫폼 액세스 역할 가 설치되어 있는지 확인하십시오.
CLI에서 VPC 작업자 노드 업데이트
CLI를 사용하여 워커 노드를 업데이트하려면 다음 단계를 수행하십시오.
- 전제조건 단계를 완료하십시오.
- 선택 사항: 워커 풀의 크기를 조정하여 클러스터의 용량을 늘리세요. 작업자 노드의 팟(Pod)은 다시 스케줄될 수 있으며 업데이트 중에 추가된 작업자 노드에서 계속 실행될 수 있습니다. 자세한 정보는 클래식 클러스터에 작업자 노드 추가 또는 VPC 클러스터에 작업자 노드 추가 를 참조하십시오.
- 클러스터의 작업자 노드를 나열하고 업데이트할 작업자 노드의 ID 및 기본 IP를 기록해 두십시오.
ibmcloud oc worker ls --cluster CLUSTER - 작업자 노드를 대체하여 패치 버전 또는 마스터 버전과 일치하는
major.minor버전을 업데이트하십시오.- 워커 노드를 마스터와 동일한
major.minor버전으로 업데이트하려면--update옵션을 포함하십시오.
ibmcloud oc worker replace --cluster CLUSTER --worker WORKER-NODE-ID --update ``` * `major.minor` 버전은 동일하게 유지한 채 워커 노드를 최신 패치 버전으로 업데이트하려면, ` `--update` ` 옵션을 포함하지 마십시오. ```sh {: pre} ibmcloud oc worker replace --cluster CLUSTER --worker WORKER-NODE-ID ``` - 워커 노드를 마스터와 동일한
- 업데이트해야 하는 각 작업자 노드에 대해 이러한 단계를 반복하십시오.
- 선택 사항: 교체된 워커 노드가 ‘Ready’ 상태가 되면, 원하는 클러스터 용량에 맞게 워커 풀의 크기를 조정하십시오. 자세한 정보는 VPC 클러스터에 작업자 노드 추가 를 참조하십시오.
VPC 클러스터에서 Portworx를 실행 중인 경우 새 작업자 노드에 수동으로Block Storage for VPC 볼륨을 연결해야 합니다.
콘솔에서 VPC 작업자 노드 업데이트
콘솔에서 VPC 작업자 노드를 업데이트할 수 있습니다. 시작하기 전에, 애플리케이션의 가동 중단 시간을 방지하기 위해 클러스터에 워커 노드를 추가하는 것을 고려해 보십시오.
- 전제조건 단계를 완료하십시오.
- IBM Cloud 콘솔 메뉴
클릭하고 컨테이너 > 클러스터를 클릭합니다.
- 클러스터 페이지에서 클러스터를 클릭하십시오.
- 작업자 노드 탭에서 업데이트하려는 각 작업자 노드의 선택란을 선택하십시오. 표 헤더 행 위에 조치 표시줄이 표시됩니다.
- 조치 표시줄에서 업데이트를 클릭하십시오.
특성 업데이트(머신 유형)
시작하기 전에:
- Red Hat OpenShift 클러스터에 액세스하십시오.
- 작업자 노드의 데이터가 삭제됩니다. 작업자 노드 외부의 지속적 스토리지에 데이터를 저장하는 것을 고려하십시오.
- 운영자 또는 관리자 IAM 플랫폼 액세스 역할 가 설치되어 있는지 확인하십시오.
특성을 업데이트하려면 다음을 수행하십시오.
-
사용 가능한 작업자 노드를 나열하고 사설 IP 주소를 기록해 두십시오.
- 클러스터에서 사용 가능한 작업자 풀을 나열하십시오.
ibmcloud oc worker-pool ls --cluster CLUSTER ``` 2. 작업자 풀의 작업자 노드를 나열하십시오. **ID** 및 **사설 IP**를 기록해 두십시오. ```sh {: pre} ibmcloud oc worker ls --cluster CLUSTER --worker-pool WORKER-POOL ``` 3. 작업자 노드에 대한 세부사항을 가져오십시오. 출력에서 구역 및 클래식 클러스터의 사설 및 공용 VLAN ID 또는 VPC 클러스터의 서브넷 ID를 기록하십시오. ```sh {: pre} ibmcloud oc worker get --cluster CLUSTER --worker WORKER-ID ``` -
구역에서 사용 가능한 특성을 나열하십시오.
ibmcloud oc flavors --zone <zone> -
새 머신 유형으로 작업자 노드를 작성하십시오.
- 대체할 작업자 노드의 수로 작업자 풀을 작성하십시오.
- 클래식 클러스터:
ibmcloud oc worker-pool create classic --name WORKER-POOL --cluster CLUSTER --flavor FLAVOR --size-per-zone NUMBER-OF-WORKERS-PER-ZONE - VPC 2세대 클러스터:
ibmcloud oc worker-pool create vpc-gen2 --name NAME --cluster CLUSTER --flavor FLAVOR --size-per-zone NUMBER-OF-WORKERS-PER-ZONE --label LABEL
- 클래식 클러스터:
- 작업자 풀이 작성되었는지 확인하십시오.
ibmcloud oc worker-pool ls --cluster CLUSTER ``` 3. 이전에 검색한 작업자 풀에 구역을 추가하십시오. 구역을 추가하면 작업자 풀에서 정의된 작업자 노드가 구역에서 프로비저닝되며 향후 워크로드 스케줄을 위해 고려됩니다. 다중 구역에 작업자 노드를 분산시키려면 [클래식](/docs/openshift?topic=openshift-regions-and-zones#zones-mz) 또는 [VPC](/docs/openshift?topic=openshift-regions-and-zones#zones-vpc) 다중 구역 위치를 선택하십시오. * 클래식 클러스터: ```sh {: pre} ibmcloud oc zone add classic --zone ZONE --cluster CLUSTER --worker-pool WORKER-POOL --private-vlan PRIVATE-VLAN-ID --public-vlan PUBLIC-VLAN-ID ``` * VPC 클러스터: ```sh {: pre} ibmcloud oc zone add vpc-gen2 --zone ZONE --cluster CLUSTER --worker-pool WORKER-POOL --subnet-id VPC-SUBNET-ID ``` - 대체할 작업자 노드의 수로 작업자 풀을 작성하십시오.
-
작업자 노드가 배치될 때까지 대기하십시오. 작업자 노드 상태가 **정상(Normal)**으로 변경되면 배치가 완료된 것입니다.
ibmcloud oc worker ls --cluster CLUSTER -
이전의 작업자 노드를 제거하십시오. 참고: 월별로 비용이 청구되는 특성(예: 베어메탈)을 제거하는 경우 한 달의 요금이 청구됩니다.
- 이전 머신 유형의 작업자 풀을 제거하십시오. 작업자 풀을 제거하면 모든 구역의 풀에서 모든 작업자 노드가 제거됩니다. 이 프로세스는 완료하는 데 몇 분 정도 소요될 수 있습니다.
ibmcloud oc worker-pool rm --worker-pool WORKER-POOL --cluster CLUSTER ``` 2. 작업자 풀이 제거되었는지 확인하십시오. ```sh {: pre} ibmcloud oc worker-pool ls --cluster CLUSTER ``` -
작업자 노드가 클러스터에서 제거되었는지 확인하십시오.
ibmcloud oc worker ls --cluster CLUSTER -
이러한 단계를 반복하여 기타 작업자 풀 또는 독립형 작업자 노드를 다른 특성으로 업데이트하십시오.
작업자 풀은 어떻게 축소됩니까?
작업자 노드 업데이트 중에 또는 ibmcloud oc worker-pool resize 명령을 사용하여 작업자 풀의 작업자 노드 수가 줄어들면 작업자 노드는 상태, 상태 및 버전을 포함한 여러 특성을 기반으로 삭제를 위해 우선순위가 지정됩니다.
이 우선순위 로직은 오토스케일러 추가 기능과 관련이 없습니다.
다음 표는 작업자 노드가 삭제를 위해 우선순위가 지정되는 순서를 표시합니다.
ibmcloud oc worker ls 명령을 실행하여 표에 나열된 모든 작업자 노드 특성을 볼 수 있습니다.
| 우선순위 | 특성 | 설명 |
|---|---|---|
| 1 | 작업자 노드 상태 | 작동하지 않는 상태 또는 작동하지 않는 상태의 작업자 노드는 제거를 위해 우선순위가 지정됩니다. 이 목록은 provision_failed, deploy_failed, deleting, provision_pending, provisioning, deploying, provisioned,
reloading_failed, reloading, deployed 의 가장 높은 우선순위에서 가장 낮은 우선순위로 정렬된 상태를 표시합니다. |
| 2 | 작업자 노드 상태 | 상태가 양호하지 않은 작업자 노드는 상태가 양호한 작업자 노드보다 우선순위가 높습니다. 이 목록은 가장 높은 우선순위에서 가장 낮은 우선순위로 정렬된 상태 ( critical, warning, pending, unsupported, normal) 를 표시합니다. |
| 3 | 작업자 노드 버전 | 이전 버전에서 실행되는 작업자 노드는 삭제 우선순위가 높습니다. |
| 4 | 선택한 배치 설정 | 전용 호스트에서 실행 중인 작업자 전용입니다. DesiredPlacementDisabled 옵션이 true 로 설정된 전용 호스트에서 실행 중인 작업자 노드는 삭제 우선순위가 더 높습니다. |
| 5 | 알파벳순 | 작업자 노드가 위에 나열된 요인을 기반으로 우선순위가 지정된 후에는 알파벳순으로 삭제됩니다. 작업자 노드 ID 규칙에 따라 클래식 및 VPC 클러스터에 있는 작업자의 ID가 나이와 상관되므로 이전 작업자 노드가 먼저 제거됩니다. |
클러스터 컴포넌트 업데이트
Red Hat OpenShift on IBM Cloud 클러스터는 클러스터를 프로비저닝할 때 자동으로 설치되는 컴포넌트(예: Ingress)와 함께 제공됩니다. 기본적으로 이러한 컴포넌트는 IBM에 의해 자동으로 업데이트됩니다. 그러나 사용자는 일부 컴포넌트에 대해 자동 업데이트를 사용 안함으로 설정하고 마스터 및 작업자 노드와 별도로 수동으로 업데이트할 수 있습니다.
- 클러스터와 별도로 업데이트할 수 있는 기본 구성 요소는 무엇입니까?
- 사용자는 선택적으로 다음 컴포넌트에 대해 자동 업데이트를 사용 안함으로 설정할 수 있습니다.
- 클러스터와 별도로 업데이트할 수 없는 구성 요소가 있나요?
- 예. 클러스터는 변경 불가능한 다음 관리 컴포넌트 및 연관된 리소스와 함께 배치됩니다. 특정 성능 이점을 얻기 위해 팟(Pod)을 스케일링하고 ConfigMap을 편집하는 경우는 예외입니다. 이러한 배치 컴포넌트 중 하나를 변경하려고 시도하면 클러스터 마스터로 업데이트될 때 일정 간격마다 해당 원본 설정이 복원됩니다. 그러나 Calico 배치 컴포넌트에 의해 구현되도록 작성하는 Calico 네트워크 정책과 같은 이러한 컴포넌트와 연관된 리소스는 업데이트되지 않습니다.
calico컴포넌트coredns컴포넌트ibm-cloud-provider-ipibm-file-pluginibm-keepalived-watcheribm-master-proxyibm-storage-watcherkubernetes-dashboard컴포넌트metrics-serverolm-operator및catalog컴포넌트(1.16 이상)vpn
- 기본 구성 요소 외에 다른 플러그인이나 애드온을 설치할 수 있나요?
- 네. Red Hat OpenShift on IBM Cloud 에서는 클러스터에 기능을 추가하기 위해 선택할 수 있는 다양한 플러그인과 애드온을 제공합니다. 예를 들어, 클러스터에서 IBM 에서 관리하는 애드온을 활성화할 수 있습니다. 관리형 애드온 업데이트 단계에 따라 이러한 애드온을 별도로 업데이트해야 합니다.
Fluentd에 대한 자동 업데이트 관리
외부 서버로 전달하기 위해 클러스터에 있는 소스의 로깅 구성을 작성하는 경우 Fluentd 컴포넌트가 클러스터에 작성됩니다. 로깅 또는 필터 구성을 변경하려면 Fluentd 컴포넌트가 최신 버전이어야 합니다. 기본적으로 이 컴포넌트에 대한 자동 업데이트는 사용으로 설정됩니다.
Fluentd 컴포넌트의 자동 업데이트는 다음 방법으로 관리할 수 있습니다. 참고: 다음 명령을 실행하려면 클러스터에 대해 관리자 IBM Cloud IAM 플랫폼 액세스 역할을 보유하고 있어야 합니다.
ibmcloud oc logging autoupdate get --cluster CLUSTER명령을 실행하여 자동 업데이트가 사용으로 설정되었는지 확인하십시오.ibmcloud oc logging autoupdate disable명령을 실행하여 자동 업데이트를 사용 안함으로 설정하십시오.- 자동 업데이트가 사용 안함으로 설정되어 있지만 구성을 변경해야 하는 경우에는 두 가지 옵션이 있습니다.
- Fluentd 팟(Pod)에 대해 자동 업데이트를 켭니다.
ibmcloud oc logging autoupdate enable --cluster CLUSTER ``` * `--force-update` 옵션이 포함된 로깅 명령을 사용할 때 일회성 업데이트를 강제 실행합니다. **참고**: 팟(Pod)은 Fluentd 컴포넌트의 최신 버전으로 업데이트되지만 Fluentd는 자동으로 최신 버전으로 업데이트되지 않습니다. 명령 예 ```sh {: pre} ibmcloud oc logging config update --cluster CLUSTER --id LOG-CONFIG-ID --type LOG-TYPE --force-update ```
Ingress ALB에 대한 자동 업데이트 관리
Ingress 애플리케이션 로드 밸런서(ALB) 컴포넌트가 업데이트되는 시점을 제어하십시오. ALB를 최신 상태로 유지하는 방법에 대한 정보는 Ingress ALB 라이프사이클 관리를 참조하십시오.
관리 추가 기능 업데이트
관리형 IBM Cloud Kubernetes Service 클러스터 애드온을 사용하면 Istio 와 같은 오픈소스 기능을 통해 클러스터를 손쉽게 강화할 수 있습니다. 클러스터에 추가하는 오픈 소스 도구의 버전은 IBM에서 테스트하고 IBM Cloud Kubernetes Service에서 사용하도록 승인됩니다. 클러스터에서 사용으로 설정한 관리 추가 기능을 최신 버전으로 업데이트하려면 관리 추가 기능 업데이트를 참조하십시오.