20.2. 컨트롤 플레인 노드 업그레이드

환경의 컨트롤 플레인 노드를 OpenStack Platform 16.1로 업그레이드하려면 부트스트랩 노드를 시작하여 한 번에 컨트롤 플레인 노드의 1/3을 업그레이드해야 합니다.

부트스트랩 컨트롤러 노드 업그레이드 프로세스 중에 새 Pacemaker 클러스터가 생성되고 노드에서 새로운 Red Hat OpenStack 16.1 컨테이너가 시작되고 나머지 컨트롤러 노드는 Red Hat OpenStack 13에서 계속 실행됩니다.

이 예에서 컨트롤 플레인 노드의 이름은 기본 overcloud-ROLE-NODEID 규칙을 사용하여 이름이 지정됩니다. 여기에는 구성 가능한 역할이 있는 다음 노드 유형이 포함됩니다.

  • overcloud-controller-0
  • overcloud-controller-1
  • overcloud-controller-2
  • overcloud-database-0
  • overcloud-database-1
  • overcloud-database-2
  • overcloud-networker-0
  • overcloud-networker-1
  • overcloud-networker-2
  • overcloud-ceph-0
  • overcloud-ceph-1
  • overcloud-ceph-2

해당하는 경우 고유한 노드 이름으로 이 값을 바꿉니다.

overcloud-controller-0, overcloud-database-0,overcloud- networker-0overcloud-ceph-0 부트스트랩 노드를 업그레이드한 후 컨트롤 플레인 노드의 첫 1/3을 구성하는 overcloud-ceph-0 부트스트랩 노드는 Pacemaker 서비스를 사용하여 노드의 추가 1/3을 업그레이드하고 각 노드가 부트스트랩 노드로 시작하는 새 Pacemaker 클러스터에 참여해야 합니다. 따라서 overcloud-controller-2, overcloud -database-2, overcloud - ceph -2를 업그레이드하기 전에 overcloud -controller-1, overcloud- database-1, overcloud-networker-1, overcloud - ceph-1 을 업그레이드해야 합니다.

참고

기본 스택 이름 오버클라우드 를 사용하지 않는 경우 --stack STACK NAME 옵션을 사용하여 스택 이름을 설정하고 STACK NAME 을 스택 이름으로 바꿉니다.

