12.4. 클러스터에서 RHEL 컴퓨팅 시스템 업데이트

클러스터를 업데이트한 후 클러스터의 RHEL (Red Hat Enterprise Linux) 컴퓨팅 시스템을 업데이트해야합니다.

중요

RHEL (Red Hat Enterprise Linux) 버전 8.6 이상은 RHEL 컴퓨팅 머신에서 지원됩니다.

RHEL을 운영 체제로 사용하는 경우 컴퓨팅 머신을 다른 OpenShift Container Platform 마이너 버전으로 업데이트할 수도 있습니다. 마이너 버전 업데이트를 수행할 때 RHEL에서 RPM 패키지를 제외할 필요가 없습니다.

중요

RHEL 7 컴퓨팅 머신을 RHEL 8로 업그레이드할 수 없습니다. 새 RHEL 8 호스트를 배포해야 하며 이전 RHEL 7 호스트를 제거해야 합니다.

사전 요구 사항

  • 클러스터가 업데이트되었습니다.

    중요

    RHEL 시스템에 업데이트 프로세스를 완료하기 위해 클러스터에서 생성한 자산이 필요하므로 RHEL 작업자 시스템을 업데이트하기 전에 클러스터를 업데이트해야 합니다.

  • RHEL 컴퓨팅 머신을 클러스터에 추가하는 데 사용한 로컬 시스템에 액세스할 수 있습니다. RHEL 시스템 및 upgrade Playbook을 정의하는 hosts Ansible 인벤토리 파일에 액세스할 수 있어야 합니다.
  • 마이너 버전을 업데이트하기 위해 RPM 리포지토리는 클러스터에서 실행 중인 동일한 버전의 OpenShift Container Platform을 사용하고 있습니다.

프로세스

  1. 호스트에서 firewalld를 중지하고 비활성화합니다.

    # systemctl disable --now firewalld.service
    참고

    기본적으로 "최소"설치 옵션을 사용하는 기본 OS RHEL은 firewalld 서비스를 활성화합니다. 호스트에서 firewalld 서비스를 활성화하면 작업자의 OpenShift Container Platform 로그에 액세스할 수 없습니다. 작업자의 OpenShift Container Platform 로그에 계속 액세스하려면 나중에 firewalld를 활성화하지 마십시오.

  2. OpenShift Container Platform 4.12에 필요한 리포지토리를 활성화합니다.

    1. Ansible Playbook을 실행하는 컴퓨터에서 필요한 리포지토리를 업데이트합니다.

      # subscription-manager repos --disable=rhocp-4.11-for-rhel-8-x86_64-rpms \
                                   --disable=ansible-2.9-for-rhel-8-x86_64-rpms \
                                   --enable=rhocp-4.12-for-rhel-8-x86_64-rpms
      중요

      OpenShift Container Platform 4.11부터 Ansible 플레이북은 RHEL 8에서만 제공됩니다. RHEL 7 시스템이 OpenShift Container Platform 4.10 Ansible 플레이북의 호스트로 사용된 경우 Ansible 호스트를 RHEL 8로 업그레이드하거나 RHEL 8 시스템에서 새 Ansible 호스트를 생성하고 이전 Ansible 호스트의 인벤토리를 복사해야 합니다.

    2. Ansible Playbook을 실행하는 시스템에서 Ansible 패키지를 업데이트합니다.

      # yum swap ansible ansible-core
    3. Ansible Playbook을 실행하는 시스템에서 openshift-ansible을 포함하여 필요한 패키지를 업데이트합니다.

      # yum update openshift-ansible openshift-clients
    4. 각 RHEL 컴퓨팅 노드에 필요한 리포지토리를 업데이트합니다.

      # subscription-manager repos --disable=rhocp-4.11-for-rhel-8-x86_64-rpms \
                                   --enable=rhocp-4.12-for-rhel-8-x86_64-rpms
  3. RHEL 작업자 시스템을 업데이트합니다.

    1. 다음 예와 같이 /<path>/inventory/hosts 에서 Ansible 인벤토리 파일을 확인하고 RHEL 8 시스템이 [workers] 섹션에 나열되도록 내용을 업데이트합니다.

      [all:vars]
      ansible_user=root
      #ansible_become=True
      
      openshift_kubeconfig_path="~/.kube/config"
      
      [workers]
      mycluster-rhel8-0.example.com
      mycluster-rhel8-1.example.com
      mycluster-rhel8-2.example.com
      mycluster-rhel8-3.example.com
    2. openshift-ansible 디렉토리로 변경합니다.

      $ cd /usr/share/ansible/openshift-ansible
    3. upgrade Playbook을 실행합니다.

      $ ansible-playbook -i /<path>/inventory/hosts playbooks/upgrade.yml 1
      1
      <path>에 대해 생성한 Ansible 인벤토리 파일의 경로를 지정합니다.
      참고

      upgrade 플레이북은 OpenShift Container Platform 패키지만 업그레이드합니다. 운영 체제 패키지를 업데이트하지 않습니다.

  4. 모든 작업자를 업데이트한 후 모든 클러스터 노드가 새 버전으로 업데이트되었는지 확인합니다.

    # oc get node

    출력 예

    NAME                        STATUS                        ROLES    AGE    VERSION
    mycluster-control-plane-0   Ready                         master   145m   v1.25.0
    mycluster-control-plane-1   Ready                         master   145m   v1.25.0
    mycluster-control-plane-2   Ready                         master   145m   v1.25.0
    mycluster-rhel8-0           Ready                         worker   98m    v1.25.0
    mycluster-rhel8-1           Ready                         worker   98m    v1.25.0
    mycluster-rhel8-2           Ready                         worker   98m    v1.25.0
    mycluster-rhel8-3           Ready                         worker   98m    v1.25.0

  5. 선택 사항: upgrade 플레이북에서 업데이트하지 않은 운영 체제 패키지를 업데이트합니다. 4.12에 없는 패키지를 업데이트하려면 다음 명령을 사용하십시오.

    # yum update
    참고

    4.12를 설치할 때 사용한 것과 동일한 RPM 리포지토리를 사용하는 경우 RPM 패키지를 제외할 필요가 없습니다.