7.4. 클러스터에서 RHEL 컴퓨팅 시스템 업데이트
클러스터를 업데이트한 후 클러스터의 RHEL (Red Hat Enterprise Linux) 컴퓨팅 시스템을 업데이트해야합니다.
작업자 (compute) 머신에는 RHEL (Red Hat Enterprise Linux) 버전 7.9 이상만 지원되므로 RHEL 작업자 시스템을 버전 8로 업그레이드해서는 안 됩니다.
RHEL을 운영 체제로 사용하는 경우 컴퓨팅 머신을 다른 OpenShift Container Platform 마이너 버전으로 업데이트할 수도 있습니다. 마이너 버전 업데이트를 수행할 때 RHEL에서 RPM 패키지를 제외할 필요가 없습니다.
사전 요구 사항
클러스터가 업데이트되었습니다.
중요RHEL 시스템에 업데이트 프로세스를 완료하기 위해 클러스터에서 생성한 자산이 필요하므로 RHEL 작업자 시스템을 업데이트하기 전에 클러스터를 업데이트해야 합니다.
-
RHEL 컴퓨팅 머신을 클러스터에 추가하는 데 사용한 로컬 시스템에 액세스할 수 있습니다. RHEL 시스템 및
upgrade
Playbook을 정의하는hosts
Ansible 인벤토리 파일에 액세스할 수 있어야 합니다. - 마이너 버전을 업데이트하기 위해 RPM 리포지토리는 클러스터에서 실행 중인 동일한 버전의 OpenShift Container Platform을 사용하고 있습니다.
프로세스
호스트에서 firewalld를 중지하고 비활성화합니다.
# systemctl disable --now firewalld.service
참고기본적으로 "최소" 설치 옵션이 있는 기본 OS RHEL에서는 firewalld 서비스를 활성화합니다. 호스트에서 firewalld 서비스를 활성화하면 작업자의 OpenShift Container Platform 로그에 액세스할 수 없습니다. 작업자의 OpenShift Container Platform 로그에 계속 액세스하려면 나중에 firewalld를 활성화하지 마십시오.
OpenShift Container Platform 4.6에 필요한 리포지토리를 활성화합니다.
Ansible Playbook을 실행하는 컴퓨터에서 필요한 리포지토리를 업데이트합니다.
# subscription-manager repos --disable=rhel-7-server-ose-4.5-rpms \ --enable=rhel-7-server-ansible-2.9-rpms \ --enable=rhel-7-server-ose-4.6-rpms
Ansible Playbook을 실행하는 시스템에서
openshift-ansible
을 포함하여 필요한 패키지를 업데이트합니다.# yum update openshift-ansible openshift-clients
각 RHEL 컴퓨팅 노드에 필요한 리포지토리를 업데이트합니다.
# subscription-manager repos --disable=rhel-7-server-ose-4.5-rpms \ --enable=rhel-7-server-ose-4.6-rpms \ --enable=rhel-7-fast-datapath-rpms \ --enable=rhel-7-server-optional-rpms
RHEL 작업자 시스템을 업데이트합니다.
현재 노드 상태를 확인하고 업데이트할 RHEL 작업자를 결정합니다.
# oc get node
출력 예
NAME STATUS ROLES AGE VERSION mycluster-control-plane-0 Ready master 145m v1.19.0 mycluster-control-plane-1 Ready master 145m v1.19.0 mycluster-control-plane-2 Ready master 145m v1.19.0 mycluster-rhel7-0 NotReady,SchedulingDisabled worker 98m v1.14.6+97c81d00e mycluster-rhel7-1 Ready worker 98m v1.14.6+97c81d00e mycluster-rhel7-2 Ready worker 98m v1.14.6+97c81d00e mycluster-rhel7-3 Ready worker 98m v1.14.6+97c81d00e
NotReady, SchedulingDisabled
상태인 시스템을 확인합니다.다음 예와 같이
/<path>/inventory/hosts
에서 Ansible 인벤토리 파일을 확인하고NotReady, SchedulingDisabled
상태인 시스템만[workers]
섹션에 나열되도록 내용을 업데이트합니다.[all:vars] ansible_user=root #ansible_become=True openshift_kubeconfig_path="~/.kube/config" [workers] mycluster-rhel7-0.example.com
openshift-ansible
디렉토리로 변경합니다.$ cd /usr/share/ansible/openshift-ansible
upgrade
Playbook을 실행합니다.$ ansible-playbook -i /<path>/inventory/hosts playbooks/upgrade.yml 1
- 1
<path>
에 대해 생성한 Ansible 인벤토리 파일의 경로를 지정합니다.
참고upgrade
플레이북은 OpenShift Container Platform 패키지만 업그레이드합니다. 운영 체제 패키지를 업데이트하지 않습니다.
- 이전 단계의 프로세스에 따라 클러스터의 각 RHEL 작업자 시스템을 업데이트합니다.
모든 작업자를 업데이트한 후 모든 클러스터 노드가 새 버전으로 업데이트되었는지 확인합니다.
# oc get node
출력 예
NAME STATUS ROLES AGE VERSION mycluster-control-plane-0 Ready master 145m v1.19.0 mycluster-control-plane-1 Ready master 145m v1.19.0 mycluster-control-plane-2 Ready master 145m v1.19.0 mycluster-rhel7-0 NotReady,SchedulingDisabled worker 98m v1.19.0 mycluster-rhel7-1 Ready worker 98m v1.19.0 mycluster-rhel7-2 Ready worker 98m v1.19.0 mycluster-rhel7-3 Ready worker 98m v1.19.0
선택 사항:
업그레이드
플레이북에서 업데이트하지 않은 운영 체제 패키지를 업데이트합니다. 4.6에 없는 패키지를 업데이트하려면 다음 명령을 사용합니다.# yum update
참고4.6을 설치할 때 사용한 것과 동일한 RPM 리포지토리를 사용하는 경우 RPM 패키지를 제외할 필요가 없습니다.