절차

  1. 언더클라우드 호스트에 stack 사용자로 로그인합니다.
  2. stackrc 파일을 소싱합니다.

    $ source ~/stackrc
  3. 언더클라우드 노드에서 다음 명령을 실행하여 부트스트랩 컨트롤러 노드를 확인합니다.

    $ tripleo-ansible-inventory --list --stack overcloud |jq .overcloud_Controller.hosts[0]
  4. overcloud-controller-0,overcloud-database-0,overcloud-networker-0overcloud-ceph-0 컨트롤 플레인 노드를 업그레이드합니다.

    1. ceph_systemd 태그를 사용하여 외부 업그레이드 명령을 실행합니다.

      $ openstack overcloud external-upgrade run --stack <stack_name> --tags ceph_systemd -e ceph_ansible_limit=overcloud-controller-0,overcloud-database-0,overcloud-networker-0,overcloud-ceph-0

      & lt;stack_name >을 스택 이름으로 바꿉니다.

      이 명령은 다음 작업을 수행합니다.

      • Podman 관리를 사용하도록 Ceph Storage 컨테이너를 제어하는 systemd 장치를 변경합니다.
      • ceph_ansible_limit 변수를 사용하여 작업을 선택한 노드로 제한합니다.

      이 단계는 빠른 업그레이드를 위해 Ceph Storage 서비스를 준비하기 위한 예비 조치입니다.

    2. system_upgrade 태그로 upgrade 명령을 실행합니다.

      $ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-controller-0 &
      $ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-database-0 &
      $ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-networker-0 &
      $ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-ceph-0 &

      이 명령은 다음 작업을 수행합니다.

      • 운영 체제의 Leapp 업그레이드를 수행합니다.
      • Leapp 업그레이드의 일부로 재부팅을 수행합니다.

        중요

        다음 명령을 실행하면 컨트롤 플레인이 중단됩니다. 다음 몇 단계에서 오버클라우드에서 표준 작업을 수행할 수 없습니다.

    3. system_upgrade_transfer_data 태그를 사용하여 외부 upgrade 명령을 실행합니다.

      $ openstack overcloud external-upgrade run --stack STACK NAME --tags system_upgrade_transfer_data

      이 명령은 기존 노드의 최신 데이터베이스 버전을 부트스트랩 노드로 복사합니다.

    4. nova_hybrid_state 태그로 upgrade 명령을 실행하고 upgrade_ steps_playbook.yaml 플레이북만 실행합니다.

      $ openstack overcloud upgrade run --stack STACK NAME --playbook upgrade_steps_playbook.yaml --tags nova_hybrid_state --limit all

      이 명령은 이후 단계에서 컴퓨팅 노드를 업그레이드할 때 워크로드 마이그레이션을 용이하게 하기 위해 컴퓨팅 노드에서 임시 16.1 컨테이너를 시작합니다.

    5. 태그 없이 업그레이드 명령을 실행합니다.

      $ openstack overcloud upgrade run --stack STACK NAME --limit overcloud-controller-0,overcloud-database-0,overcloud-networker-0,overcloud-ceph-0 --playbook all

      이 명령은 Red Hat OpenStack Platform 업그레이드를 수행합니다.

      중요

      이 명령이 완료되면 컨트롤 플레인이 활성화됩니다. 오버클라우드에서 표준 작업을 다시 수행할 수 있습니다.

    6. 선택 사항: 부트스트랩 Contoller 노드에서 업그레이드 후 새 Pacemaker 클러스터가 시작되고 galera, rabbit, haproxy, redis와 같은 컨트롤 플레인 서비스가 실행 중인지 확인합니다.

      $ sudo pcs status
  5. overcloud-controller-1, overcloud -database-1, overcloud -networker-1overcloud-ceph-1 컨트롤 플레인 노드를 업그레이드합니다.

    1. overcloud-controller-1 노드에 로그인하고 이전 클러스터가 더 이상 실행되지 않는지 확인합니다.

      $ sudo pcs status

      클러스터가 실행 중이 아닌 경우 다음과 유사한 오류가 표시됩니다.

      Error: cluster is not currently running on this node
    2. ceph_systemd 태그를 사용하여 외부 업그레이드 명령을 실행합니다.

      $ openstack overcloud external-upgrade run --stack STACK NAME --tags ceph_systemd -e ceph_ansible_limit=overcloud-controller-1,overcloud-database-1,overcloud-networker-1,overcloud-ceph-1

      이 명령은 다음 기능을 수행합니다.

      • Podman 관리를 사용하도록 Ceph Storage 컨테이너를 제어하는 systemd 장치를 변경합니다.
      • ceph_ansible_limit 변수를 사용하여 작업을 선택한 노드로 제한합니다.

      이 단계는 Ceph Storage 서비스를 준비하여 업그레이드를 준비하기 위한 예비 조치입니다.

    3. system_upgrade 태그로 upgrade 명령을 실행합니다.

      $ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-controller-1,overcloud-database-1,overcloud-networker-1,overcloud-ceph-1

      이 명령은 다음 작업을 수행합니다.

      • 운영 체제의 Leapp 업그레이드를 수행합니다.
      • Leapp 업그레이드의 일부로 재부팅을 수행합니다.
    4. 태그 없이 업그레이드 명령을 실행합니다.

      $ openstack overcloud upgrade run --stack STACK NAME --limit overcloud-controller-0,overcloud-controller-1,overcloud-database-0,overcloud-database-1,overcloud-networker-0,overcloud-networker-1,overcloud-ceph-0,overcloud-ceph-1

      이 명령은 Red Hat OpenStack Platform 업그레이드를 수행합니다. 이 노드 외에도 --limit 옵션에 이전에 업그레이드한 부트스트랩 노드를 포함합니다.

  6. overcloud-controller-2, overcloud -database-2, overcloud -networker-2overcloud-ceph-2 컨트롤 플레인 노드를 업그레이드합니다.

    1. overcloud-controller-2 노드에 로그인하고 이전 클러스터가 더 이상 실행되지 않는지 확인합니다.

      $ sudo pcs status

      클러스터가 실행 중이 아닌 경우 다음과 유사한 오류가 표시됩니다.

      Error: cluster is not currently running on this node
    2. ceph_systemd 태그를 사용하여 외부 업그레이드 명령을 실행합니다.

      $ openstack overcloud external-upgrade run --stack STACK NAME --tags ceph_systemd -e ceph_ansible_limit=overcloud-controller-2,overcloud-database-2,overcloud-networker-2,overcloud-ceph-2

      이 명령은 다음 기능을 수행합니다.

      • Podman 관리를 사용하도록 Ceph Storage 컨테이너를 제어하는 systemd 장치를 변경합니다.
      • ceph_ansible_limit 변수를 사용하여 작업을 선택한 노드로 제한합니다.

      이 단계는 Ceph Storage 서비스를 준비하여 업그레이드를 준비하기 위한 예비 조치입니다.

    3. system_upgrade 태그로 upgrade 명령을 실행합니다.

      $ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-controller-2,overcloud-database-2,overcloud-networker-2,overcloud-ceph-2

      이 명령은 다음 작업을 수행합니다.

      • 운영 체제의 Leapp 업그레이드를 수행합니다.
      • Leapp 업그레이드의 일부로 재부팅을 수행합니다.
    4. 태그 없이 업그레이드 명령을 실행합니다.

      $ openstack overcloud upgrade run --stack STACK NAME --limit overcloud-controller-0,overcloud-controller-1,overcloud-controller-2,overcloud-database-0,overcloud-database-1,overcloud-database-2,overcloud-networker-0,overcloud-networker-1,overcloud-networker-2,overcloud-ceph-0,overcloud-ceph-1,overcloud-ceph-2

      이 명령은 Red Hat OpenStack Platform 업그레이드를 수행합니다. 모든 컨트롤 플레인 노드를 --limit 옵션에 포함합니다.