External Load Balancing for the Overcloud


Red Hat OpenStack Platform 8

외부 로드 밸런서를 사용하도록 OpenStack Platform 환경 구성

OpenStack Documentation Team

초록

이 가이드에서는 오버클라우드의 외부 로드 밸런서를 사용하도록 Red Hat OpenStack Platform 환경 구성에 대한 정보를 제공합니다. 여기에는 로드 밸런서에 대한 구성 지침과 OpenStack Platform director를 통한 오버클라우드 설정이 포함됩니다.

1장. 소개

Red Hat OpenStack Platform director는 Overcloud 라는 클라우드 환경을 생성합니다. Overcloud에는 특정 역할을 수행하는 다양한 노드 유형 세트가 포함되어 있습니다. 이러한 노드 유형 중 하나는 컨트롤러 노드입니다. 컨트롤러는 Overcloud 관리를 담당하며 특정 OpenStack 구성 요소를 사용합니다. Overcloud는 여러 컨트롤러를 고가용성 클러스터로 사용하여 OpenStack 서비스의 최대 운영 성능을 보장합니다. 또한 클러스터는 OpenStack 서비스에 대한 액세스를 위한 로드 밸런싱을 제공하므로 컨트롤러 노드에 트래픽을 균등하게 분배하고 각 노드의 서버 과부하를 줄입니다.

외부 로드 밸런서를 사용하여 이 배포를 수행할 수도 있습니다. 예를 들어 조직에서 자체 하드웨어 기반 로드 밸런서를 사용하여 컨트롤러 노드에 대한 트래픽 배포를 처리할 수 있습니다. 이 가이드에서는 외부 로드 밸런서 및 Overcloud 생성 모두에 대한 구성을 정의하는 데 필요한 세부 정보를 제공합니다. 여기에는 다음 프로세스가 포함됩니다.

  1. 로드 밸런서 설치 및 구성 - 이 가이드에는 로드 밸런싱 및 서비스를 위한 몇 가지 HAProxy 옵션이 포함되어 있습니다. 설정을 외부 로드 밸런서와 동일하게 변환합니다.
  2. Overcloud 구성 및 배포 - 이 가이드에는 Overcloud 가 외부 로드 밸런서와 통합되는 데 도움이 되는 몇 가지 Heat 템플릿 매개변수가 포함되어 있습니다. 이는 주로 로드 밸런서 및 잠재적 노드의 IP 주소를 포함합니다. 이 가이드에는 외부 로드 밸런서를 사용하도록 Overcloud 배포 및 해당 구성을 시작하는 명령도 포함되어 있습니다.

1.1. Overcloud에서 Load Balancing 사용

Overcloud는 HAProxy 라는 오픈 소스 툴을 사용합니다. HAProxy는 트래픽을 OpenStack 서비스를 실행하는 컨트롤러 노드에 분산합니다. haproxy 패키지에는 haproxy systemd 서비스에서 시작하여 로깅 기능 및 샘플 구성과 함께 haproxy 데몬이 포함되어 있습니다. 그러나 Overcloud는 고가용성 서비스(haproxy-clone)로 HAProxy 자체를 제어하기 위해 Pacemaker(고가용성 리소스 관리자)를 사용합니다. 즉, HAProxy는 각 컨트롤러 노드에서 실행되고 각 구성에 정의된 규칙 세트에 따라 트래픽을 분산합니다.

1.2. 시나리오 정의

이 문서에서는 다음 시나리오를 예로 사용합니다.

  • HAProxy를 사용하는 외부 로드 대역폭 서버입니다. 이를 통해 페더레이션 HAProxy 서버를 사용하는 방법을 보여줍니다. 지원되는 다른 외부 로드 밸런서에 이를 대체할 수 있습니다.
  • OpenStack Platform director 노드 1개
  • 다음과 같이 구성된 오버클라우드입니다.
  • 고가용성 클러스터의 컨트롤러 노드 3개
  • 컴퓨팅 노드 1개
  • VLAN을 사용한 네트워크 격리

시나리오는 각 네트워크에 대해 다음 IP 주소 할당을 사용합니다.

  • 내부 API: 172.16.20.0/24
  • 테넌트: 172.16.22.0/24
  • 스토리지: 172.16.21.0/24
  • 스토리지 관리: 172.16.19.0/24
  • 외부: 172.16.23.0/24

이러한 IP 범위에는 컨트롤러 노드의 IP 할당과 로드 밸런서가 OpenStack 서비스에 바인딩되는 가상 IP가 포함됩니다.

2장. 기본 구성 정의

외부 로드 밸런서 없이 Overcloud를 생성하고 구성할 때 director는 여러 OpenStack 서비스에 트래픽을 배포하도록 HAProxy를 구성합니다. director는 각 컨트롤러 노드의 /etc/haproxy/haproxy.conf 파일에 이 설정을 제공합니다. 기본 구성에는 global, defaults 및 여러 서비스 구성의 세 가지 주요 부분이 포함되어 있습니다.

다음 몇 섹션에서는 각 구성 섹션의 기본 매개변수를 살펴봅니다. 이는 외부 로드 밸런서를 설치 및 구성하기 위한 구성 설정의 예를 제공합니다. 이러한 매개변수는 전체 HAProxy 매개변수의 일부에 불과합니다. 이러한 매개변수 및 기타 매개변수에 대한 자세한 내용은 컨트롤러 노드의 /usr/share/doc/haproxy-*/configuration.txt (또는 haproxy 패키지가 설치된 시스템)에 있는 "HAProxy 구성 수동"을 참조하십시오.

2.1. 글로벌 구성

global
  daemon
  group  haproxy
  log  /dev/log local0
  maxconn  10000
  pidfile  /var/run/haproxy.pid
  user  haproxy
Copy to Clipboard Toggle word wrap

이 섹션에서는 프로세스 전체 매개변수 세트를 정의합니다. 여기에는 다음이 포함됩니다.

  • daemon: 백그라운드 프로세스로 실행됩니다.
  • user haproxy,group haproxy: 프로세스를 소유한 Linux 사용자 및 그룹을 정의합니다.
  • log: 사용할 syslog 서버를 정의합니다.
  • maxconn: 프로세스에 대한 최대 동시 연결 수를 설정합니다.
  • PIDFILE: 프로세스 ID에 사용할 파일을 설정합니다.

