오버클라우드의 External Load Balancing
외부 로드 밸런서를 사용하도록 Red Hat OpenStack Platform 환경 구성
초록
보다 포괄적 수용을 위한 오픈 소스 용어 교체 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.
Red Hat 문서에 관한 피드백 제공 링크 복사링크가 클립보드에 복사되었습니다!
문서 개선을 위한 의견을 보내 주십시오. 어떻게 하면 더 잘할 수 있는지 알려주십시오.
DDF( Direct Documentation Feedback) 기능 사용
특정 문장, 단락 또는 코드 블록에 대한 직접 의견을 받으려면 피드백 DDF 추가 기능을 사용하십시오.
- 다중 페이지 HTML 형식으로 문서를 봅니다.
- 문서 오른쪽 상단에 Feedback 버튼이 표시되는지 확인합니다.
- 주석 처리하려는 텍스트 부분을 강조 표시합니다.
- 피드백 추가를 클릭합니다.
- 의견을 사용하여 피드백 추가 필드를 완료합니다.
- 선택 사항: 문서 팀이 문제에 대한 명확히 알릴 수 있도록 이메일 주소를 추가합니다.
- Submit 을 클릭합니다.
1장. 외부 로드 밸런서를 사용하도록 오버클라우드 구성 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform)에서 오버클라우드는 여러 Controller 노드를 고가용성 클러스터로 함께 사용하여 OpenStack 서비스의 운영 성능을 극대화합니다. 또한 클러스터는 OpenStack 서비스에 대한 부하 분산을 제공하여 트래픽을 컨트롤러 노드에 균등하게 분산하고 각 노드의 서버 과부하를 줄입니다.
기본적으로 오버클라우드는 HAProxy라는 오픈 소스 툴을 사용하여 로드 밸런싱을 관리합니다. HAProxy는 OpenStack 서비스를 실행하는 컨트롤러 노드에 대한 트래픽을 부하 분산합니다. haproxy 패키지에는 들어오는 트래픽을 수신 대기하는 haproxy 데몬과 로깅 기능 및 샘플 구성이 포함되어 있습니다.
또한 오버클라우드는 고가용성 리소스 관리자 Pacemaker를 사용하여 HAProxy를 고가용성 서비스로 제어합니다. 즉, HAProxy는 각 컨트롤러 노드에서 실행되고 각 구성에서 정의한 규칙 세트에 따라 트래픽을 분산합니다.
외부 로드 밸런서를 사용하여 이 배포를 수행할 수도 있습니다. 예를 들어 조직에서 전용 하드웨어 기반 로드 밸런서를 사용하여 컨트롤러 노드의 트래픽 배포를 처리할 수 있습니다. 외부 로드 밸런서 및 오버클라우드 생성에 대한 구성을 정의하려면 다음 프로세스를 수행합니다.
- 외부 로드 밸런서를 설치하고 구성합니다.
- 오버클라우드를 외부 로드 밸런서와 통합하기 위해 heat 템플릿 매개 변수를 사용하여 오버클라우드를 구성하고 배포합니다. 이를 위해서는 로드 밸런서 및 잠재적인 노드의 IP 주소가 필요합니다.
외부 로드 밸런서를 사용하도록 오버클라우드를 구성하기 전에 오버클라우드에서 고가용성을 배포하고 실행해야 합니다.
1.1. 외부 로드 밸런서를 위한 환경 준비 링크 복사링크가 클립보드에 복사되었습니다!
외부 로드 밸런서를 위해 환경을 준비하려면 먼저 노드 정의 템플릿을 생성하고 director에 빈 노드를 등록합니다. 그런 다음 모든 노드의 하드웨어를 검사하고 수동으로 노드를 프로필에 태그합니다.
다음 워크플로우를 사용하여 환경을 준비합니다.
-
노드 정의 템플릿을 생성하고 Red Hat OpenStack Platform director에 빈 노드를 등록합니다. 노드 정의 템플릿
instackenv.json은 JSON 형식 파일이며 노드를 등록할 하드웨어 및 전원 관리 세부 정보가 포함되어 있습니다. - 모든 노드의 하드웨어를 검사합니다. 이렇게 하면 모든 노드가 manageable 상태가 됩니다.
- 노드를 프로필에 수동으로 태그합니다. 이러한 프로필 태그는 노드와 플레이버와 일치합니다. 그러면 플레이버가 배포 역할에 할당됩니다.
절차
director 호스트에
stack사용자로 로그인하고 director 자격 증명을 가져옵니다.source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow instackenv.json에서 노드 정의 템플릿을 생성하고 사용자 환경에 따라 다음 예제를 복사하고 편집합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow stack사용자의 홈 디렉터리인/home/stack/instackenv.json에 파일을 저장한 다음 director로 가져와서 노드를 director에 등록합니다.openstack overcloud node import ~/instackenv.json
$ openstack overcloud node import ~/instackenv.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 커널 및 램디스크 이미지를 모든 노드에 할당합니다.
openstack overcloud node configure
$ openstack overcloud node configureCopy to Clipboard Copied! Toggle word wrap Toggle overflow 각 노드의 하드웨어 속성을 검사합니다.
openstack overcloud node introspect --all-manageable
$ openstack overcloud node introspect --all-manageableCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요노드가 manageable 상태에 있어야 합니다. 이 프로세스가 완료되었는지 확인합니다. 베어 메탈 노드의 경우 이 프로세스는 일반적으로 15분 정도 걸립니다.
노드 목록을 가져와 해당 UUID를 확인합니다.
openstack baremetal node list
$ openstack baremetal node listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 각 노드의
properties/capabilities매개변수에 profile 옵션을 추가하여 각 노드를 특정 프로필에 수동으로 태그합니다. 예를 들어 컨트롤러 프로필과 컴퓨팅 프로필을 사용하려면 하나의 노드를 사용하도록 세 개의 노드를 태그하려면 다음 명령을 사용합니다.openstack baremetal node set 1a4e30da-b6dc-499d-ba87-0bd8a3819bc0 --property capabilities='profile:control,boot_option:local' openstack baremetal node set 6faba1a9-e2d8-4b7c-95a2-c7fbdc12129a --property capabilities='profile:control,boot_option:local' openstack baremetal node set 5e3b2f50-fcd9-4404-b0a2-59d79924b38e --property capabilities='profile:control,boot_option:local' openstack baremetal node set 58c3d07e-24f2-48a7-bbb6-6843f0e8ee13 --property capabilities='profile:compute,boot_option:local'
$ openstack baremetal node set 1a4e30da-b6dc-499d-ba87-0bd8a3819bc0 --property capabilities='profile:control,boot_option:local' $ openstack baremetal node set 6faba1a9-e2d8-4b7c-95a2-c7fbdc12129a --property capabilities='profile:control,boot_option:local' $ openstack baremetal node set 5e3b2f50-fcd9-4404-b0a2-59d79924b38e --property capabilities='profile:control,boot_option:local' $ openstack baremetal node set 58c3d07e-24f2-48a7-bbb6-6843f0e8ee13 --property capabilities='profile:compute,boot_option:local'Copy to Clipboard Copied! Toggle word wrap Toggle overflow profile:compute및profile:control옵션은 각 해당 프로필에 노드를 태그합니다.
1.2. 외부 로드 밸런서에 대한 오버클라우드 네트워크 구성 링크 복사링크가 클립보드에 복사되었습니다!
오버클라우드의 네트워크를 구성하려면 특정 네트워크 트래픽을 사용하도록 서비스를 격리한 다음 로컬 환경에 대한 네트워크 환경 파일을 구성합니다. 이 파일은 오버클라우드 네트워크 환경을 설명하고 네트워크 인터페이스 구성 템플릿을 가리키며 네트워크 및 IP 주소 범위의 서브넷 및 VLAN을 정의하는 heat 환경 파일입니다.
절차
각 역할에 대한 노드 인터페이스를 구성하려면 다음 네트워크 인터페이스 템플릿을 사용자 지정합니다.
각 역할에 대해 단일 NIC를 사용하여 VLAN을 구성하려면 다음 디렉터리에서 예제 템플릿을 사용합니다.
/usr/share/openstack-tripleo-heat-templates/network/config/single-nic-vlans
/usr/share/openstack-tripleo-heat-templates/network/config/single-nic-vlansCopy to Clipboard Copied! Toggle word wrap Toggle overflow 각 역할에 대해 결합된 NIC를 구성하려면 다음 디렉터리에서 예제 템플릿을 사용합니다.
/usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans
/usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlansCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
/home/stack/network-environment.yaml에서 파일을 복사하고 환경에 따라 콘텐츠를 편집하여 네트워크 환경 파일을 생성합니다.
1.3. 외부 로드 밸런서 환경 파일 생성 링크 복사링크가 클립보드에 복사되었습니다!
외부 로드 밸런서를 사용하여 오버클라우드를 배포하려면 필요한 구성으로 새 환경 파일을 생성합니다. 이 예제 파일에서는 여러 가상 IP가 외부 로드 밸런서에 구성되어 있으며, Overcloud 배포를 시작하기 전에 여러 가상 IP가 격리된 각 네트워크에 하나의 가상 IP를, Redis 서비스용으로 하나씩 구성됩니다. 오버클라우드 노드 NIC 구성이 구성을 지원하는 경우 일부 가상 IP가 같을 수 있습니다.
절차
다음 예제 환경 파일
external-lb.yaml을 사용하여 환경 파일을 생성하고 환경에 따라 콘텐츠를 편집합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고-
parameter_defaults섹션에는 각 네트워크의 VIP 및 IP 할당이 포함되어 있습니다. 이러한 설정은 로드 밸런서의 각 서비스에 대해 동일한 IP 구성과 일치해야 합니다. -
parameter_defaults섹션에서는 Redis 서비스(RedisPassword)의 관리 암호를 정의하고 각 OpenStack 서비스를 특정 네트워크에 매핑하는ServiceNetMap매개 변수를 포함합니다. 로드 밸런싱 구성에 이 서비스를 다시 매핑해야 합니다.
-
1.4. 외부 로드 밸런싱을 위한 SSL 구성 링크 복사링크가 클립보드에 복사되었습니다!
외부 로드 밸런서에 대해 암호화된 끝점을 구성하려면 SSL이 끝점에 액세스할 수 있는 추가 환경 파일을 만든 다음, 외부 로드 밸런싱 서버에 SSL 인증서 및 키 사본을 설치합니다. 기본적으로 오버클라우드는 암호화되지 않은 끝점 서비스를 사용합니다.
사전 요구 사항
IP 주소 또는 도메인 이름을 사용하여 공용 엔드포인트에 액세스하는 경우 오버클라우드 배포에 포함할 다음 환경 파일 중 하나를 선택합니다.
-
도메인 이름 서비스(DNS)를 사용하여 공용 엔드포인트에 액세스하려면
/usr/share/openstack-tripleo-heat-templates/environments/tls-endpoints-public-dns.yaml파일을 사용합니다. -
IP 주소를 사용하여 공용 엔드포인트에 액세스하려면
/usr/share/openstack-tripleo-heat-templates/environments/tls-endpoints-public-ip.yaml파일을 사용하십시오.
-
도메인 이름 서비스(DNS)를 사용하여 공용 엔드포인트에 액세스하려면
절차
자체 서명된 인증서를 사용하거나 인증서 서명자가 오버클라우드 이미지의 기본 신뢰 저장소에 없는 경우 heat 템플릿 컬렉션에서
inject-trust-anchor.yaml환경 파일을 복사하여 오버클라우드 이미지에 인증서를 삽입합니다.cp -r /usr/share/openstack-tripleo-heat-templates/environments/inject-trust-anchor.yaml ~/templates/
$ cp -r /usr/share/openstack-tripleo-heat-templates/environments/inject-trust-anchor.yaml ~/templates/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 텍스트 편집기에서 파일을 열고 루트 인증 기관 파일의 내용을
SSLRootCertificate매개 변수에 복사합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요인증 기관 콘텐츠에는 모든 새 행에 대해 동일한 들여쓰기 수준이 필요합니다.
OS::TripleO::NodeTLSCAData:매개변수의 리소스 URL을 절대 URL로 변경합니다.resource_registry: OS::TripleO::NodeTLSCAData: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/tls/ca-inject.yaml
resource_registry: OS::TripleO::NodeTLSCAData: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/tls/ca-inject.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: DNS 호스트 이름을 사용하여 SSL/TLS를 통해 오버클라우드에 액세스하는 경우 새 환경 파일
~/templates/cloudname.yaml을 생성하고 다음 매개변수에서 오버클라우드 끝점의 호스트 이름을 정의합니다.parameter_defaults: CloudName: overcloud.example.com DnsServers: 10.0.0.1
parameter_defaults: CloudName: overcloud.example.com DnsServers: 10.0.0.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 값을 해당 환경의 실제 값으로 바꿉니다.
-
cloudName:overcloud.example.com을 오버클라우드 끝점의 DNS 호스트 이름으로 바꿉니다. -
DnsServers: 사용하려는 DNS 서버 목록입니다. 구성된 DNS 서버에 공용 API의 IP와 일치하는 구성된CloudName의 항목이 포함되어야 합니다.
-
1.5. 외부 로드 밸런서를 사용하여 오버클라우드 배포 링크 복사링크가 클립보드에 복사되었습니다!
외부 로드 밸런서를 사용하는 오버클라우드를 배포하려면 openstack overcloud deploy 를 실행하고 외부 로드 밸런서에 대한 추가 환경 파일 및 구성 파일을 포함합니다.
사전 요구 사항
- 외부 로드 밸런서를 위한 환경이 준비되었습니다. 환경을 준비하는 방법에 대한 자세한 내용은 다음을 참조하십시오. 1.1절. “외부 로드 밸런서를 위한 환경 준비”
- Overcloud 네트워크는 외부 로드 밸런서용으로 구성됩니다. 네트워크를 구성하는 방법에 대한 자세한 내용은 다음을 참조하십시오. 1.2절. “외부 로드 밸런서에 대한 오버클라우드 네트워크 구성”
- 외부 로드 밸런서 환경 파일이 준비되었습니다. 환경 파일을 만드는 방법에 대한 자세한 내용은 다음을 참조하십시오. 1.3절. “외부 로드 밸런서 환경 파일 생성”
- SSL은 외부 로드 밸런싱을 위해 구성됩니다. 외부 로드 밸런싱을 위해 SSL을 구성하는 방법에 대한 자세한 내용은 다음을 참조하십시오. 1.4절. “외부 로드 밸런싱을 위한 SSL 구성”
절차
외부 로드 밸런서를 위한 모든 환경 및 설정 파일을 사용하여 오버클라우드를 배포합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 각도 대괄호 <&
gt;의 값을 환경에 대해 정의된 파일 경로로 바꿉니다.중요이 예에 나열된 순서대로 네트워크 환경 파일을 명령에 추가해야 합니다.
이 명령에는 다음 환경 파일이 포함됩니다.
-
network-isolation.yaml: 네트워크 분리 구성 파일. -
network-environment.yaml: 네트워크 구성 파일. -
external-loadbalancer-vip.yaml: 외부 로드 밸런싱 가상 IP 주소 구성 파일. external-lb.yaml: 외부 로드 밸런서 구성 파일 이 파일에 대해 다음 옵션을 설정하고 해당 환경의 값을 조정할 수도 있습니다.-
--control-scale 3: 컨트롤러 노드를 3으로 확장합니다. -
--compute-scale 3: 컴퓨팅 노드를 3개로 스케일링합니다. -
--control-flavor 제어: 컨트롤러 노드에 특정 플레이버를 사용합니다. -
--compute-flavor compute: Compute 노드에 특정 플레이버를 사용합니다.
-
SSL/TLS 환경 파일:
-
SSL/TLS 끝점 환경 파일: 공개 endpoinst에 연결하는 방법을 정의하는 환경 파일입니다.tls-endpoints-public-dns.yaml또는tls-endpoints-public-ip.yaml을 사용합니다. -
(선택 사항)
DNS 호스트 이름 환경 파일: DNS 호스트 이름을 설정할 환경 파일입니다. -
루트 인증서 삽입 환경 파일: 루트 인증 기관을 삽입할 환경 파일입니다.
-
오버클라우드 배포 프로세스 중에 Red Hat OpenStack Platform director가 노드를 프로비저닝합니다. 이 프로세스를 완료하는 데 시간이 다소 걸립니다.
-
오버클라우드 배포 상태를 보려면 다음 명령을 입력합니다.
source ~/stackrc openstack stack list --nested
$ source ~/stackrc $ openstack stack list --nestedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2장. 설정 예: 외부 HAProxy 로드 밸런서가 있는 Overcloud 링크 복사링크가 클립보드에 복사되었습니다!
이 예제 구성은 페더레이션 HAProxy 서버를 사용하여 외부 부하 분산을 제공하는 오버클라우드를 보여줍니다. 환경 요구 사항에 따라 다른 외부 로드 밸런서를 선택할 수 있습니다.
예제 구성에는 다음 요소가 포함됩니다.
- HAProxy를 실행하는 외부 로드 밸런싱 서버입니다.
- RHOSP(Red Hat OpenStack Platform) director 노드 1개.
- 고가용성 클러스터와 컴퓨팅 노드 1개에 컨트롤러 노드 3개로 구성된 오버클라우드
- VLAN을 통한 네트워크 격리.
이 예제에서는 각 네트워크에 대해 다음 IP 주소 할당을 사용합니다.
-
내부 API:
172.16.20.0/24 -
테넌트:
172.16.22.0/24 -
스토리지:
172.16.21.0/24 -
스토리지 관리:
172.16.19.0/24 -
external:
172.16.23.0/24
이러한 IP 범위에는 로드 밸런서가 OpenStack 서비스에 바인딩되는 컨트롤러 노드 및 가상 IP에 대한 IP가 포함됩니다.
2.1. HAProxy 구성 파일의 예 링크 복사링크가 클립보드에 복사되었습니다!
예제 파일은 내부 HAProxy 구성 매개 변수를 보여줍니다. 외부 로드 밸런서를 구성하기 위한 기준으로 샘플 구성 매개변수를 사용할 수 있습니다.
HAProxy 구성 파일에는 다음 섹션이 포함되어 있습니다.
- 글로벌 구성
- 기본값 구성
- 서비스 구성
director는 컨테이너화되지 않은 환경에 대해 각 컨트롤러 노드의 /etc/haproxy/haproxy.conf 파일과 컨테이너화된 환경의 경우 /var/lib/config-data/puppet-generated/haproxy/etc/haproxy/haproxy.cfg 파일에 이 구성을 제공합니다.
글로벌, 기본 및 서비스 매개변수 외에도 다른 HAProxy 매개변수도 구성해야 합니다. HAProxy 매개변수에 대한 자세한 내용은 Controller 노드의 /usr/share/doc/haproxy-*/configuration.txt 또는 haproxy 패키지가 설치된 모든 시스템에 있는 HAProxy 구성 설명서 를 참조하십시오.
HAProxy 구성 파일의 예
2.1.1. 글로벌 구성 매개변수: 예시 HAProxy 구성 파일 링크 복사링크가 클립보드에 복사되었습니다!
글로벌 구성 parameters 섹션에서는 로드 밸런서에 대한 프로세스 수준 매개 변수 집합을 정의합니다. 구성 파일에서 예제 매개변수를 사용하여 외부 로드 밸런서를 구성할 수 있습니다. 환경에 따라 매개변수 값을 조정합니다.
전역 구성 매개변수
예에서는 다음 매개 변수를 보여줍니다.
-
daemon: 백그라운드 프로세스로 실행됩니다. -
user haproxy및group haproxy: 프로세스를 소유한 Linux 사용자 및 그룹을 정의합니다. -
log: 사용할 syslog 서버를 정의합니다. -
maxconn: 프로세스에 대한 최대 동시 연결 수를 설정합니다. -
PidFile : 프로세스 ID에 사용할 파일을 설정합니다.
2.1.2. 기본 값 구성 매개변수: HAProxy 구성 파일 예 링크 복사링크가 클립보드에 복사되었습니다!
기본 값 구성 매개변수 섹션에서는 외부 로드 밸런서 서비스를 실행할 때 사용할 기본값 세트를 정의합니다. 구성 파일에서 예제 매개변수를 사용하여 외부 로드 밸런서를 구성할 수 있습니다. 환경에 따라 매개변수 값을 조정합니다.
기본값 구성 매개변수
예에서는 다음 매개 변수를 보여줍니다.
-
log: 서비스에 대한 로깅을 활성화합니다.global값은 로깅 함수가global섹션의로그매개변수를 사용한다는 것을 의미합니다. -
mode: 사용할 프로토콜을 정의합니다. 이 경우 기본값은 TCP입니다. -
재시도: 연결 오류를 보고하기 전에 서버에서 수행할 재시도 횟수를 설정합니다. -
timeout- 특정 함수에 대한 최대 대기 시간을 설정합니다. 예를 들어timeout http-request는 완전한 HTTP 요청에 대해 대기하는 최대 시간을 설정합니다.
2.1.3. 서비스 수준 구성 매개변수: 예 HAProxy 구성 파일 링크 복사링크가 클립보드에 복사되었습니다!
서비스 수준 구성 매개 변수 섹션에서는 특정 RHOSP(Red Hat OpenStack Platform) 서비스에 트래픽을 로드할 때 사용할 매개 변수 집합을 정의합니다. 구성 파일에서 예제 매개변수를 사용하여 외부 로드 밸런서를 구성할 수 있습니다. 환경에 따라 매개변수 값을 조정하고, 로드 밸런싱하려는 각 서비스의 섹션을 복사합니다.
서비스 수준 구성 매개변수
이 예에서는 ceilometer 서비스의 구성 매개 변수를 보여줍니다.
균형을 조정하려는 각 서비스는 구성 파일의 섹션에 일치해야 합니다. 각 서비스 구성에는 다음 매개변수가 포함됩니다.
-
listen: 요청을 수신 대기하는 서비스의 이름입니다. -
bind: 서비스에서 수신 대기하는 IP 주소 및 TCP 포트 번호입니다. 각 서비스는 다른 네트워크 트래픽 유형을 나타내는 다른 주소를 바인딩합니다. -
server: 서비스를 제공하는 각 서버의 이름, 서버 IP 주소 및 수신 포트, 연결 매개변수: -
점검: (선택 사항) 상태 점검을 활성화합니다. -
fall 5: (선택 사항) 5 상태 점검 실패 후, 서비스는 오프라인으로 간주됩니다. -
2000년 간: (선택 사항) 연속된 두 상태 점검 사이의 간격은 2000밀리초 또는 2초로 설정됩니다. -
증가한 2: (선택 사항) 두 개의 성공적인 상태 점검 후 서비스가 작동하는 것으로 간주됩니다.
ceilometer 예에서 서비스는 ceilometer 서비스가 172.16.20.2500:8777 및 172.16.23.250:8777 로 제공되는 IP 주소와 포트를 식별합니다. 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)로 지시합니다.
2.2. 로드 밸런싱을 사용하는 서비스에 대한 구성 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
로드 밸런싱을 사용하는 오버클라우드의 각 서비스에 대해 다음 예제를 가이드로 사용하여 외부 로드 밸런서를 구성합니다. 환경에 따라 매개변수 값을 조정하고, 로드 밸런싱하려는 각 서비스의 섹션을 복사합니다.
대부분의 서비스에서는 기본 상태 점검 구성을 사용합니다.
- 연속된 두 상태 점검 간격은 2000밀리초 또는 2초로 설정됩니다.
- 두 가지 상태 점검이 성공하면 서버가 작동하는 것으로 간주됩니다.
- 5개의 상태 점검 실패 후 서비스는 오프라인으로 간주됩니다.
각 서비스는 해당 서비스의 기타 정보 섹션에 있는 기본 상태 점검 또는 추가 옵션을 나타냅니다.
aodh
포트 번호: 8042
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
Ceilometer
포트 번호: 8777
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
cinder
포트 번호: 8776
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
glance_api
포트 번호: 9292
바인딩 대상: 스토리지, 외부
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 스토리지
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
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
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
gnocchi
포트 번호: 8041
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
heat_api
포트 번호: 8004
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
- 이 서비스는 기본 TCP 모드 대신 HTTP 모드를 사용합니다.
HAProxy 예:
heat_cfn
포트 번호:data bind
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
heat_cloudwatch
포트 번호: 8003
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
Horizon
포트 번호: 80
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
- 이 서비스는 기본 TCP 모드 대신 HTTP 모드를 사용합니다.
- 이 서비스는 UI와의 상호 작용을 위해 쿠키 기반 지속성을 사용합니다.
HAProxy 예:
keystone_admin
포트 번호: 35357
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
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
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
keystone_public
포트 번호: 5000
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
mysql
포트 번호: EgressIP
internal_api에 바인딩
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다. 그러나 상태 점검에서는 포트 9200을 사용합니다.
- 이 서비스는 한 번에 하나의 서버로만 부하 분산됩니다.
- 각 서버는 다른 모든 백업 서버를 사용할 수 없는 경우에만 로드 밸런싱에 사용됩니다.
- 서버가 오프라인인 경우 모든 연결이 즉시 종료됩니다.
- 양쪽에서 TCP keepalive 패킷을 보낼 수 있어야 합니다.
- 서버 상태를 확인하려면 HTTP 프로토콜을 활성화해야 합니다.
- 지속성 유지를 위해 IP 주소를 저장하도록 고정 테이블을 구성할 수 있습니다.
mysql 서비스는 Galera를 사용하여 고가용성 데이터베이스 클러스터를 제공합니다. Galera는 활성-활성 구성을 지원하지만 잠금 경합을 방지하려면 로드 밸런서에서 적용되는 활성-수동 구성을 사용해야 합니다.
HAProxy 예:
Neutron
포트 번호: 9696
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
nova_ec2
포트 번호: 8773
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
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
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
nova_novncproxy
포트 번호: 6080
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
- 기본 로드 밸런싱 방법은 라운드 로빈입니다. 그러나 이 서비스에는 source 메서드를 사용합니다. 이 메서드는 소스 IP 주소를 해시하고 실행 중인 서버의 총 가중치로 나눕니다. 또한 이 메서드는 서버를 중단하거나 가동하지 않는 한 요청을 수신하는 서버를 지정하고 동일한 클라이언트 IP 주소가 항상 동일한 서버에 도달하도록 합니다. 실행 중인 서버 수의 변경으로 인해 해시 결과가 변경되면 로드 밸런서는 클라이언트를 다른 서버로 리디렉션합니다.
HAProxy 예:
nova_osapi
포트 번호: 8774
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
nova_placement
포트 번호: 8778
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
Panko
포트 번호: 8779
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
Redis
포트 번호: 6379
bind to: internal_api (redis service IP)
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
-
tcp-checksend/expect 시퀀스를 사용하여 상태 점검을 수행합니다. 보낼 문자열은info\ replication\r\n이며 응답은role:master입니다. -
Redis 서비스는 인증에 암호를 사용합니다. 예를 들어 HAProxy 구성은 AUTH 메서드 및 Redis 관리 암호와 함께
tcp-check를 사용합니다. director는 일반적으로 임의의 암호를 생성하지만 사용자 정의 Redis 암호를 정의할 수 있습니다. -
기본 밸런싱 방법은
라운드 로빈입니다. 그러나 이 서비스에는첫번째 방법을 사용합니다. 이렇게 하면 사용 가능한 연결 슬롯이 있는 첫 번째 서버가 연결을 수신합니다.
HAProxy 예:
swift_proxy_server
포트 번호: 8080
바인딩 대상: 스토리지, 외부
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 스토리지
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예: