11.9. 컨트롤러 노드 교체 후 정리


노드 교체를 완료한 후 컨트롤러 클러스터를 종료할 수 있습니다.

프로세스

  1. 컨트롤러 노드에 로그인합니다.
  2. Galera 클러스터의 Pacemaker 관리를 활성화하고 새 노드에서 Galera를 시작합니다.

    [tripleo-admin@overcloud-controller-0 ~]$ sudo pcs resource refresh galera-bundle
    [tripleo-admin@overcloud-controller-0 ~]$ sudo pcs resource manage galera-bundle
  3. 펜싱을 활성화합니다.

    [tripleo-admin@overcloud-controller-0 ~]$ sudo pcs property set stonith-enabled=true
  4. 최종 상태 검사를 수행하여 서비스가 올바르게 실행 중인지 확인합니다.

    [tripleo-admin@overcloud-controller-0 ~]$ sudo pcs status
    참고

    서비스가 실패한 경우 pcs resource refresh 명령을 사용하여 문제를 해결한 후 실패한 서비스를 다시 시작합니다.

  5. director를 종료합니다.

    [tripleo-admin@overcloud-controller-0 ~]$ exit
  6. 오버클라우드와 상호 작용할 수 있도록 source 명령으로 overcloudrc 파일을 로드합니다.

    $ source ~/overcloudrc
  7. 오버클라우드 환경의 네트워크 에이전트를 확인합니다.

    (overcloud) $ openstack network agent list
  8. 기존 노드의 에이전트가 표시되는 경우 삭제합니다.

    (overcloud) $ for AGENT in $(openstack network agent list --host overcloud-controller-1.localdomain -c ID -f value) ; do openstack network agent delete $AGENT ; done
  9. 필요한 경우 새 노드의 L3 에이전트 호스트에 라우터를 추가합니다. 다음 예제 명령을 사용하여 UUID가 2d1c1dc1-d9d4-4fa9-b2c8-f29cd1a649d4인 L3 에이전트에 r1이라는 라우터를 추가합니다.

    (overcloud) $ openstack network agent add router --l3 2d1c1dc1-d9d4-4fa9-b2c8-f29cd1a649d4 r1
  10. cinder 서비스를 정리합니다.

    1. cinder 서비스를 나열합니다.

      (overcloud) $ openstack volume service list
    2. 컨트롤러 노드에 로그인하고 cinder-api 컨테이너에 연결하고 cinder-manage service remove 명령을 사용하여 남은 서비스를 삭제합니다.

      [tripleo-admin@overcloud-controller-0 ~]$ sudo podman exec -it cinder_api cinder-manage service remove cinder-backup <host>
      [tripleo-admin@overcloud-controller-0 ~]$ sudo podman exec -it cinder_api cinder-manage service remove cinder-scheduler <host>
  11. RabbitMQ 클러스터를 정리합니다.

    1. 컨트롤러 노드에 로그인합니다.
    2. podman exec 명령을 사용하여 bash를 시작하고 RabbitMQ 클러스터의 상태를 확인합니다.

      [tripleo-admin@overcloud-controller-0 ~]$ sudo podman exec -it rabbitmq-bundle-podman-0 bash
      [root@overcloud-controller-0 /]$ rabbitmqctl cluster_status
    3. rabbitmqctl 명령을 사용하여 교체된 컨트롤러 노드를 삭제합니다.

      [root@controller-0 /]$ rabbitmqctl forget_cluster_node <node_name>
  12. 부트스트랩 컨트롤러 노드를 교체한 경우 교체 프로세스 후에 환경 파일 ~/templates/bootstrap-controller.yaml을 제거하거나 기존 환경 파일에서 pacemaker_short_bootstrap_node_namemysql_short_bootstrap_node_name 매개변수를 삭제해야 합니다. 이 단계에서는 director가 후속 교체에서 컨트롤러 노드 이름을 재정의하지 않습니다. 자세한 내용은 부트스트랩 컨트롤러 노드 교체를 참조하십시오.
  13. 오버클라우드에서 Object Storage 서비스(swift)를 사용하는 경우 오버클라우드 노드를 업데이트한 후 swift 링을 동기화해야 합니다. 다음 예제와 유사하게 스크립트를 사용하여 기존 컨트롤러 노드(이 예에서 controller 노드 0)의 링 파일을 모든 컨트롤러 노드에 배포하고 해당 노드에서 Object Storage 서비스 컨테이너를 다시 시작합니다.

    #!/bin/sh
    set -xe
    
    SRC="tripleo-admin@overcloud-controller-0.ctlplane"
    ALL="tripleo-admin@overcloud-controller-0.ctlplane tripleo-admin@overcloud-controller-1.ctlplane tripleo-admin@overcloud-controller-2.ctlplane"
    • 현재 링 파일 세트를 가져옵니다.

      ssh "${SRC}" 'sudo tar -czvf - /var/lib/config-data/puppet-generated/swift_ringbuilder/etc/swift/{*.builder,*.ring.gz,backups/*.builder}' > swift-rings.tar.gz
    • 모든 노드에 링을 업로드하고 올바른 위치에 배치한 후 swift 서비스를 다시 시작합니다.

      for DST in ${ALL}; do
        cat swift-rings.tar.gz | ssh "${DST}" 'sudo tar -C / -xvzf -'
        ssh "${DST}" 'sudo podman restart swift_copy_rings'
        ssh "${DST}" 'sudo systemctl restart tripleo_swift*'
      done
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.