2.2. 기본값 설정

defaults
  log  global
  mode  tcp
  retries  3
  timeout  http-request 10s
  timeout  queue 1m
  timeout  connect 10s
  timeout  client 1m
  timeout  server 1m
  timeout  check 10s
Copy to Clipboard Toggle word wrap

이 섹션에서는 각 서비스에 대한 기본 매개변수 세트를 정의합니다. 여기에는 다음이 포함됩니다.

  • Log: 서비스에 대한 로깅을 활성화합니다. 전역 값은 로깅 함수가 global 섹션의 로그 매개 변수를 사용한다는 것을 의미합니다.
  • mode: 사용할 프로토콜을 설정합니다. 이 경우 기본값은 TCP입니다.
  • retry: 연결 실패를 보고하기 전에 서버에서 수행할 재시도 횟수를 설정합니다.
  • timeout: 특정 함수를 대기할 최대 시간을 설정합니다. 예를 들어 timeout http-request 는 전체 HTTP 요청을 대기할 최대 시간을 설정합니다.

2.3. 서비스 구성

listen ceilometer
  bind 172.16.20.250:8777
  bind 172.16.23.250:8777
  server overcloud-controller-0 172.16.20.150:8777 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8777 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8777 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

기본 파일에는 여러 서비스 구성 섹션이 있습니다. 각 서비스 구성에는 다음이 포함됩니다.

  • listen: 요청을 수신하는 서비스의 이름
  • bind: 서비스가 수신 대기하는 IP 주소 및 TCP 포트 번호입니다.
  • server: 서비스를 제공하는 각 서버의 이름, 서버의 IP 주소 및 수신 포트 및 기타 정보입니다.

위의 예제에서는 ceilometer 서비스의 HAProxy 설정을 보여줍니다. 이 서비스는 ceilometer 서비스가 제공되는 IP 주소와 포트를 식별합니다(172.16.20.2500 및 172.16.23.250에서 포트 8777). HAProxy는 해당 주소에 대한 요청을 overcloud-controller-0 (172.16.20.150:8777), overcloud-controller-1 (172.16.20.151:8777) 또는 overcloud-controller-2 (172.16.0.152:8777)로 전달합니다.

또한 예제 서버 매개변수는 다음을 활성화합니다.

  • Check: 상태 점검 활성화
  • fall 5: 실패한 상태 점검 후 서비스가 종료된 것으로 간주됩니다.
  • 2000년 간: 연속된 두 개의 상태 점검 간격을 2000밀리초(또는 2초)로 설정합니다.
  • 상승 2: 두 개의 성공적인 상태 점검 후 서버는 작동으로 간주됩니다.

각 서비스는 다른 네트워크 트래픽 유형을 나타내는 다른 주소에 바인딩됩니다. 또한 일부 서비스에는 추가 구성 옵션이 포함되어 있습니다. 다음 장에서는 외부 로드 밸런서에 이러한 세부 정보를 복제할 수 있도록 각 특정 서비스 구성을 검사합니다.

3장. 서비스 구성 참조

이 장에서는 로드 밸런싱을 사용하는 Overcloud의 각 특정 서비스에 대한 구성에 대해 간단히 설명합니다. 이 구성을 자체 외부 로드 밸런서를 구성하는 가이드로 사용하십시오. 이러한 매개변수 및 기타 매개변수에 대한 자세한 내용은 컨트롤러 노드의 /usr/share/doc/haproxy-*/configuration.txt (또는 haproxy 패키지가 설치된 시스템)에 있는 "HAProxy 구성 수동"을 참조하십시오.

참고

대부분의 서비스에서는 기본 상태 점검 구성을 사용합니다.

  • 두 연속 상태 점검 간격을 2000밀리초(또는 2초)로 설정합니다.
  • 두 개의 성공적인 상태 점검 후 서버는 작동으로 간주됩니다.
  • 5개의 실패한 상태 점검 후 서비스는 dead로 간주됩니다.

각 서비스에는 기타 정보 섹션의 일부로 기본 상태 점검이 포함됩니다. mysql 서비스 상태 점검의 포트 변형을 확인합니다.

3.1. ceilometer

포트 번호: 8777

바인딩 대상: internal _api, external

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 internal_api

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다.

HAProxy 예:

listen ceilometer
  bind 172.16.20.250:8777
  bind 172.16.23.250:8777
  server overcloud-controller-0 172.16.20.150:8777 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8777 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8777 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

3.2. cinder

포트 번호: 8776

바인딩 대상: internal _api, external

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 internal_api

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다.

HAProxy 예:

listen cinder
  bind 172.16.20.250:8776
  bind 172.16.23.250:8776
  server overcloud-controller-0 172.16.20.150:8776 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8776 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8776 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

3.3. glance_api

포트 번호: 9292

바인딩 대상: 스토리지, 외부

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 스토리지

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다.

HAProxy 예:

listen glance_api
  bind 172.16.23.250:9292
  bind 172.16.21.250:9292
  server overcloud-controller-0 172.16.21.150:9292 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.21.151:9292 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.21.152:9292 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

3.4. glance_registry

포트 번호: 9191

바인딩 대상: internal_api

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 internal_api

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다.

HAProxy 예:

listen glance_registry
  bind 172.16.20.250:9191
  server overcloud-controller-0 172.16.20.150:9191 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:9191 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:9191 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

3.5. heat_api

포트 번호: 8004

바인딩 대상: internal _api, external

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 internal_api

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다.
  • 이 서비스는 기본 TCP 모드 대신 HTTP 모드를 사용합니다.

HAProxy 예:

listen heat_api
  bind 172.16.20.250:8004
  bind 172.16.23.250:8004
  mode http
  server overcloud-controller-0 172.16.20.150:8004 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8004 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8004 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

3.6. heat_cfn

포트 번호: 8000

바인딩 대상: internal _api, external

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 internal_api

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다.

HAProxy 예:

listen heat_cfn
  bind 172.16.20.250:8000
  bind 172.16.23.250:8000
  server overcloud-controller-0 172.16.20.150:8000 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.152:8000 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.151:8000 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

3.7. heat_cloudwatch

포트 번호: 8003

바인딩 대상: internal _api, external

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 internal_api

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다.

HAProxy 예:

listen heat_cloudwatch
  bind 172.16.20.250:8003
  bind 172.16.23.250:8003
  server overcloud-controller-0 172.16.20.150:8003 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8003 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8003 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

3.8. Horizon

포트 번호: 80

바인딩 대상: internal _api, external

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 internal_api

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다.
  • 이 서비스는 기본 TCP 모드 대신 HTTP 모드를 사용합니다.
  • 이 서비스는 UI와의 상호 작용을 위해 쿠키 기반 지속성을 사용합니다.

HAProxy 예:

listen horizon
  bind 172.16.20.250:80
  bind 172.16.23.250:80
  mode http
  cookie SERVERID insert indirect nocache
  server overcloud-controller-0 172.16.20.150:80 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:80 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:80 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

3.9. keystone_admin

포트 번호: 35357

바인딩 대상: internal _api, external

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 internal_api

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다.

HAProxy 예:

listen keystone_admin
  bind 172.16.23.250:35357
  bind 172.16.20.250:35357
  server overcloud-controller-0 172.16.20.150:35357 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:35357 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:35357 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

3.10. keystone_admin_ssh

포트 번호: 22

바인딩 대상: internal_api

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 internal_api

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다.

HAProxy 예:

listen keystone_admin_ssh
  bind 172.16.20.250:22
  server overcloud-controller-0 172.16.20.150:22 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:22 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:22 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

3.11. keystone_public

포트 번호: 5000

바인딩 대상: internal _api, external

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 internal_api

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다.

HAProxy 예:

listen keystone_public
  bind 172.16.20.250:5000
  bind 172.16.23.250:5000
  server overcloud-controller-0 172.16.20.150:5000 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:5000 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:5000 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

3.12. mysql

포트 번호: 3306

바인딩 대상: internal_api

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 internal_api

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다. 그러나 상태 점검에서는 9200 포트를 사용합니다.
  • 이 서비스는 한 번에 하나의 서버에만 부하를 분산합니다.
  • 각 서버는 백업이 아닌 다른 모든 서버를 사용할 수 없는 경우에만 부하 분산에서 사용됩니다.
  • 서버가 다운된 경우 모든 연결이 즉시 종료됩니다.
  • 양쪽에 TCP keepalive 패킷 전송을 활성화합니다.
  • HTTP 프로토콜을 활성화하여 서버 상태를 확인합니다.
  • IP 주소를 저장하도록 고정 테이블을 구성합니다. 이는 지속성을 유지하는 데 도움이 됩니다.
중요

mysql 서비스는 Galera를 사용하여 고가용성 데이터베이스 클러스터를 제공합니다. Galera는 활성/활성 구성을 지원하지만, 잠금 경합을 방지하기 위해 로드 밸런서에서 적용되는 활성/패시브 를 사용하는 것이 좋습니다.

HAProxy 예:

listen mysql
  bind 172.16.20.250:3306
  option tcpka
  option httpchk
  stick on dst
  stick-table type ip size 1000
  timeout client 0
  timeout server 0
  server overcloud-controller-0 172.16.20.150:3306 backup check fall 5 inter 2000 on-marked-down shutdown-sessions port 9200 rise 2
  server overcloud-controller-1 172.16.20.151:3306 backup check fall 5 inter 2000 on-marked-down shutdown-sessions port 9200 rise 2
  server overcloud-controller-2 172.16.20.152:3306 backup check fall 5 inter 2000 on-marked-down shutdown-sessions port 9200 rise 2
Copy to Clipboard Toggle word wrap

3.13. Neutron

포트 번호: 9696

바인딩 대상: internal _api, external

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 internal_api

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다.

HAProxy 예:

listen neutron
  bind 172.16.20.250:9696
  bind 172.16.23.250:9696
  server overcloud-controller-0 172.16.20.150:9696 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:9696 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:9696 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

3.14. nova_ec2

포트 번호: 8773

바인딩 대상: internal _api, external

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 internal_api

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다.

HAProxy 예:

listen nova_ec2
  bind 172.16.20.250:8773
  bind 172.16.23.250:8773
  server overcloud-controller-0 172.16.20.150:8773 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8773 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8773 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

3.15. nova_metadata

포트 번호: 8775

바인딩 대상: internal_api

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 internal_api

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다.

HAProxy 예:

listen nova_metadata
  bind 172.16.20.250:8775
  server overcloud-controller-0 172.16.20.150:8775 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8775 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8775 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

3.16. nova_novncproxy

포트 번호: 6080

바인딩 대상: internal _api, external

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 internal_api

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다.
  • 기본 분산 방법은 라운드 로빈입니다. 그러나 이 서비스에는 소스 방법을 사용합니다. 이 방법은 소스 IP 주소를 해시하고 실행 중인 서버의 총 가중치로 나눕니다. 요청을 수신하는 서버를 지정합니다. 이렇게 하면 서버가 다운되거나 가동되지 않는 한 동일한 클라이언트 IP 주소가 항상 동일한 서버에 도달할 수 있습니다. 실행 중인 서버 수 변경으로 인해 해시 결과가 변경되면 밸런서는 많은 클라이언트를 다른 서버로 리디렉션합니다.

HAProxy 예:

listen nova_novncproxy
  bind 172.16.20.250:6080
  bind 172.16.23.250:6080
  balance source
  server overcloud-controller-0 172.16.20.150:6080 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:6080 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:6080 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

3.17. nova_osapi

포트 번호: 8774

바인딩 대상: internal _api, external

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 internal_api

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다.

HAProxy 예:

listen nova_osapi
  bind 172.16.20.250:8774
  bind 172.16.23.250:8774
  server overcloud-controller-0 172.16.20.150:8774 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8774 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8774 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

3.18. Redis

포트 번호: 6379

