5.3. 여러 마스터 예


여러 마스터, 여러 etcd 호스트 및 여러 노드로 환경을 구성할 수 있습니다. HA( 고가용성)를 위해 여러 마스터를 구성하면 클러스터에 단일 장애 지점이 없습니다.

참고

설치 후 단일 마스터 클러스터에서 여러 마스터로 이동하는 것은 지원되지 않습니다.

여러 마스터를 구성할 때 클러스터 설치 프로세스에서 네이티브 HA(고가용성) 방법을 지원합니다. 이 방법은 OpenShift Container Platform에 빌드된 기본 HA 마스터 기능을 활용하여 모든 로드 밸런싱 솔루션과 결합할 수 있습니다.

호스트가 인벤토리 파일의 [lb] 섹션에 정의된 경우 Ansible은 자동으로 HAProxy를 마스터의 로드 밸런싱 솔루션으로 설치하고 구성합니다. 호스트가 정의되지 않은 경우 모든 마스터 호스트에서 마스터 API (포트 8443)의 균형을 위해 선택한 외부 로드 밸런싱 솔루션이 미리 구성되어 있다고 가정합니다.

참고

이 HAProxy 로드 밸런서는 API 서버의 HA 모드를 설명하기 위한 것이며 프로덕션 환경에는 사용하지 않는 것이 좋습니다. 클라우드 공급자에 배포하는 경우 클라우드 네이티브 TCP 기반 로드 밸런서를 배포하거나 고가용성 로드 밸런서를 제공하기 위해 다른 단계를 수행하는 것이 좋습니다.

HAProxy 로드 밸런서는 API 서버로 트래픽을 로드 밸런싱하는 데만 사용되며 사용자 애플리케이션 트래픽을 로드 밸런싱하지 않습니다.

외부 로드 밸런싱 솔루션의 경우 다음을 수행해야 합니다.

  • SSL 패스스루용으로 구성된 사전 생성된 로드 밸런서 가상 IP(VIP)입니다.
  • openshift_master_api_port 값(기본적으로 8443)에 의해 지정된 포트에서 수신 대기하는 VIP가 해당 포트의 모든 마스터 호스트로 다시 프록시합니다.
  • DNS에 등록된 VIP의 도메인 이름입니다.

    • 도메인 이름은 OpenShift Container Platform 설치 프로그램에서 openshift_master_cluster_public_hostnameopenshift_master_cluster_hostname 의 값이 됩니다.

자세한 내용은 GitHub의 External Load Balancer 통합 예제 를 참조하십시오. 고가용성 마스터 아키텍처에 대한 자세한 내용은 Kubernetes 인프라를 참조하십시오.

참고

클러스터 설치 프로세스에서는 현재 active-passive 설정에서 여러 HAProxy 로드 밸런서를 지원하지 않습니다. 설치 후 수정 사항은 로드 밸런서 관리 설명서 를 참조하십시오.

여러 마스터를 구성하려면 여러 마스터에서 여러 etcd를참조하십시오.

5.3.1. 외부 클러스터 etcd와 함께 네이티브 HA를 사용하는 여러 마스터

다음은 기본 HA 방법을 사용한 3개의 마스터 환경 예: HAProxy 로드 밸런서 1개, 사용자 애플리케이션을 호스팅하는 데 사용할 두 개의 노드, 전용 인프라 호스팅을 위한 node-role.kubernetes.io/infra=true 라벨이 있는 노드 두 개에 대해 설명합니다. https://access.redhat.com/documentation/en-us/openshift_container_platform/3.11/html-single/architecture/#master

호스트 이름설치할 구성 요소/역할

master1.example.com

마스터(기본 HA를 사용한 클러스터) 및 노드

master2.example.com

master3.example.com

lb.example.com

HAProxy에서 API 마스터 끝점만 로드 밸런싱

etcd1.example.com

etcd

etcd2.example.com

etcd3.example.com

node1.example.com

컴퓨팅 노드

node2.example.com

infra-node1.example.com

전용 인프라 노드

infra-node2.example.com

[masters], [etcd], [lb], [nodes] 및 [nodes] 섹션에 있는 다음 예제 호스트가 다음 예제 인벤토리 파일의 섹션을 확인할 수 있습니다.

HAProxy 인벤토리 파일을 사용하여 여러 마스터

# Create an OSEv3 group that contains the master, nodes, etcd, and lb groups.
# The lb group lets Ansible configure HAProxy as the load balancing solution.
# Comment lb out if your load balancer is pre-configured.
[OSEv3:children]
masters
nodes
etcd
lb

# Set variables common for all OSEv3 hosts
[OSEv3:vars]
ansible_ssh_user=root
openshift_deployment_type=openshift-enterprise

# uncomment the following to enable htpasswd authentication; defaults to DenyAllPasswordIdentityProvider
#openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider'}]

# Native high availbility cluster method with optional load balancer.
# If no lb group is defined installer assumes that a load balancer has
# been preconfigured. For installation the value of
# openshift_master_cluster_hostname must resolve to the load balancer
# or to one or all of the masters defined in the inventory if no load
# balancer is present.
openshift_master_cluster_method=native
openshift_master_cluster_hostname=openshift-internal.example.com
openshift_master_cluster_public_hostname=openshift-cluster.example.com

# apply updated node defaults
openshift_node_groups=[{'name': 'node-config-all-in-one', 'labels': ['node-role.kubernetes.io/master=true', 'node-role.kubernetes.io/infra=true', 'node-role.kubernetes.io/compute=true'], 'edits': [{ 'key': 'kubeletArguments.pods-per-core','value': ['20']}]}]

# host group for masters
[masters]
master1.example.com
master2.example.com
master3.example.com

# host group for etcd
[etcd]
etcd1.example.com
etcd2.example.com
etcd3.example.com

# Specify load balancer host
[lb]
lb.example.com

# host group for nodes, includes region info
[nodes]
master[1:3].example.com openshift_node_group_name='node-config-master'
node1.example.com openshift_node_group_name='node-config-compute'
node2.example.com openshift_node_group_name='node-config-compute'
infra-node1.example.com openshift_node_group_name='node-config-infra'
infra-node2.example.com openshift_node_group_name='node-config-infra'

중요

OpenShift Container Platform 3.9부터 기본 노드 선택기 요구 사항 및 노드 레이블 고려 사항을 이해하려면 노드 호스트 레이블 구성을 참조하십시오.

이 예제를 사용하려면 환경 및 사양과 일치하도록 파일을 수정하고 /etc/ansible/hosts 로 저장합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.