12.3. 컨트롤 플레인 머신 세트 구성
이러한 예제 YAML 파일 및 스니펫에서는 컨트롤 플레인 머신 세트 CR(사용자 정의 리소스) 및 실패 도메인 및 공급자 사양 구성에 대한 플랫폼별 샘플의 기본 구조를 보여줍니다.
12.3.1. 컨트롤 플레인 머신 세트 사용자 정의 리소스의 샘플 YAML
ControlPlaneMachineSet
CR의 기반은 모든 플랫폼에 대해 동일한 방식으로 구성됩니다.
ControlPlaneMachineSet
CR YAML 파일 샘플
apiVersion: machine.openshift.io/v1 kind: ControlPlaneMachineSet metadata: name: cluster 1 namespace: openshift-machine-api spec: replicas: 3 2 selector: matchLabels: machine.openshift.io/cluster-api-cluster: <cluster_id> 3 machine.openshift.io/cluster-api-machine-role: master machine.openshift.io/cluster-api-machine-type: master state: Active 4 strategy: type: RollingUpdate 5 template: machineType: machines_v1beta1_machine_openshift_io machines_v1beta1_machine_openshift_io: failureDomains: platform: <platform> 6 <platform_failure_domains> 7 metadata: labels: machine.openshift.io/cluster-api-cluster: <cluster_id> machine.openshift.io/cluster-api-machine-role: master machine.openshift.io/cluster-api-machine-type: master spec: providerSpec: value: <platform_provider_spec> 8
- 1
클러스터
인ControlPlaneMachineSet
CR의 이름을 지정합니다. 이 값은 변경하지 마십시오.- 2
- 컨트롤 플레인 머신 수를 지정합니다. 컨트롤 플레인 시스템이 세 개인 클러스터만 지원되므로
replicas
값은3
입니다. 수평 스케일링은 지원되지 않습니다. 이 값은 변경하지 마십시오. - 3
- 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID를 지정합니다.
ControlPlaneMachineSet
CR을 생성할 때 이 값을 지정해야 합니다. OpenShift CLI (oc
) 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
- 4
- Operator의 상태를 지정합니다. 상태가
Inactive
이면 Operator가 작동하지 않습니다. 값을Active
로 설정하여 Operator를 활성화할 수 있습니다.중요Operator를 활성화하기 전에 클러스터 요구 사항에 맞게
ControlPlaneMachineSet
CR 구성이 올바른지 확인해야 합니다. 컨트롤 플레인 머신 세트 Operator 활성화에 대한 자세한 내용은 "컨트롤 플레인 머신 세트 시작"을 참조하십시오. - 5
- 클러스터의 업데이트 전략을 지정합니다. 허용되는 값은
OnDelete
및RollingUpdate
입니다. 기본값은RollingUpdate
입니다. 업데이트 전략에 대한 자세한 내용은 "컨트롤 플레인 구성 업데이트"를 참조하십시오. - 6
- 클라우드 공급자 플랫폼 이름을 지정합니다. 이 값은 변경하지 마십시오.
- 7
- 클러스터에 대한 &
lt;platform_failure_domains&
gt; 구성을 지정합니다. 이 섹션의 형식과 값은 공급자에 따라 다릅니다. 자세한 내용은 클라우드 공급자의 샘플 실패 도메인 구성을 참조하십시오.참고VMware vSphere는 장애 도메인을 지원하지 않습니다.
- 8
- 클러스터의 <
;platform_provider_spec&
gt; 구성을 지정합니다. 이 섹션의 형식과 값은 공급자에 따라 다릅니다. 자세한 내용은 클라우드 공급자의 샘플 공급자 사양을 참조하십시오.
공급자별 구성
컨트롤 플레인 머신 세트 리소스의 <
> 섹션은 공급자마다 다릅니다. 클러스터의 예제 YAML을 참조하십시오.
platform_provider_spec
> 및 <platform_failure_domains
12.3.2. Amazon Web Services 클러스터 구성을 위한 샘플 YAML
컨트롤 플레인 머신 세트 CR의 일부 섹션은 공급자별로 다릅니다. 이 섹션의 예제 YAML은 AWS(Amazon Web Services) 클러스터의 실패 도메인 및 공급자 사양 구성을 보여줍니다.
12.3.2.1. AWS 실패 도메인 구성 샘플
장애 도메인의 컨트롤 플레인 머신 세트 개념은 기존 AWS의 가용성 영역(AZ) 개념과 유사합니다. ControlPlaneMachineSet
CR은 가능한 경우 컨트롤 플레인 머신을 여러 장애 도메인에 분배합니다.
컨트롤 플레인 머신 세트에서 AWS 실패 도메인을 구성할 때 사용할 가용성 영역 이름과 서브넷을 지정해야 합니다.
AWS 실패 도메인 값 샘플
failureDomains: aws: - placement: availabilityZone: <aws_zone_a> 1 subnet: 2 filters: - name: tag:Name values: - <cluster_id>-private-<aws_zone_a> 3 type: Filters 4 - placement: availabilityZone: <aws_zone_b> 5 subnet: filters: - name: tag:Name values: - <cluster_id>-private-<aws_zone_b> 6 type: Filters platform: AWS 7
- 1
- 첫 번째 실패 도메인의 AWS 가용성 영역을 지정합니다.
- 2
- 서브넷 구성을 지정합니다. 이 예제에서 서브넷 유형은
Filters
이므로필터
스탠자가 있습니다. - 3
- 인프라 ID 및 AWS 가용성 영역을 사용하여 첫 번째 실패 도메인의 서브넷 이름을 지정합니다.
- 4
- 서브넷 유형을 지정합니다. 허용되는 값은
ARN
,필터
및ID
입니다. 기본값은Filters
입니다. - 5
- 인프라 ID 및 AWS 가용성 영역을 사용하여 추가 실패 도메인의 서브넷 이름을 지정합니다.
- 6
- 추가 실패 도메인에 대한 클러스터의 인프라 ID 및 AWS 가용 영역을 지정합니다.
- 7
- 클라우드 공급자 플랫폼 이름을 지정합니다. 이 값은 변경하지 마십시오.
12.3.2.2. 샘플 AWS 공급자 사양
기존 클러스터에 대한 컨트롤 플레인 머신 세트를 생성할 때 공급자 사양이 설치 프로그램에 의해 생성된 컨트롤 플레인 머신
CR의 providerSpec
구성과 일치해야 합니다. CR의 failure domain 섹션에 설정된 모든 필드를 생략할 수 있습니다.
다음 예에서 < cluster_id
>는 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID입니다. OpenShift CLI 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
샘플 AWS providerSpec
값
providerSpec: value: ami: id: ami-<ami_id_string> 1 apiVersion: machine.openshift.io/v1beta1 blockDevices: - ebs: 2 encrypted: true iops: 0 kmsKey: arn: "" volumeSize: 120 volumeType: gp3 credentialsSecret: name: aws-cloud-credentials 3 deviceIndex: 0 iamInstanceProfile: id: <cluster_id>-master-profile 4 instanceType: m6i.xlarge 5 kind: AWSMachineProviderConfig 6 loadBalancers: 7 - name: <cluster_id>-int type: network - name: <cluster_id>-ext type: network metadata: creationTimestamp: null metadataServiceOptions: {} placement: 8 region: <region> 9 securityGroups: - filters: - name: tag:Name values: - <cluster_id>-master-sg 10 subnet: {} 11 userDataSecret: name: master-user-data 12
- 1
- 클러스터의 RHCOS(Red Hat Enterprise Linux CoreOS) Amazon 머신 이미지(AMI) ID를 지정합니다. AMI는 클러스터와 동일한 리전에 속해 있어야 합니다. AWS Marketplace 이미지를 사용하려면 AWS Marketplace에서 OpenShift Container Platform 서브스크립션을 완료해야 리전의 AMI ID를 가져와야 합니다.
- 2
- 암호화된 EBS 볼륨의 구성을 지정합니다.
- 3
- 클러스터의 시크릿 이름을 지정합니다. 이 값은 변경하지 마십시오.
- 4
- AWS IAM(Identity and Access Management) 인스턴스 프로필을 지정합니다. 이 값은 변경하지 마십시오.
- 5
- 컨트롤 플레인의 AWS 인스턴스 유형을 지정합니다.
- 6
- 클라우드 공급자 플랫폼 유형을 지정합니다. 이 값은 변경하지 마십시오.
- 7
- 클러스터의 내부(
int
) 및 외부(ext
) 로드 밸런서를 지정합니다.참고프라이빗 OpenShift Container Platform 클러스터에서 외부(
ext
) 로드 밸런서 매개변수를 생략할 수 있습니다. - 8
- 이 매개변수는 실패 도메인에 구성되며 여기에 빈 값으로 표시됩니다. 이 매개변수에 지정된 값이 실패 도메인의 값과 다른 경우 Operator는 실패 도메인의 값으로 덮어씁니다.
- 9
- 클러스터의 AWS 리전을 지정합니다.
- 10
- 컨트롤 플레인 시스템 보안 그룹을 지정합니다.
- 11
- 이 매개변수는 실패 도메인에 구성되며 여기에 빈 값으로 표시됩니다. 이 매개변수에 지정된 값이 실패 도메인의 값과 다른 경우 Operator는 실패 도메인의 값으로 덮어씁니다.
- 12
- 컨트롤 플레인 사용자 데이터 시크릿을 지정합니다. 이 값은 변경하지 마십시오.
12.3.3. Microsoft Azure 클러스터 구성을 위한 샘플 YAML
컨트롤 플레인 머신 세트 CR의 일부 섹션은 공급자별로 다릅니다. 이 섹션의 예제 YAML은 Azure 클러스터의 실패 도메인 및 공급자 사양 구성을 보여줍니다.
12.3.3.1. Azure 실패 도메인 구성 샘플
장애 도메인의 컨트롤 플레인 머신 세트는 Azure 가용성 영역의 기존 Azure 개념과 유사합니다. ControlPlaneMachineSet
CR은 가능한 경우 컨트롤 플레인 머신을 여러 장애 도메인에 분배합니다.
컨트롤 플레인 머신 세트에서 Azure 실패 도메인을 구성할 때 가용성 영역 이름을 지정해야 합니다.
Azure 실패 도메인 값 샘플
failureDomains: azure: 1 - zone: "1" - zone: "2" - zone: "3" platform: Azure 2
12.3.3.2. Azure 공급자 사양 샘플
기존 클러스터에 대한 컨트롤 플레인 머신 세트를 생성할 때 공급자 사양이 설치 프로그램에 의해 생성된 컨트롤 플레인 머신
CR의 providerSpec
구성과 일치해야 합니다. CR의 failure domain 섹션에 설정된 모든 필드를 생략할 수 있습니다.
다음 예에서 < cluster_id
>는 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID입니다. OpenShift CLI 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
샘플 Azure providerSpec
값
providerSpec: value: acceleratedNetworking: true apiVersion: machine.openshift.io/v1beta1 credentialsSecret: name: azure-cloud-credentials 1 namespace: openshift-machine-api diagnostics: {} image: 2 offer: "" publisher: "" resourceID: /resourceGroups/<cluster_id>-rg/providers/Microsoft.Compute/galleries/gallery_<cluster_id>/images/<cluster_id>-gen2/versions/412.86.20220930 3 sku: "" version: "" internalLoadBalancer: <cluster_id>-internal 4 kind: AzureMachineProviderSpec 5 location: <region> 6 managedIdentity: <cluster_id>-identity metadata: creationTimestamp: null name: <cluster_id> networkResourceGroup: <cluster_id>-rg osDisk: 7 diskSettings: {} diskSizeGB: 1024 managedDisk: storageAccountType: Premium_LRS osType: Linux publicIP: false publicLoadBalancer: <cluster_id> 8 resourceGroup: <cluster_id>-rg subnet: <cluster_id>-master-subnet 9 userDataSecret: name: master-user-data 10 vmSize: Standard_D8s_v3 vnet: <cluster_id>-vnet zone: "" 11
- 1
- 클러스터의 시크릿 이름을 지정합니다. 이 값은 변경하지 마십시오.
- 2
- 컨트롤 플레인 머신 세트의 이미지 세부 정보를 지정합니다.
- 3
- 인스턴스 유형과 호환되는 이미지를 지정합니다. 설치 프로그램에서 만든 Hyper-V 생성 V2 이미지에는
-gen2
접미사가 있으며 V1 이미지는 접미사 없이 이름이 동일합니다. - 4
- 컨트롤 플레인의 내부 로드 밸런서를 지정합니다. 이 필드는 사전 구성되지 않을 수 있지만
ControlPlane
및 컨트롤 플레인 머신 CR 모두에 필요합니다.Machine
Set - 5
- 클라우드 공급자 플랫폼 유형을 지정합니다. 이 값은 변경하지 마십시오.
- 6
- 컨트롤 플레인 시스템을 배치할 리전을 지정합니다.
- 7
- 컨트롤 플레인의 디스크 구성을 지정합니다.
- 8
- 컨트롤 플레인의 공용 로드 밸런서를 지정합니다.참고
사용자 정의 아웃 바운드 라우팅이 있는 프라이빗 OpenShift Container Platform 클러스터에서
publicLoadBalancer
매개변수를 생략할 수 있습니다. - 9
- 컨트롤 플레인의 서브넷을 지정합니다.
- 10
- 컨트롤 플레인 사용자 데이터 시크릿을 지정합니다. 이 값은 변경하지 마십시오.
- 11
- 이 매개변수는 실패 도메인에 구성되며 여기에 빈 값으로 표시됩니다. 이 매개변수에 지정된 값이 실패 도메인의 값과 다른 경우 Operator는 실패 도메인의 값으로 덮어씁니다.
12.3.4. VMware vSphere 클러스터 구성을 위한 샘플 YAML
컨트롤 플레인 머신 세트 CR의 일부 섹션은 공급자별로 다릅니다. 이 섹션의 예제 YAML은 VMware vSphere 클러스터에 대한 공급자 사양 구성을 보여줍니다.
12.3.4.1. 샘플 vSphere 공급자 사양
기존 클러스터에 대한 컨트롤 플레인 머신 세트를 생성할 때 공급자 사양이 설치 프로그램에 의해 생성된 컨트롤 플레인 머신
CR의 providerSpec
구성과 일치해야 합니다.
vSphere providerSpec
값 샘플
providerSpec: value: apiVersion: machine.openshift.io/v1beta1 credentialsSecret: name: vsphere-cloud-credentials 1 diskGiB: 120 2 kind: VSphereMachineProviderSpec 3 memoryMiB: 16384 4 metadata: creationTimestamp: null network: 5 devices: - networkName: <vm_network_name> numCPUs: 4 6 numCoresPerSocket: 4 7 snapshot: "" template: <vm_template_name> 8 userDataSecret: name: master-user-data 9 workspace: datacenter: <vcenter_datacenter_name> 10 datastore: <vcenter_datastore_name> 11 folder: <path_to_vcenter_vm_folder> 12 resourcePool: <vsphere_resource_pool> 13 server: <vcenter_server_ip> 14
- 1
- 클러스터의 시크릿 이름을 지정합니다. 이 값은 변경하지 마십시오.
- 2
- 컨트롤 플레인 시스템의 VM 디스크 크기를 지정합니다.
- 3
- 클라우드 공급자 플랫폼 유형을 지정합니다. 이 값은 변경하지 마십시오.
- 4
- 컨트롤 플레인 머신에 할당된 메모리를 지정합니다.
- 5
- 컨트롤 플레인이 배포된 네트워크를 지정합니다.
- 6
- 컨트롤 플레인 시스템에 할당된 CPU 수를 지정합니다.
- 7
- 각 컨트롤 플레인 CPU의 코어 수를 지정합니다.
- 8
- 사용할 vSphere VM 템플릿(예:
user-5ddjd-rhcos
)을 지정합니다. - 9
- 컨트롤 플레인 사용자 데이터 시크릿을 지정합니다. 이 값은 변경하지 마십시오.
- 10
- 컨트롤 플레인의 vCenter Datacenter를 지정합니다.
- 11
- 컨트롤 플레인의 vCenter Datastore를 지정합니다.
- 12
- vCenter의 vSphere VM 폴더의 경로(예:
/dc1/vm/user-inst-5ddjd
)를 지정합니다. - 13
- VM의 vSphere 리소스 풀을 지정합니다.
- 14
- vCenter 서버 IP 또는 정규화된 도메인 이름을 지정합니다.