바인딩 대상: internal _api(redis 서비스 IP)

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 internal_api

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다.
  • tcp-check send/expect 시퀀스를 사용하여 상태 점검을 수행합니다. 보낼 문자열은 "info\ replication\r\n"이고 응답은 "role:master"입니다.
  • Redis 서비스는 인증을 위해 암호를 사용합니다. 예를 들어 HAProxy 구성은 AUTH 메서드 및 Redis 관리 암호를 사용하여 tcp-check 를 사용합니다. director는 일반적으로 임의의 암호를 생성하지만 사용자 지정 Redis 암호를 정의할 수 있습니다. 자세한 내용은 4.2.2절. “로드 밸런싱 옵션 구성”를 참조하십시오.
  • 기본 분산 방법은 라운드 로빈입니다. 그러나 이 서비스에는 첫 번째 방법을 사용합니다. 이렇게 하면 사용 가능한 연결 슬롯이 있는 첫 번째 서버가 연결을 수신하게 됩니다.

HAProxy 예:

listen redis
  bind 172.16.20.249:6379 transparent
  balance first
  option tcp-check
  tcp-check send AUTH\ p@55w0rd!\r\n
  tcp-check send PING\r\n
  tcp-check expect string +PONG
  tcp-check send info\ replication\r\n
  tcp-check expect string role:master
  tcp-check send QUIT\r\n
  tcp-check expect string +OK
  timeout client 0
  timeout server 0
  server overcloud-controller-0 172.16.20.150:6379 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:6379 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:6379 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

3.19. swift_proxy_server

포트 번호: 8080

바인딩 대상: 스토리지, 외부

대상 네트워크/서버: overcloud-controller-0, overcloud-controller-1 및 overcloud-controller-2의 스토리지

기타 정보:

  • 각 대상 서버는 기본 상태 점검을 사용합니다.

HAProxy 예:

listen swift_proxy_server
  bind 172.16.23.250:8080
  bind 172.16.21.250:8080
  server overcloud-controller-0 172.16.21.150:8080 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.21.151:8080 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.21.152:8080 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

4장. 오버클라우드 구성

이 섹션은 외부 로드 밸런서를 사용하는 오버클라우드 생성 프로세스를 통해 실행됩니다. 여기에는 노드 등록, 네트워크 설정 구성, Overcloud 생성 명령에 필요한 구성 옵션이 포함됩니다.

4.1. 환경 설정

이 섹션에서는 Chapter 5에서 제공되는 프로세스의 컷다운 버전을 사용합니다. Red Hat OpenStack Platform 8 Director 설치 및 사용에서 기본 Overcloud 요구 사항 구성 .

다음 워크플로우를 사용하여 환경을 설정합니다.

  • 노드 정의 템플릿을 생성하고 director에 빈 노드를 등록합니다.
  • 모든 노드의 하드웨어를 검사합니다.
  • 노드를 역할에 수동으로 태그합니다.
  • 플레이버를 생성하고 역할에 태그를 지정합니다.

4.1.1. Stack 사용자 초기화

director 호스트에 stack 사용자로 로그인하고 다음 명령을 실행하여 director 설정을 초기화합니다.

$ source ~/stackrc
Copy to Clipboard Toggle word wrap

이렇게 하면 director의 CLI 툴에 액세스하기 위해 인증 세부 정보가 포함된 환경 변수가 설정됩니다.

4.1.2. 노드 등록

노드 정의 템플릿(instackenv.json)은 JSON 형식 파일이며 노드 등록을 위한 하드웨어 및 전원 관리 세부 정보가 포함되어 있습니다. 예를 들면 다음과 같습니다.

{
    "nodes":[
        {
            "mac":[
                "bb:bb:bb:bb:bb:bb"
            ],
            "cpu":"4",
            "memory":"6144",
            "disk":"40",
            "arch":"x86_64",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"p@55w0rd!",
            "pm_addr":"192.0.2.205"
        },
        {
            "mac":[
                "cc:cc:cc:cc:cc:cc"
            ],
            "cpu":"4",
            "memory":"6144",
            "disk":"40",
            "arch":"x86_64",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"p@55w0rd!",
            "pm_addr":"192.0.2.206"
        },
        {
            "mac":[
                "dd:dd:dd:dd:dd:dd"
            ],
            "cpu":"4",
            "memory":"6144",
            "disk":"40",
            "arch":"x86_64",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"p@55w0rd!",
            "pm_addr":"192.0.2.207"
        },
        {
            "mac":[
                "ee:ee:ee:ee:ee:ee"
            ],
            "cpu":"4",
            "memory":"6144",
            "disk":"40",
            "arch":"x86_64",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"p@55w0rd!",
            "pm_addr":"192.0.2.208"
        }
    ]
}
Copy to Clipboard Toggle word wrap

템플릿을 생성한 후 stack 사용자의 홈 디렉터리(/home/stack/instackenv.json)에 저장한 다음 director로 가져옵니다. 이 작업을 수행하려면 다음 명령을 사용합니다.

$ openstack baremetal import --json ~/instackenv.json
Copy to Clipboard Toggle word wrap

템플릿을 가져오고 템플릿의 각 노드를 director에 등록합니다.

커널 및 램디스크 이미지를 모든 노드에 할당합니다.

$ openstack baremetal configure boot
Copy to Clipboard Toggle word wrap

이제 노드가 director에 등록 및 구성됩니다.

4.1.3. 노드의 하드웨어 검사

노드를 등록한 후 각 노드의 hardware 속성을 검사합니다. 다음 명령을 실행하여 각 노드의 하드웨어 속성을 확인합니다.

$ openstack baremetal introspection bulk start
Copy to Clipboard Toggle word wrap
중요

이 프로세스가 완료되었는지 확인합니다. 베어 메탈 노드의 경우 이 프로세스는 일반적으로 15분 정도 걸립니다.

4.1.4. 수동으로 노드 태그 지정

각 노드의 하드웨어를 등록하고 검사한 후 특정 프로필에 태그를 지정합니다. 이러한 프로필 태그에는 노드에 일치하는 플레이버가 배포 역할에 할당됩니다.

노드 목록을 검색하여 UUID를 확인합니다.

$ ironic node-list
Copy to Clipboard Toggle word wrap

노드를 특정 프로필에 수동으로 태그하려면 profile 옵션을 각 노드의 properties/capabilities 매개변수에 추가합니다. 예를 들어 컨트롤러 프로필과 하나의 노드를 사용하도록 3개의 노드를 태그하여 compute 프로필을 사용하려면 다음 명령을 사용합니다.

