20.2. 컨트롤 플레인 노드 업그레이드
환경의 컨트롤 플레인 노드를 OpenStack Platform 16.2로 업그레이드하려면 부트스트랩 노드부터 시작하여 한 번에 컨트롤 플레인 노드의 1/3을 업그레이드해야 합니다.
부트스트랩 컨트롤러 노드 업그레이드 프로세스 중에 새 Pacemaker 클러스터가 생성되고 새 Red Hat OpenStack 16.2 컨테이너가 노드에서 시작되고 나머지 컨트롤러 노드는 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
이러한 값을 해당하는 경우 자체 노드 이름으로 바꿉니다.
컨트롤 플레인 노드의 첫 번째 1/3을 구성하는 overcloud-controller-0, 부트스트랩 노드를 업그레이드한 후 Pacemaker 서비스를 사용하여 노드의 각 1/3을 업그레이드하고 각 노드가 부트스트랩 노드로 시작된 새 Pacemaker 클러스터에 참여하도록 해야 합니다. 따라서 overcloud-database-0,overcloud-networker-0 overcloud-controller-2,overcloud-database-2,overcloud-networker-2 및 overcloud-ceph-2 를 업그레이드하기 전에 overcloud-controller-1,overcloud-database-1,overcloud-networker-1 및 overcloud-ceph-1 을 업그레이드해야 합니다.
절차
-
언더클라우드 호스트에
stack사용자로 로그인합니다. stackrc파일을 소싱합니다.$ source ~/stackrc언더클라우드 노드에서 부트스트랩 컨트롤러 노드를 확인합니다.
$ tripleo-ansible-inventory --list [--stack <stack_name>] |jq .overcloud_Controller.hosts[0]-
선택 사항: &
lt;stack_name>을 스택 이름으로 바꿉니다. 지정하지 않으면 기본값은overcloud입니다.
-
선택 사항: &
overcloud-controller-0,overcloud-database-0,overcloud-networker-0및overcloud-ceph-0컨트롤 플레인 노드를 업그레이드합니다.ceph_systemd태그를 사용하여 외부 upgrade 명령을 실행합니다.$ 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이 명령은 다음 작업을 수행합니다.
- Podman 관리를 사용하도록 Ceph Storage 컨테이너를 제어하는 systemd 장치를 변경합니다.
-
ceph_ansible_limit변수를 사용하여 작업을 선택한 노드로 제한합니다.
이 단계는 Leapp 업그레이드를 위한 Ceph Storage 서비스를 준비하기 위한 사전 조치입니다.
각 컨트롤 플레인 노드에서 운영 체제의 Leapp 업그레이드를 수행합니다.
$ openstack overcloud upgrade run --stack <stack_name> --tags system_upgrade --limit overcloud-controller-0,overcloud-database-0,overcloud-networker-0,overcloud-ceph-0컨트롤 플레인 노드는 Leapp 업그레이드의 일부로 재부팅됩니다.
중요Ceph 노드 업그레이드가 실패하면 나머지 업그레이드를 진행하기 전에
controller-0에서 업그레이드를 완료했는지 확인합니다.기존 노드에서 부트스트랩 노드로 최신 버전의 데이터베이스를 복사합니다.
$ openstack overcloud external-upgrade run --stack <stack_name> --tags system_upgrade_transfer_data중요이 명령을 실행하면 컨트롤 플레인에서 중단됩니다. 다음 몇 단계에서 오버클라우드에서 표준 작업을 수행할 수 없습니다.
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.2 컨테이너를 시작하여 이후 단계에서 컴퓨팅 노드를 업그레이드할 때 워크로드 마이그레이션을 용이하게 합니다.
태그 없이 upgrade 명령을 실행합니다.
$ 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 업그레이드를 수행합니다.
중요이 명령이 완료되면 컨트롤 플레인이 활성화됩니다. 오버클라우드에서 표준 작업을 다시 수행할 수 있습니다.
선택 사항: 부트스트랩 컨트롤러 노드에서 업그레이드 후 새 Pacemaker 클러스터가 시작되고 galera, rabbit, haproxy, redis와 같은 컨트롤 플레인 서비스가 실행 중인지 확인합니다.
$ sudo pcs status
overcloud-controller-1,overcloud-database-1,overcloud-networker-1,overcloud-ceph-1컨트롤 플레인 노드를 업그레이드합니다.overcloud-controller-1노드에 로그인하고 이전 클러스터가 더 이상 실행되지 않는지 확인합니다.$ sudo pcs status클러스터가 실행되지 않으면 다음과 유사한 오류가 표시됩니다.
Error: cluster is not currently running on this nodeceph_systemd태그를 사용하여 외부 upgrade 명령을 실행합니다.$ 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변수를 사용하여 작업을 선택한 노드로 제한합니다.
이 단계는 Leapp 업그레이드를 위한 Ceph Storage 서비스를 준비하기 위한 사전 조치입니다.
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 업그레이드의 일부로 재부팅을 수행합니다.
태그 없이 upgrade 명령을 실행합니다.
$ 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옵션에 포함합니다.
overcloud-controller-2,overcloud-database-2,overcloud-networker-2및overcloud-ceph-2컨트롤 플레인 노드를 업그레이드합니다.overcloud-controller-2노드에 로그인하고 이전 클러스터가 더 이상 실행되지 않는지 확인합니다.$ sudo pcs status클러스터가 실행되지 않으면 다음과 유사한 오류가 표시됩니다.
Error: cluster is not currently running on this nodeceph_systemd태그를 사용하여 외부 upgrade 명령을 실행합니다.$ 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변수를 사용하여 작업을 선택한 노드로 제한합니다.
이 단계는 Leapp 업그레이드를 위한 Ceph Storage 서비스를 준비하기 위한 사전 조치입니다.
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 업그레이드의 일부로 재부팅을 수행합니다.
태그 없이 upgrade 명령을 실행합니다.
$ 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옵션에 모든 컨트롤 플레인 노드를 포함합니다.