2.2. 기존 Nutanix 클러스터에 장애 도메인 추가
기본적으로 설치 프로그램은 컨트롤 플레인 및 컴퓨팅 머신을 단일 Nutanix Prism Element (클러스터)에 설치합니다. OpenShift Container Platform 클러스터가 배포된 후 실패 도메인을 사용하여 배포에 Prism Element 인스턴스를 추가하여 내결함성을 개선할 수 있습니다.
장애 도메인은 새 컨트롤 플레인 및 컴퓨팅 시스템을 배포하고 기존 컨트롤 플레인 및 컴퓨팅 시스템을 배포할 수 있는 단일 Prism Element 인스턴스를 나타냅니다.
2.2.1. 실패 도메인 요구 사항
실패 도메인을 사용하려는 경우 다음 요구 사항을 고려하십시오.
- 모든 Nutanix Prism Element 인스턴스는 Prism Central의 동일한 인스턴스에서 관리해야 합니다. 여러 Prism Central 인스턴스로 구성된 배포는 지원되지 않습니다.
- Prism Element 클러스터를 구성하는 시스템은 장애 도메인이 서로 통신할 수 있도록 동일한 이더넷 네트워크에 있어야 합니다.
- OpenShift Container Platform 클러스터에서 장애 도메인으로 사용할 각 Prism Element에 서브넷이 필요합니다. 이러한 서브넷을 정의할 때 동일한 IP 주소 접두사(CIDR)를 공유해야 하며 OpenShift Container Platform 클러스터가 사용하는 가상 IP 주소를 포함해야 합니다.
2.2.2. Infrastructure CR에 장애 도메인 추가
Infrastructure CR(사용자 정의 리소스)( infrastructure.config.openshift.io )을 수정하여 기존 Nutanix 클러스터에 장애 도메인을 추가합니다.
고가용성을 보장하기 위해 세 개의 실패 도메인을 구성하는 것이 좋습니다.
프로세스
다음 명령을 실행하여 Infrastructure CR을 편집합니다.
$ oc edit infrastructures.config.openshift.io cluster
실패 도메인을 구성합니다.
Nutanix 실패 도메인이 있는 Infrastructure CR의 예
spec: cloudConfig: key: config name: cloud-provider-config #... platformSpec: nutanix: failureDomains: - cluster: type: UUID uuid: <uuid> name: <failure_domain_name> subnets: - type: UUID uuid: <network_uuid> - cluster: type: UUID uuid: <uuid> name: <failure_domain_name> subnets: - type: UUID uuid: <network_uuid> - cluster: type: UUID uuid: <uuid> name: <failure_domain_name> subnets: - type: UUID uuid: <network_uuid> # ...
다음과 같습니다.
<uuid>
- Prism Element의 UUID(Universally unique identifier)를 지정합니다.
<failure_domain_name>
-
실패 도메인의 고유한 이름을 지정합니다. 이름은 64자 미만으로 제한되며 소문자, 숫자, 대시(
-
)를 포함할 수 있습니다. 대시는 이름의 선행 또는 종료 위치에 있을 수 없습니다. <network_uuid>
- Prism Element 서브넷 오브젝트의 UUID를 지정합니다. 서브넷의 CIDR(IP 주소 접두사)에는 OpenShift Container Platform 클러스터가 사용하는 가상 IP 주소가 포함되어야 합니다. OpenShift Container Platform 클러스터에서 장애 도메인(Prism Element)당 하나의 서브넷만 지원됩니다.
- CR을 저장하여 변경 사항을 적용합니다.
2.2.3. 장애 도메인에서 컨트롤 플레인 배포
컨트롤 플레인 머신 세트 CR(사용자 정의 리소스)을 수정하여 Nutanix 장애 도메인에 컨트롤 플레인을 배포합니다.
사전 요구 사항
- 클러스터의 Infrastructure CR(사용자 정의 리소스)에 장애 도메인을 구성했습니다.
- 컨트롤 플레인 머신 세트 CR(사용자 정의 리소스)은 활성 상태입니다.
컨트롤 플레인 머신 세트 사용자 정의 리소스 상태를 확인하는 방법에 대한 자세한 내용은 "추가 리소스"를 참조하십시오.
프로세스
다음 명령을 실행하여 컨트롤 플레인 머신 세트 CR을 편집합니다.
$ oc edit controlplanemachineset.machine.openshift.io cluster -n openshift-machine-api
spec.template.machines_v1beta1_machine_openshift_io.failureDomains
스탠자를 추가하여 실패 도메인을 사용하도록 컨트롤 플레인 머신 세트를 구성합니다.Nutanix 장애 도메인이 있는 컨트롤 플레인 머신 세트의 예
apiVersion: machine.openshift.io/v1 kind: ControlPlaneMachineSet metadata: creationTimestamp: null labels: machine.openshift.io/cluster-api-cluster: <cluster_name> name: cluster namespace: openshift-machine-api spec: # ... template: machineType: machines_v1beta1_machine_openshift_io machines_v1beta1_machine_openshift_io: failureDomains: platform: Nutanix nutanix: - name: <failure_domain_name_1> - name: <failure_domain_name_2> - name: <failure_domain_name_3> # ...
- 변경 사항을 저장하십시오.
기본적으로 컨트롤 플레인 머신 세트는 변경 사항을 컨트롤 플레인 구성에 자동으로 전파합니다. 클러스터가 OnDelete
업데이트 전략을 사용하도록 구성된 경우 컨트롤 플레인을 수동으로 교체해야 합니다. 자세한 내용은 "추가 리소스"를 참조하십시오.
2.2.4. 장애 도메인에서 컴퓨팅 머신 배포
다음 방법 중 하나로 Nutanix 장애 도메인에 컴퓨팅 머신을 배포할 수 있습니다.
- 기존 컴퓨팅 머신 세트를 편집하면 Nutanix 장애 도메인에 컴퓨팅 머신을 최소 구성 업데이트로 배포할 수 있습니다.
- 기존 컴퓨팅 머신 세트를 교체 하면 사양을 변경할 수 없으며 모든 머신이 동일합니다.
2.2.4.1. 실패 도메인 구현을 위해 컴퓨팅 머신 세트 편집
기존 컴퓨팅 머신 세트를 사용하여 Nutanix 장애 도메인에 컴퓨팅 머신을 배포하려면 컴퓨팅 머신 세트를 구성으로 업데이트한 다음 스케일링을 사용하여 기존 컴퓨팅 머신을 교체합니다.
사전 요구 사항
- 클러스터의 Infrastructure CR(사용자 정의 리소스)에 장애 도메인을 구성했습니다.
프로세스
다음 명령을 실행하여 클러스터의 Infrastructure CR을 확인합니다.
$ oc describe infrastructures.config.openshift.io cluster
-
각 장애 도메인(
platformSpec.nutanix.failureDomains
)에 대해 클러스터의 UUID, 이름 및 서브넷 오브젝트 UUID를 기록해 둡니다. 이러한 값은 컴퓨팅 머신 세트에 실패 도메인을 추가하는 데 필요합니다. 다음 명령을 실행하여 클러스터의 컴퓨팅 머신 세트를 나열합니다.
$ oc get machinesets -n openshift-machine-api
출력 예
NAME DESIRED CURRENT READY AVAILABLE AGE <machine_set_name_1> 1 1 1 1 55m <machine_set_name_2> 1 1 1 1 55m
다음 명령을 실행하여 첫 번째 컴퓨팅 머신 세트를 편집합니다.
$ oc edit machineset <machine_set_name_1> -n openshift-machine-api
다음을
spec.template.spec.providerSpec.value
스탠자로 업데이트하여 첫 번째 실패 도메인을 사용하도록 컴퓨팅 시스템 세트를 구성합니다.참고cluster
및subnets
필드에 지정한 값이 클러스터의 Infrastructure CR의failureDomains
스탠자에 구성된 값과 일치하는지 확인합니다.Nutanix 실패 도메인이 있는 컴퓨팅 머신 세트의 예
apiVersion: machine.openshift.io/v1 kind: MachineSet metadata: creationTimestamp: null labels: machine.openshift.io/cluster-api-cluster: <cluster_name> name: <machine_set_name_1> namespace: openshift-machine-api spec: replicas: 2 # ... template: spec: # ... providerSpec: value: apiVersion: machine.openshift.io/v1 failureDomain: name: <failure_domain_name_1> cluster: type: uuid uuid: <prism_element_uuid_1> subnets: - type: uuid uuid: <prism_element_network_uuid_1> # ...
-
변경 사항을 적용하기 위해 컴퓨팅 머신 세트를 스케일링할 때 필요하므로
spec.replicas
의 값을 확인합니다. - 변경 사항을 저장하십시오.
다음 명령을 실행하여 업데이트된 컴퓨팅 머신 세트에서 관리하는 머신을 나열합니다.
$ oc get -n openshift-machine-api machines \ -l machine.openshift.io/cluster-api-machineset=<machine_set_name_1>
출력 예
NAME PHASE TYPE REGION ZONE AGE <machine_name_original_1> Running AHV Unnamed Development-STS 4h <machine_name_original_2> Running AHV Unnamed Development-STS 4h
업데이트된 컴퓨팅 머신 세트에서 관리하는 각 머신에 대해 다음 명령을 실행하여
삭제
주석을 설정합니다.$ oc annotate machine/<machine_name_original_1> \ -n openshift-machine-api \ machine.openshift.io/delete-machine="true"
새 구성으로 대체 머신을 생성하려면 다음 명령을 실행하여 컴퓨팅 머신 세트를 복제본 수의 두 배로 스케일링합니다.
$ oc scale --replicas=<twice_the_number_of_replicas> \1 machineset <machine_set_name_1> \ -n openshift-machine-api
- 1
- 예를 들어 컴퓨팅 시스템 세트의 원래 복제본 수가
2
이면 복제본을4
로 스케일링합니다.
다음 명령을 실행하여 업데이트된 컴퓨팅 머신 세트에서 관리하는 머신을 나열합니다.
$ oc get -n openshift-machine-api machines -l machine.openshift.io/cluster-api-machineset=<machine_set_name_1>
새 머신이
Running
단계에 있는 경우 컴퓨팅 머신 세트를 원래 복제본 수로 확장할 수 있습니다.이전 구성으로 생성된 머신을 제거하려면 다음 명령을 실행하여 컴퓨팅 머신 세트를 원래 복제본 수로 확장합니다.
$ oc scale --replicas=<original_number_of_replicas> \1 machineset <machine_set_name_1> \ -n openshift-machine-api
- 1
- 예를 들어 컴퓨팅 시스템 세트의 원래 복제본 수가
2
인 경우 복제본을2
로 확장합니다.
- 필요에 따라 배포에 사용할 수 있는 추가 실패 도메인을 참조하도록 머신 세트를 계속 수정합니다.
추가 리소스
2.2.4.2. 실패 도메인 구현을 위해 컴퓨팅 머신 세트 교체
컴퓨팅 머신 세트를 교체하여 Nutanix 장애 도메인에 컴퓨팅 머신을 배포하려면 구성으로 새 컴퓨팅 머신 세트를 생성하고 생성된 시스템이 시작될 때까지 기다린 다음 이전 컴퓨팅 머신 세트를 삭제합니다.
사전 요구 사항
- 클러스터의 Infrastructure CR(사용자 정의 리소스)에 장애 도메인을 구성했습니다.
프로세스
다음 명령을 실행하여 클러스터의 Infrastructure CR을 확인합니다.
$ oc describe infrastructures.config.openshift.io cluster
-
각 장애 도메인(
platformSpec.nutanix.failureDomains
)에 대해 클러스터의 UUID, 이름 및 서브넷 오브젝트 UUID를 기록해 둡니다. 이러한 값은 컴퓨팅 머신 세트에 실패 도메인을 추가하는 데 필요합니다. 다음 명령을 실행하여 클러스터의 컴퓨팅 머신 세트를 나열합니다.
$ oc get machinesets -n openshift-machine-api
출력 예
NAME DESIRED CURRENT READY AVAILABLE AGE <original_machine_set_name_1> 1 1 1 1 55m <original_machine_set_name_2> 1 1 1 1 55m
- 기존 컴퓨팅 머신 세트의 이름을 확인합니다.
다음 방법 중 하나를 사용하여 새 컴퓨팅 머신 세트 CR(사용자 정의 리소스)의 값이 포함된 YAML 파일을 생성합니다.
다음 명령을 실행하여 기존 컴퓨팅 머신 세트 구성을 새 파일에 복사합니다.
$ oc get machineset <original_machine_set_name_1> \ -n openshift-machine-api -o yaml > <new_machine_set_name_1>.yaml
기본 텍스트 편집기를 사용하여 이 YAML 파일을 편집할 수 있습니다.
원하는 텍스트 편집기를 사용하여 <
new_machine_set_name_1>.yaml
이라는 빈 YAML 파일을 생성하고 새 컴퓨팅 머신 세트에 필요한 값을 포함합니다.특정 필드에 설정할 값이 확실하지 않은 경우 다음 명령을 실행하여 기존 컴퓨팅 머신 세트 CR의 값을 볼 수 있습니다.
$ oc get machineset <original_machine_set_name_1> \ -n openshift-machine-api -o yaml
출력 예
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 1 name: <infrastructure_id>-<role> 2 namespace: openshift-machine-api spec: replicas: 1 selector: matchLabels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role> template: metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> machine.openshift.io/cluster-api-machine-role: <role> machine.openshift.io/cluster-api-machine-type: <role> machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role> spec: providerSpec: 3 ...
<new_machine_set_name_1>.yaml
파일의spec.template.spec.providerSpec.value
스탠자에 다음을 업데이트하여 첫 번째 실패 도메인을 사용하도록 새 컴퓨팅 머신 세트를 구성합니다.참고cluster
및subnets
필드에 지정한 값이 클러스터의 Infrastructure CR의failureDomains
스탠자에 구성된 값과 일치하는지 확인합니다.Nutanix 실패 도메인이 있는 컴퓨팅 머신 세트의 예
apiVersion: machine.openshift.io/v1 kind: MachineSet metadata: creationTimestamp: null labels: machine.openshift.io/cluster-api-cluster: <cluster_name> name: <new_machine_set_name_1> namespace: openshift-machine-api spec: replicas: 2 # ... template: spec: # ... providerSpec: value: apiVersion: machine.openshift.io/v1 failureDomain: name: <failure_domain_name_1> cluster: type: uuid uuid: <prism_element_uuid_1> subnets: - type: uuid uuid: <prism_element_network_uuid_1> # ...
- 변경 사항을 저장하십시오.
다음 명령을 실행하여 컴퓨팅 머신 세트 CR을 생성합니다.
$ oc create -f <new_machine_set_name_1>.yaml
- 필요에 따라 배포에 사용할 수 있는 추가 장애 도메인을 참조하는 컴퓨팅 머신 세트를 계속 생성합니다.
새 컴퓨팅 머신 세트마다 다음 명령을 실행하여 새 컴퓨팅 머신 세트에서 관리하는 머신을 나열합니다.
$ oc get -n openshift-machine-api machines -l machine.openshift.io/cluster-api-machineset=<new_machine_set_name_1>
출력 예
NAME PHASE TYPE REGION ZONE AGE <machine_from_new_1> Provisioned AHV Unnamed Development-STS 25s <machine_from_new_2> Provisioning AHV Unnamed Development-STS 25s
새 머신이
Running
단계에 있을 때 실패 도메인 구성이 포함되지 않은 이전 컴퓨팅 머신 세트를 삭제할 수 있습니다.새 머신이
Running
단계에 있음을 확인한 경우 각각에 대해 다음 명령을 실행하여 이전 컴퓨팅 머신 세트를 삭제합니다.$ oc delete machineset <original_machine_set_name_1> -n openshift-machine-api
검증
업데이트된 구성이 없는 컴퓨팅 머신 세트가 삭제되었는지 확인하려면 다음 명령을 실행하여 클러스터의 컴퓨팅 머신 세트를 나열합니다.
$ oc get machinesets -n openshift-machine-api
출력 예
NAME DESIRED CURRENT READY AVAILABLE AGE <new_machine_set_name_1> 1 1 1 1 4m12s <new_machine_set_name_2> 1 1 1 1 4m12s
업데이트된 구성이 없는 컴퓨팅 머신이 삭제되었는지 확인하려면 다음 명령을 실행하여 클러스터의 시스템을 나열합니다.
$ oc get -n openshift-machine-api machines
삭제가 진행되는 동안 출력 예
NAME PHASE TYPE REGION ZONE AGE <machine_from_new_1> Running AHV Unnamed Development-STS 5m41s <machine_from_new_2> Running AHV Unnamed Development-STS 5m41s <machine_from_original_1> Deleting AHV Unnamed Development-STS 4h <machine_from_original_2> Deleting AHV Unnamed Development-STS 4h
삭제가 완료되면 출력 예
NAME PHASE TYPE REGION ZONE AGE <machine_from_new_1> Running AHV Unnamed Development-STS 6m30s <machine_from_new_2> Running AHV Unnamed Development-STS 6m30s
새 컴퓨팅 머신 세트로 생성한 머신에 올바른 구성이 있는지 확인하려면 다음 명령을 실행하여 새 머신 중 하나에 대해 CR의 관련 필드를 검사합니다.
$ oc describe machine <machine_from_new_1> -n openshift-machine-api
추가 리소스