$ ironic node-update 1a4e30da-b6dc-499d-ba87-0bd8a3819bc0 add properties/capabilities='profile:control,boot_option:local'
$ ironic node-update 6faba1a9-e2d8-4b7c-95a2-c7fbdc12129a add properties/capabilities='profile:control,boot_option:local'
$ ironic node-update 5e3b2f50-fcd9-4404-b0a2-59d79924b38e add properties/capabilities='profile:control,boot_option:local'
$ ironic node-update 58c3d07e-24f2-48a7-bbb6-6843f0e8ee13 add properties/capabilities='profile:compute,boot_option:local'
Copy to Clipboard Toggle word wrap

profile:computeprofile:control 옵션을 추가하면 노드를 각 프로필에 태그합니다.

4.2. 네트워크 구성

이 섹션에서는 Overcloud의 네트워크 구성을 검토합니다. 여기에는 특정 네트워크 트래픽을 사용하고 로드 밸런싱 옵션으로 Overcloud를 구성하기 위해 서비스를 격리하는 작업이 포함됩니다.

4.2.1. 네트워크 격리

director는 분리된 오버클라우드 네트워크를 구성하는 방법을 제공합니다. 즉, Overcloud 환경은 네트워크 트래픽 유형을 다른 네트워크로 분리하여 네트워크 트래픽을 특정 네트워크 인터페이스 또는 본딩에 할당합니다. 분리된 네트워크를 구성한 후 director는 격리된 네트워크를 사용하도록 OpenStack 서비스를 구성합니다. 격리된 네트워크가 구성되지 않은 경우 모든 서비스가 프로비저닝 네트워크에서 실행됩니다.

먼저 Overcloud에는 네트워크 인터페이스 템플릿 세트가 필요합니다. 이러한 템플릿을 사용자 지정하여 역할별로 노드 인터페이스를 구성합니다. 이러한 템플릿은 YAML 형식의 표준 Heat 템플릿입니다. director에는 시작하기 위한 예제 템플릿 세트가 포함되어 있습니다.

  • /usr/share/openstack-tripleo-heat-templates/network/config/single-nic-vlans - 역할별로 VLAN을 구성하는 단일 NIC에 대한 템플릿이 포함된 디렉터리입니다.
  • /usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans - 역할별로 결합된 NIC 구성에 대한 템플릿이 포함된 디렉터리입니다.

네트워크 인터페이스 구성에 대한 자세한 내용은 6.2를 참조하십시오. Red Hat OpenStack Platform 8 Director 설치 및사용의 네트워크 격리

다음으로 네트워크 환경 파일을 만듭니다. 이 파일은 Overcloud의 네트워크 환경을 설명하고 네트워크 인터페이스 구성 템플릿을 가리키는 Heat 환경 파일입니다. 이 파일은 또한 IP 주소 범위와 함께 네트워크의 서브넷 및 VLAN을 정의합니다. 로컬 환경에 대해 이러한 값을 사용자 지정합니다.

이 시나리오에서는 /home/stack/network-environment.yaml 로 저장된 다음 네트워크 환경 파일을 사용합니다.

resource_registry:
  OS::TripleO::BlockStorage::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/cinder-storage.yaml
  OS::TripleO::Compute::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/compute.yaml
  OS::TripleO::Controller::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/controller.yaml
  OS::TripleO::ObjectStorage::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/swift-storage.yaml
  OS::TripleO::CephStorage::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/ceph-storage.yaml

parameter_defaults:
  InternalApiNetCidr: 172.16.20.0/24
  TenantNetCidr: - 172.16.22.0/24
  StorageNetCidr: 172.16.21.0/24
  StorageMgmtNetCidr: 172.16.19.0/24
  ExternalNetCidr: 172.16.23.0/24
  InternalApiAllocationPools: [{'start': '172.16.20.10', 'end': '172.16.20.200'}]
  TenantAllocationPools: [{'start': '172.16.22.10', 'end': '172.16.22.200'}]
  StorageAllocationPools: [{'start': '172.16.21.10', 'end': '172.16.21.200'}]
  StorageMgmtAllocationPools: [{'start': '172.16.19.10', 'end': '172.16.19.200'}]
  # Leave room for floating IPs in the External allocation pool
  ExternalAllocationPools: [{'start': '172.16.23.10', 'end': '172.16.23.60'}]
  # Set to the router gateway on the external network
  ExternalInterfaceDefaultRoute: 172.16.23.1
  # Gateway router for the provisioning network (or Undercloud IP)
  ControlPlaneDefaultRoute: 192.0.2.254
  # The IP address of the EC2 metadata server. Generally the IP of the Undercloud
  EC2MetadataIp: 192.0.2.1
  # Define the DNS servers (maximum 2) for the overcloud nodes
  DnsServers: ["8.8.8.8","8.8.4.4"]
  InternalApiNetworkVlanID: 201
  StorageNetworkVlanID: 202
  StorageMgmtNetworkVlanID: 203
  TenantNetworkVlanID: 204
  ExternalNetworkVlanID: 100
  # Set to "br-ex" if using floating IPs on native VLAN on bridge br-ex
  NeutronExternalNetworkBridge: "''"
  # Customize bonding options if required
  BondInterfaceOvsOptions:
    "bond_mode=balance-tcp lacp=active other-config:lacp-fallback-ab=true"
Copy to Clipboard Toggle word wrap

네트워크 환경 구성에 대한 자세한 내용은 6.2를 참조하십시오. Red Hat OpenStack Platform 8 Director 설치 및 사용 가이드의 네트워크 분리.

keystone_admin_ssh VIP에 연결할 수 있도록 director 호스트가 내부 API 네트워크에 액세스할 수 있는지 확인합니다.

4.2.2. 로드 밸런싱 옵션 구성

director는 외부 로드 밸런서가 HAProxy를 내부적으로 관리하는 대신 가상 IP를 호스팅하는 Overcloud를 생성하는 방법을 제공합니다. 이 구성에서는 Overcloud 배포가 시작되기 전에 여러 가상 IP가 격리된 네트워크당 하나 이상 Redis 서비스용으로 구성된 외부 로드 밸런서에 구성된 것으로 가정합니다. Overcloud 노드 NIC 구성이 허용하는 경우 일부 가상 IP가 같을 수 있습니다.

이전 장의 설정을 사용하여 외부 로드 밸런서를 구성했습니다. 이러한 설정에는 director가 Overcloud 노드에 할당하고 서비스 설정에 사용하는 IP가 포함됩니다.

다음은 외부 로드 밸런서를 사용하는 오버클라우드 구성이 포함된 Heat 환경 파일(external-lb.yaml)의 예입니다.

parameter_defaults:
  # The VIP that the balancer holds on the ControlPlane.
  ControlPlaneIP: 192.0.2.250
  # The VIPs that the balancer holds for each network. These are the addresses previously binded in the load balancing configuration.
  ExternalNetworkVip: 172.16.23.250
  InternalApiNetworkVip: 172.16.20.250
  StorageNetworkVip: 172.16.21.250
  StorageMgmtNetworkVip: 172.16.19.250
  # The VIP which the balancer holds, on the InternalApi, for the Redis service.
  ServiceVips:
    redis: 172.16.20.249
  # IPs assignments for the Overcloud Controller nodes. Ensure these IPs are from each respective allocation pools defined in the network environment file.
  ControllerIPs:
    external:
    - 172.16.23.150
    - 172.16.23.151
    - 172.16.23.152
    internal_api:
    - 172.16.20.150
    - 172.16.20.151
    - 172.16.20.152
    storage:
    - 172.16.21.150
    - 172.16.21.151
    - 172.16.21.152
    storage_mgmt:
    - 172.16.19.150
    - 172.16.19.151
    - 172.16.19.152
    tenant:
    - 172.16.22.150
    - 172.16.22.151
    - 172.16.22.152
    # CIDRs
    external_cidr: "24"
    internal_api_cidr: "24"
    storage_cidr: "24"
    storage_mgmt_cidr: "24"
    tenant_cidr: "24"
  RedisPassword: p@55w0rd!
  ServiceNetMap:
    NeutronTenantNetwork: tenant
    CeilometerApiNetwork: internal_api
    MongoDbNetwork: internal_api
    CinderApiNetwork: internal_api
    CinderIscsiNetwork: storage
    GlanceApiNetwork: storage
    GlanceRegistryNetwork: internal_api
    KeystoneAdminApiNetwork: internal_api
    KeystonePublicApiNetwork: internal_api
    NeutronApiNetwork: internal_api
    HeatApiNetwork: internal_api
    NovaApiNetwork: internal_api
    NovaMetadataNetwork: internal_api
    NovaVncProxyNetwork: internal_api
    SwiftMgmtNetwork: storage_mgmt
    SwiftProxyNetwork: storage
    HorizonNetwork: internal_api
    MemcachedNetwork: internal_api
    RabbitMqNetwork: internal_api
    RedisNetwork: internal_api
    MysqlNetwork: internal_api
    CephClusterNetwork: storage_mgmt
    CephPublicNetwork: storage
    ControllerHostnameResolveNetwork: internal_api
    ComputeHostnameResolveNetwork: internal_api
    BlockStorageHostnameResolveNetwork: internal_api
    ObjectStorageHostnameResolveNetwork: internal_api
    CephStorageHostnameResolveNetwork: storage
Copy to Clipboard Toggle word wrap

parameter_defaults 섹션에는 OpenStack의 각 네트워크에 대한 VIP 및 IP 할당이 포함되어 있습니다. 이러한 설정은 로드 밸런서의 각 서비스에 대해 동일한 IP 구성과 일치해야 합니다. 이 섹션에서는 Redis 서비스(RedisPassword)의 관리 암호도 정의합니다. 이 섹션에는 각 OpenStack 서비스를 특정 네트워크에 매핑하는 ServiceNetMap 매개변수도 포함되어 있습니다. 로드 밸런싱 구성을 사용하려면 이 서비스를 다시 매핑해야 합니다.

4.3. 로드 밸런싱을 위한 SSL 구성

Overcloud는 기본적으로 서비스에 암호화되지 않은 엔드포인트를 사용합니다. 즉, Overcloud 구성에 엔드포인트에 대해 SSL/TLS를 활성화하려면 추가 환경 파일이 필요합니다.

참고

외부 로드 밸런서에 SSL 인증서 및 키의 사본이 설치되어 있는지 확인합니다.

Heat 템플릿 컬렉션에서 enable-tls.yaml 환경 파일을 복사합니다.

$ cp -r /usr/share/openstack-tripleo-heat-templates/environments/enable-tls.yaml ~/templates/.
Copy to Clipboard Toggle word wrap

이 파일을 편집하고 다음을 수행합니다.

  • parameter_defaults 섹션에서 SSLCertificate,SSLIntermediateCertificateSSLKey 를 제거합니다.
  • resource_registry 섹션을 완전히 제거합니다.
  • 남은 것은 parameter_defaultsEndpointMap 매개변수입니다. EndpointMap 에는 HTTPS 및 HTTP 통신을 사용하는 서비스 매핑이 포함되어 있습니다. SSL 통신에 DNS를 사용하는 경우 이 섹션을 기본값으로 둡니다. 그러나 SSL 인증서의 일반 이름에 IP 주소를 사용하는 경우 CLOUDNAME 의 모든 인스턴스를 IP_ADDRESS 로 바꿉니다. 이 작업을 수행하려면 다음 명령을 사용합니다.

    $ sed -i 's/CLOUDNAME/IP_ADDRESS/' ~/templates/enable-tls.yaml
    Copy to Clipboard Toggle word wrap
    중요

    실제 값은 IP_ADDRESS 또는 CLOUDNAME 을 대체하지 마십시오. Heat는 오버클라우드 생성 중에 이러한 변수를 적절한 값으로 바꿉니다.

자체 서명된 인증서 또는 인증서 서명자가 Overcloud 이미지의 기본 신뢰 저장소에 없는 경우 인증서를 Overcloud 이미지에 삽입합니다. Heat 템플릿 컬렉션에서 inject-trust-anchor.yaml 환경 파일을 복사합니다.

$ cp -r /usr/share/openstack-tripleo-heat-templates/environments/inject-trust-anchor.yaml ~/templates/.
Copy to Clipboard Toggle word wrap

이 파일을 편집하고 이러한 매개변수에 대해 다음과 같이 변경합니다.

SSLRootCertificate

루트 인증 기관 파일의 내용을 SSLRootCertificate 매개변수에 복사합니다. 예를 들면 다음과 같습니다.

parameter_defaults:
  SSLRootCertificate: |
  -----BEGIN CERTIFICATE-----
  MIIDgzCCAmugAwIBAgIJAKk46qw6ncJaMA0GCSqGSIb3DQEBCwUAMFgxCzAJBgNV
  ...
  sFW3S2roS4X0Af/kSSD8mlBBTFTCMBAj6rtLBKLaQbIxEpIzrgvp
  -----END CERTIFICATE-----
Copy to Clipboard Toggle word wrap
중요

인증 기관 콘텐츠에는 모든 새 행에 대해 동일한 들여쓰기 수준이 필요합니다.

OS::TripleO::NodeTLSCAData

OS::TripleO::NodeTLSCAData: 의 리소스 URL을 절대 URL로 변경합니다.

resource_registry:
     OS::TripleO::NodeTLSCAData: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/tls/ca-inject.yaml
Copy to Clipboard Toggle word wrap

DNS 호스트 이름을 사용하여 SSL/TLS를 통해 Overcloud에 액세스하는 경우 새 환경 파일(~/templates/cloudname.yaml)을 생성하여 Overcloud 엔드포인트의 호스트 이름을 정의합니다. 다음 매개변수를 사용합니다.

CloudName
Overcloud 엔드포인트의 DNS 호스트 이름입니다.
DnsServers
사용할 DNS 서버 목록입니다. 구성된 DNS 서버에는 공용 API의 IP와 일치하는 구성된 CloudName 항목이 포함되어야 합니다.

다음은 이 파일의 내용 예입니다.

parameter_defaults:
 CloudName: overcloud.example.com
 DnsServers: 10.0.0.1
Copy to Clipboard Toggle word wrap

4.4절. “오버클라우드 생성” 의 배포 명령(openstack overcloud deploy)은 -e 옵션을 사용하여 환경 파일을 추가합니다. 다음 순서로 이 섹션의 환경 파일을 추가합니다.

  • SSL/TLS를 활성화하는 환경 파일(enable-tls.yaml)
  • DNS 호스트 이름을 설정하는 환경 파일 (cloudname.yaml)
  • 루트 인증 기관을 삽입할 환경 파일(inject-trust-anchor.yaml)

예를 들면 다음과 같습니다.

$ openstack overcloud deploy --templates [...] -e /home/stack/templates/enable-tls.yaml -e ~/templates/cloudname.yaml -e ~/templates/inject-trust-anchor.yaml
Copy to Clipboard Toggle word wrap

4.4. 오버클라우드 생성

외부 로드 밸런서를 사용하는 Overcloud를 생성하려면 openstack overcloud deploy 명령에 추가 인수가 필요합니다. 예를 들면 다음과 같습니다.

$ openstack overcloud deploy --templates -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml -e ~/network-environment.yaml  -e /usr/share/openstack-tripleo-heat-templates/environments/external-loadbalancer-vip.yaml -e ~/external-lb.yaml --control-scale 3 --compute-scale 1 --control-flavor control --compute-flavor compute [ADDITIONAL OPTIONS]
Copy to Clipboard Toggle word wrap

위의 명령은 다음 옵션을 사용합니다.

  • --templates - 기본 Heat 템플릿 컬렉션에서 Overcloud를 생성합니다.
  • -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml - Overcloud 배포에 추가 환경 파일을 추가합니다. 이 경우 네트워크 격리 구성을 초기화하는 환경 파일입니다.
  • -e ~/network-environment.yaml - Overcloud 배포에 추가 환경 파일을 추가합니다. 이 경우 이전에 생성한 네트워크 환경 파일입니다.
  • -e /usr/share/openstack-tripleo-heat-templates/environments/external-loadbalancer-vip.yaml - 오버클라우드 배포에 추가 환경 파일을 추가합니다. 이 경우 외부 로드 밸런싱 구성을 초기화하는 환경 파일입니다. 네트워크 구성 파일 뒤에 이 환경 파일을 포함해야 합니다.
  • -e ~/external-lb.yaml - Overcloud 배포에 추가 환경 파일을 추가합니다. 이 경우 외부 로드 밸런서 구성이 포함된 환경 파일입니다. 네트워크 구성 파일 뒤에 이 환경 파일을 포함해야 합니다.
  • --control-scale 3 - 컨트롤러 노드를 3개로 확장합니다.
  • --compute-scale 3 - 컴퓨팅 노드를 3개로 확장합니다.
  • --control-flavor control - 컨트롤러 노드에 특정 플레이버를 사용합니다.
  • --compute-flavor compute - 컴퓨팅 노드에 특정 플레이버를 사용합니다.
참고

전체 옵션 목록은 다음을 실행합니다.

$ openstack help overcloud deploy
Copy to Clipboard Toggle word wrap

7.1도 참조하십시오. 매개 변수 예제는 Red Hat OpenStack Platform 8 Director 설치 및 사용 가이드에서 Overcloud Parameters 를 설정합니다.

Overcloud 생성 프로세스가 시작되고 director가 노드를 프로비저닝합니다. 이 프로세스를 완료하는 데 시간이 다소 걸립니다. Overcloud 생성 상태를 보려면 stack 사용자로 별도의 터미널을 열고 다음을 실행합니다.

$ source ~/stackrc
$ heat stack-list --show-nested
Copy to Clipboard Toggle word wrap

4.5. 오버클라우드 액세스

director는 director 호스트에서 Overcloud와의 상호 작용을 구성하고 인증을 지원하는 스크립트를 생성합니다. director는 overcloudrc 파일을 stack 사용자의 홈 디렉터리에 저장합니다. 이 파일을 사용하려면 다음 명령을 실행합니다.

$ source ~/overcloudrc
Copy to Clipboard Toggle word wrap

이렇게 하면 director 호스트의 CLI에서 Overcloud와 상호 작용하는 데 필요한 환경 변수가 로드됩니다. director 호스트와의 상호 작용으로 돌아가려면 다음 명령을 실행합니다.

$ source ~/stackrc
Copy to Clipboard Toggle word wrap

4.6. 오버클라우드 구성 완료

이렇게 하면 Advanced Overcloud 생성이 완료됩니다.

고가용성 클러스터를 펜싱하는 경우 8.6을 참조하십시오. Red Hat OpenStack Platform 8 Director 설치 및 사용 가이드에서 컨트롤러 노드 를 펜싱합니다.

생성 후 기능에 대해서는 Chapter 8을 참조하십시오. Red Hat OpenStack Platform 8 Director 설치 및 사용 가이드에서 오버클라우드 생성 후 작업 수행.

부록 A. 기본 HAProxy 구성 예

다음은 Overcloud 컨트롤러 노드의 HAProxy에 대한 기본 구성 파일의 예입니다. 이 파일은 각 컨트롤러 노드의 /etc/haproxy/haproxy.conf 에 있습니다.

global
  daemon
  group  haproxy
  log  /dev/log local0
  maxconn  10000
  pidfile  /var/run/haproxy.pid
  user  haproxy

defaults
  log  global
  mode  tcp
  retries  3
  timeout  http-request 10s
  timeout  queue 1m
  timeout  connect 10s
  timeout  client 1m
  timeout  server 1m
  timeout  check 10s

listen ceilometer
  bind 172.16.20.250:8777
  bind 172.16.23.250:8777
  server overcloud-controller-0 172.16.20.150:8777 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8777 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8777 check fall 5 inter 2000 rise 2

listen cinder
  bind 172.16.20.250:8776
  bind 172.16.23.250:8776
  server overcloud-controller-0 172.16.20.150:8776 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8776 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8776 check fall 5 inter 2000 rise 2

listen glance_api
  bind 172.16.23.250:9292
  bind 172.16.21.250:9292
  server overcloud-controller-0 172.16.21.150:9292 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.21.151:9292 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.21.152:9292 check fall 5 inter 2000 rise 2

listen glance_registry
  bind 172.16.20.250:9191
  server overcloud-controller-0 172.16.20.150:9191 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:9191 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:9191 check fall 5 inter 2000 rise 2

listen heat_api
  bind 172.16.20.250:8004
  bind 172.16.23.250:8004
  mode http
  server overcloud-controller-0 172.16.20.150:8004 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8004 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8004 check fall 5 inter 2000 rise 2

listen heat_cfn
  bind 172.16.20.250:8000
  bind 172.16.23.250:8000
  server overcloud-controller-0 172.16.20.150:8000 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.152:8000 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.151:8000 check fall 5 inter 2000 rise 2

listen heat_cloudwatch
  bind 172.16.20.250:8003
  bind 172.16.23.250:8003
  server overcloud-controller-0 172.16.20.150:8003 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8003 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8003 check fall 5 inter 2000 rise 2

listen horizon
  bind 172.16.20.250:80
  bind 172.16.23.250:80
  mode http
  cookie SERVERID insert indirect nocache
  server overcloud-controller-0 172.16.20.150:80 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:80 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:80 check fall 5 inter 2000 rise 2

listen keystone_admin
  bind 172.16.23.250:35357
  bind 172.16.20.250:35357
  server overcloud-controller-0 172.16.20.150:35357 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:35357 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:35357 check fall 5 inter 2000 rise 2

listen keystone_admin_ssh
  bind 172.16.20.250:22
  server overcloud-controller-0 172.16.20.150:22 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:22 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:22 check fall 5 inter 2000 rise 2

listen keystone_public
  bind 172.16.20.250:5000
  bind 172.16.23.250:5000
  server overcloud-controller-0 172.16.20.150:5000 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:5000 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:5000 check fall 5 inter 2000 rise 2

listen mysql
  bind 172.16.20.250:3306
  option tcpka
  option httpchk
  stick on dst
  stick-table type ip size 1000
  timeout client 0
  timeout server 0
  server overcloud-controller-0 172.16.20.150:3306 backup check fall 5 inter 2000 on-marked-down shutdown-sessions port 9200 rise 2
  server overcloud-controller-1 172.16.20.151:3306 backup check fall 5 inter 2000 on-marked-down shutdown-sessions port 9200 rise 2
  server overcloud-controller-2 172.16.20.152:3306 backup check fall 5 inter 2000 on-marked-down shutdown-sessions port 9200 rise 2

listen neutron
  bind 172.16.20.250:9696
  bind 172.16.23.250:9696
  server overcloud-controller-0 172.16.20.150:9696 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:9696 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:9696 check fall 5 inter 2000 rise 2

listen nova_ec2
  bind 172.16.20.250:8773
  bind 172.16.23.250:8773
  server overcloud-controller-0 172.16.20.150:8773 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8773 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8773 check fall 5 inter 2000 rise 2

listen nova_metadata
  bind 172.16.20.250:8775
  server overcloud-controller-0 172.16.20.150:8775 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8775 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8775 check fall 5 inter 2000 rise 2

listen nova_novncproxy
  bind 172.16.20.250:6080
  bind 172.16.23.250:6080
  balance source
  server overcloud-controller-0 172.16.20.150:6080 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:6080 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:6080 check fall 5 inter 2000 rise 2

listen nova_osapi
  bind 172.16.20.250:8774
  bind 172.16.23.250:8774
  server overcloud-controller-0 172.16.20.150:8774 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8774 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8774 check fall 5 inter 2000 rise 2

listen redis
  bind 172.16.20.249:6379
  balance first
  option tcp-check
  tcp-check send info\ replication\r\n
  tcp-check expect string role:master
  timeout client 0
  timeout server 0
  server overcloud-controller-0 172.16.20.150:6379 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:6379 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:6379 check fall 5 inter 2000 rise 2

listen swift_proxy_server
  bind 172.16.23.250:8080
  bind 172.16.21.250:8080
  server overcloud-controller-0 172.16.21.150:8080 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.21.151:8080 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.21.152:8080 check fall 5 inter 2000 rise 2
Copy to Clipboard Toggle word wrap

법적 공지

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동