8.2. 프로덕션 환경의 인프라 머신 세트 생성
프로덕션 배포에서는 인프라 구성 요소를 유지하기 위해 컴퓨팅 머신 세트를 3개 이상 배포하는 것이 좋습니다. Red Hat OpenShift Service Mesh는 Elasticsearch를 배포합니다. 이 Elasticsearch는 다른 노드에 3개의 인스턴스를 설치해야 합니다. 이러한 각 노드는 고가용성을 위해 다른 가용 영역에 배포할 수 있습니다. 이와 같은 구성에는 가용성 영역마다 하나씩 3개의 서로 다른 컴퓨팅 시스템 세트가 필요합니다. 여러 가용성 영역이 없는 글로벌 Azure 리전에서는 가용성 세트를 사용하여 고가용성을 보장할 수 있습니다.
8.2.1. 다른 클라우드의 인프라 머신 세트 생성
클라우드에 샘플 컴퓨팅 머신 세트를 사용합니다.
8.2.1.1. AWS에서 컴퓨팅 머신 세트 사용자 정의 리소스의 샘플 YAML
샘플 YAML은 us-east-1a
AWS(Amazon Web Services) 로컬 영역에서 실행되는 컴퓨팅 머신 세트를 정의하고 node-role.kubernetes.io/infra: ""
로 레이블이 지정된 노드를 생성합니다.
이 샘플에서 <infrastructure_id>
는 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID 레이블이며 <infra>
는 추가할 노드 레이블입니다.
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 1 name: <infrastructure_id>-infra-<zone> 2 namespace: openshift-machine-api spec: replicas: 1 selector: matchLabels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 3 machine.openshift.io/cluster-api-machineset: <infrastructure_id>-infra-<zone> 4 template: metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 5 machine.openshift.io/cluster-api-machine-role: infra 6 machine.openshift.io/cluster-api-machine-type: infra 7 machine.openshift.io/cluster-api-machineset: <infrastructure_id>-infra-<zone> 8 spec: metadata: labels: node-role.kubernetes.io/infra: "" 9 providerSpec: value: ami: id: ami-046fe691f52a953f9 10 apiVersion: machine.openshift.io/v1beta1 blockDevices: - ebs: iops: 0 volumeSize: 120 volumeType: gp2 credentialsSecret: name: aws-cloud-credentials deviceIndex: 0 iamInstanceProfile: id: <infrastructure_id>-worker-profile 11 instanceType: m6i.large kind: AWSMachineProviderConfig placement: availabilityZone: <zone> 12 region: <region> 13 securityGroups: - filters: - name: tag:Name values: - <infrastructure_id>-worker-sg 14 subnet: filters: - name: tag:Name values: - <infrastructure_id>-private-<zone> 15 tags: - name: kubernetes.io/cluster/<infrastructure_id> 16 value: owned - name: <custom_tag_name> 17 value: <custom_tag_value> 18 userDataSecret: name: worker-user-data taints: 19 - key: node-role.kubernetes.io/infra effect: NoSchedule
- 1 3 5 11 14 16
- 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID를 지정합니다. OpenShift CLI 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
- 2 4 8
- 인프라 ID,
infra
역할 노드 레이블 및 영역을 지정합니다. - 6 7 9
infra
역할 노드 레이블을 지정합니다.- 10
- OpenShift Container Platform 노드의 AWS 영역에 유효한 RHCOS(Red Hat Enterprise Linux CoreOS) Amazon 머신 이미지(AMI)를 지정합니다. AWS Marketplace 이미지를 사용하려면 해당 리전의 AMI ID를 받으려면 AWS Marketplace 에서 OpenShift Container Platform 서브스크립션을 완료해야 합니다.
$ oc -n openshift-machine-api \ -o jsonpath='{.spec.template.spec.providerSpec.value.ami.id}{"\n"}' \ get machineset/<infrastructure_id>-<role>-<zone>
- 17 18
- 선택 사항: 클러스터의 사용자 지정 태그 데이터를 지정합니다. 예를 들어
Email:admin-email@example.com
의name:value
쌍을 지정하여 관리자 연락처 이메일 주소를 추가할 수 있습니다.참고install-config.yml
파일에서 설치 중에 사용자 지정 태그를 지정할 수도 있습니다.install-config.yml
파일과 머신 세트에 동일한name
데이터가 있는 태그가 포함된 경우 머신 세트의 태그 값이install-config.yml
파일의 태그 값보다 우선합니다. - 12
- 영역을 지정합니다(예:
us-east-1a
). - 13
- 리전을 지정합니다(예:
us-east-1
). - 15
- 인프라 ID 및 영역을 지정합니다.
- 19
- 사용자 워크로드가
infra
노드에서 예약되지 않도록 테인트를 지정합니다.참고인프라 노드에
NoSchedule
테인트를 추가하면 해당 노드에서 실행 중인 기존 DNS Pod가misscheduled
로 표시됩니다.misscheduled
DNS Pod에서 허용 오차를 삭제하거나 추가해야 합니다.
AWS에서 실행되는 머신 세트는 보장되지 않는 Spot 인스턴스를 지원합니다. AWS의 온 디맨드 인스턴스에 비해 저렴한 가격으로 Spot 인스턴스를 사용하여 비용을 절약할 수 있습니다. spotMarketOptions
를 MachineSet
YAML 파일에 추가하여 Spot 인스턴스를 구성합니다.
8.2.1.2. Azure에서 컴퓨팅 머신 세트 사용자 정의 리소스의 샘플 YAML
이 샘플 YAML은 리전의 1
Microsoft Azure 영역에서 실행되는 컴퓨팅 머신 세트를 정의하고 node-role.kubernetes.io/infra: ""
로 레이블이 지정된 노드를 만듭니다.
이 샘플에서 < infrastructure_id
>는 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID 레이블이며 infra
는 추가할 노드 레이블입니다.
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 1 machine.openshift.io/cluster-api-machine-role: infra 2 machine.openshift.io/cluster-api-machine-type: infra name: <infrastructure_id>-infra-<region> 3 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>-infra-<region> template: metadata: creationTimestamp: null labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> machine.openshift.io/cluster-api-machine-role: infra machine.openshift.io/cluster-api-machine-type: infra machine.openshift.io/cluster-api-machineset: <infrastructure_id>-infra-<region> spec: metadata: creationTimestamp: null labels: machine.openshift.io/cluster-api-machineset: <machineset_name> node-role.kubernetes.io/infra: "" providerSpec: value: apiVersion: azureproviderconfig.openshift.io/v1beta1 credentialsSecret: name: azure-cloud-credentials namespace: openshift-machine-api image: 4 offer: "" publisher: "" resourceID: /resourceGroups/<infrastructure_id>-rg/providers/Microsoft.Compute/galleries/gallery_<infrastructure_id>/images/<infrastructure_id>-gen2/versions/latest 5 sku: "" version: "" internalLoadBalancer: "" kind: AzureMachineProviderSpec location: <region> 6 managedIdentity: <infrastructure_id>-identity metadata: creationTimestamp: null natRule: null networkResourceGroup: "" osDisk: diskSizeGB: 128 managedDisk: storageAccountType: Premium_LRS osType: Linux publicIP: false publicLoadBalancer: "" resourceGroup: <infrastructure_id>-rg sshPrivateKey: "" sshPublicKey: "" tags: - name: <custom_tag_name> 7 value: <custom_tag_value> subnet: <infrastructure_id>-<role>-subnet userDataSecret: name: worker-user-data vmSize: Standard_D4s_v3 vnet: <infrastructure_id>-vnet zone: "1" 8 taints: 9 - key: node-role.kubernetes.io/infra effect: NoSchedule
- 1
- 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID를 지정합니다. OpenShift CLI 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
다음 명령을 실행하여 서브넷을 가져올 수 있습니다.
$ oc -n openshift-machine-api \ -o jsonpath='{.spec.template.spec.providerSpec.value.subnet}{"\n"}' \ get machineset/<infrastructure_id>-worker-centralus1
다음 명령을 실행하여 vnet을 가져올 수 있습니다.
$ oc -n openshift-machine-api \ -o jsonpath='{.spec.template.spec.providerSpec.value.vnet}{"\n"}' \ get machineset/<infrastructure_id>-worker-centralus1
- 2
infra
노드 레이블을 지정합니다.- 3
- 인프라 ID, 인프라 노드
레이블
및 리전을 지정합니다. - 4
- 컴퓨팅 머신 세트의 이미지 세부 정보를 지정합니다. Azure Marketplace 이미지를 사용하려면 "Azure Marketplace 이미지 선택"을 참조하십시오.
- 5
- 인스턴스 유형과 호환되는 이미지를 지정합니다. 설치 프로그램에서 생성한 Hyper-V generation V2 이미지에는
-gen2
접미사가 있지만 V1 이미지의 접미사 없이 이름이 동일합니다. - 6
- 머신을 배치할 리전을 지정합니다.
- 7
- 선택 사항: 머신 세트에서 사용자 지정 태그를 지정합니다. <
custom_tag_name
> 필드에 태그 이름과 <custom_tag_value
> 필드에 해당 태그 값을 입력합니다. - 8
- 머신을 배치할 리전 내 영역을 지정합니다. 해당 리전이 지정한 영역을 지원하는지 확인합니다.
- 9
- 사용자 워크로드가 인프라 노드에서 예약되지 않도록 테인트를 지정합니다.참고
인프라 노드에
NoSchedule
테인트를 추가하면 해당 노드에서 실행 중인 기존 DNS Pod가misscheduled
로 표시됩니다.misscheduled
DNS Pod에서 허용 오차를 삭제하거나 추가해야 합니다.
Azure에서 실행되는 머신 세트는 보장되지 않는 Spot 가상 머신을 지원합니다. Azure의 표준 가상 머신에 비해 더 낮은 가격으로 Spot 가상 머신을 사용하여 비용을 절감할 수 있습니다. spotVMOptions
를 MachineSet
YAML 파일에 추가하여 Spot 가상 머신을 구성할 수 있습니다.
추가 리소스
8.2.1.3. Azure Stack Hub에서 컴퓨팅 머신 세트 사용자 정의 리소스의 샘플 YAML
이 샘플 YAML은 리전의 1
Microsoft Azure 영역에서 실행되는 컴퓨팅 머신 세트를 정의하고 node-role.kubernetes.io/infra: ""
로 레이블이 지정된 노드를 만듭니다.
이 샘플에서 <infrastructure_id>
는 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID 레이블이며 <infra>
는 추가할 노드 레이블입니다.
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 1 machine.openshift.io/cluster-api-machine-role: <infra> 2 machine.openshift.io/cluster-api-machine-type: <infra> 3 name: <infrastructure_id>-infra-<region> 4 namespace: openshift-machine-api spec: replicas: 1 selector: matchLabels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 5 machine.openshift.io/cluster-api-machineset: <infrastructure_id>-infra-<region> 6 template: metadata: creationTimestamp: null labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 7 machine.openshift.io/cluster-api-machine-role: <infra> 8 machine.openshift.io/cluster-api-machine-type: <infra> 9 machine.openshift.io/cluster-api-machineset: <infrastructure_id>-infra-<region> 10 spec: metadata: creationTimestamp: null labels: node-role.kubernetes.io/infra: "" 11 taints: 12 - key: node-role.kubernetes.io/infra effect: NoSchedule providerSpec: value: apiVersion: machine.openshift.io/v1beta1 availabilitySet: <availability_set> 13 credentialsSecret: name: azure-cloud-credentials namespace: openshift-machine-api image: offer: "" publisher: "" resourceID: /resourceGroups/<infrastructure_id>-rg/providers/Microsoft.Compute/images/<infrastructure_id> 14 sku: "" version: "" internalLoadBalancer: "" kind: AzureMachineProviderSpec location: <region> 15 managedIdentity: <infrastructure_id>-identity 16 metadata: creationTimestamp: null natRule: null networkResourceGroup: "" osDisk: diskSizeGB: 128 managedDisk: storageAccountType: Premium_LRS osType: Linux publicIP: false publicLoadBalancer: "" resourceGroup: <infrastructure_id>-rg 17 sshPrivateKey: "" sshPublicKey: "" subnet: <infrastructure_id>-<role>-subnet 18 19 userDataSecret: name: worker-user-data 20 vmSize: Standard_DS4_v2 vnet: <infrastructure_id>-vnet 21 zone: "1" 22
- 1 5 7 14 16 17 18 21
- 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID를 지정합니다. OpenShift CLI 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
다음 명령을 실행하여 서브넷을 가져올 수 있습니다.
$ oc -n openshift-machine-api \ -o jsonpath='{.spec.template.spec.providerSpec.value.subnet}{"\n"}' \ get machineset/<infrastructure_id>-worker-centralus1
다음 명령을 실행하여 vnet을 가져올 수 있습니다.
$ oc -n openshift-machine-api \ -o jsonpath='{.spec.template.spec.providerSpec.value.vnet}{"\n"}' \ get machineset/<infrastructure_id>-worker-centralus1
- 2 3 8 9 11 19 20
<infra>
노드 레이블을 지정합니다.- 4 6 10
- 인프라 ID,
<infra>
노드 레이블 및 리전을 지정합니다. - 12
- 사용자 워크로드가 인프라 노드에서 예약되지 않도록 테인트를 지정합니다.참고
인프라 노드에
NoSchedule
테인트를 추가하면 해당 노드에서 실행 중인 기존 DNS Pod가misscheduled
로 표시됩니다.misscheduled
DNS Pod에서 허용 오차를 삭제하거나 추가해야 합니다. - 15
- 머신을 배치할 리전을 지정합니다.
- 13
- 클러스터의 가용성 세트를 지정합니다.
- 22
- 머신을 배치할 리전 내 영역을 지정합니다. 해당 리전이 지정한 영역을 지원하는지 확인합니다.
Azure Stack Hub에서 실행되는 머신 세트는 보장되지 않는 Spot 가상 머신을 지원하지 않습니다.
8.2.1.4. IBM Cloud에서 컴퓨팅 머신 세트 사용자 정의 리소스의 샘플 YAML
이 샘플 YAML은 리전의 지정된 IBM Cloud® 영역에서 실행되는 컴퓨팅 머신 세트를 정의하고 node-role.kubernetes.io/infra: ""
로 레이블이 지정된 노드를 생성합니다.
이 샘플에서 <infrastructure_id>
는 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID 레이블이며 <infra>
는 추가할 노드 레이블입니다.
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 1 machine.openshift.io/cluster-api-machine-role: <infra> 2 machine.openshift.io/cluster-api-machine-type: <infra> 3 name: <infrastructure_id>-<infra>-<region> 4 namespace: openshift-machine-api spec: replicas: 1 selector: matchLabels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 5 machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<infra>-<region> 6 template: metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 7 machine.openshift.io/cluster-api-machine-role: <infra> 8 machine.openshift.io/cluster-api-machine-type: <infra> 9 machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<infra>-<region> 10 spec: metadata: labels: node-role.kubernetes.io/infra: "" providerSpec: value: apiVersion: ibmcloudproviderconfig.openshift.io/v1beta1 credentialsSecret: name: ibmcloud-credentials image: <infrastructure_id>-rhcos 11 kind: IBMCloudMachineProviderSpec primaryNetworkInterface: securityGroups: - <infrastructure_id>-sg-cluster-wide - <infrastructure_id>-sg-openshift-net subnet: <infrastructure_id>-subnet-compute-<zone> 12 profile: <instance_profile> 13 region: <region> 14 resourceGroup: <resource_group> 15 userDataSecret: name: <role>-user-data 16 vpc: <vpc_name> 17 zone: <zone> 18 taints: 19 - key: node-role.kubernetes.io/infra effect: NoSchedule
- 1 5 7
- 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID입니다. OpenShift CLI 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
- 2 3 8 9 16
<infra>
노드 레이블입니다.- 4 6 10
- 인프라 ID,
<infra>
노드 레이블 및 리전입니다. - 11
- 클러스터 설치에 사용된 사용자 지정 RHCOS(Red Hat Enterprise Linux CoreOS) 이미지입니다.
- 12
- 머신을 배치할 리전 내의 인프라 ID 및 영역입니다. 해당 리전이 지정한 영역을 지원하는지 확인합니다.
- 13
- IBM Cloud® 인스턴스 프로필을 지정합니다.
- 14
- 머신을 배치할 리전을 지정합니다.
- 15
- 시스템 리소스가 배치되는 리소스 그룹입니다. 이는 설치 시 지정된 기존 리소스 그룹 또는 인프라 ID를 기반으로 이름이 지정된 설치 관리자 생성 리소스 그룹입니다.
- 17
- VPC 이름입니다.
- 18
- 머신을 배치할 리전 내 영역을 지정합니다. 해당 리전이 지정한 영역을 지원하는지 확인합니다.
- 19
- 사용자 워크로드가 인프라 노드에서 예약되지 않도록 하는 테인트입니다.참고
인프라 노드에
NoSchedule
테인트를 추가하면 해당 노드에서 실행 중인 기존 DNS Pod가misscheduled
로 표시됩니다.misscheduled
DNS Pod에서 허용 오차를 삭제하거나 추가해야 합니다.
8.2.1.5. GCP에서 컴퓨팅 머신 세트 사용자 정의 리소스의 샘플 YAML
이 샘플 YAML은 GCP(Google Cloud Platform)에서 실행되는 컴퓨팅 머신 세트를 정의하고 node-role.kubernetes.io/infra: ""
로 레이블이 지정된 노드를 생성합니다. 여기서 infra
는 추가할 노드 레이블입니다.
OpenShift CLI를 사용하여 얻은 값
다음 예제에서는 OpenShift CLI를 사용하여 클러스터의 일부 값을 가져올 수 있습니다.
- 인프라 ID
<infrastructure_id>
문자열은 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID입니다. OpenShift CLI 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
- 이미지 경로
<path_to_image>
문자열은 디스크를 생성하는 데 사용된 이미지의 경로입니다. OpenShift CLI가 설치되어 있으면 다음 명령을 실행하여 이미지에 대한 경로를 얻을 수 있습니다.$ oc -n openshift-machine-api \ -o jsonpath='{.spec.template.spec.providerSpec.value.disks[0].image}{"\n"}' \ get machineset/<infrastructure_id>-worker-a
샘플 GCP MachineSet
값
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 1 name: <infrastructure_id>-w-a 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>-w-a template: metadata: creationTimestamp: null labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> machine.openshift.io/cluster-api-machine-role: <infra> 2 machine.openshift.io/cluster-api-machine-type: <infra> machine.openshift.io/cluster-api-machineset: <infrastructure_id>-w-a spec: metadata: labels: node-role.kubernetes.io/infra: "" providerSpec: value: apiVersion: gcpprovider.openshift.io/v1beta1 canIPForward: false credentialsSecret: name: gcp-cloud-credentials deletionProtection: false disks: - autoDelete: true boot: true image: <path_to_image> 3 labels: null sizeGb: 128 type: pd-ssd gcpMetadata: 4 - key: <custom_metadata_key> value: <custom_metadata_value> kind: GCPMachineProviderSpec machineType: n1-standard-4 metadata: creationTimestamp: null networkInterfaces: - network: <infrastructure_id>-network subnetwork: <infrastructure_id>-worker-subnet projectID: <project_name> 5 region: us-central1 serviceAccounts: 6 - email: <infrastructure_id>-w@<project_name>.iam.gserviceaccount.com scopes: - https://www.googleapis.com/auth/cloud-platform tags: - <infrastructure_id>-worker userDataSecret: name: worker-user-data zone: us-central1-a taints: 7 - key: node-role.kubernetes.io/infra effect: NoSchedule
- 1
<infrastructure_id>
의 경우 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID를 지정합니다.- 2
<infra>
의 경우<infra>
노드 레이블을 지정합니다.- 3
- 현재 컴퓨팅 머신 세트에 사용되는 이미지의 경로를 지정합니다.
GCP Marketplace 이미지를 사용하려면 사용할 제안을 지정합니다.
-
OpenShift Container Platform:
https://www.googleapis.com/compute/v1/projects/redhat-marketplace-public/global/images/redhat-coreos-ocp-413-x86-64-202305021736
-
OpenShift Platform Plus:
https://www.googleapis.com/compute/v1/projects/redhat-marketplace-public/global/images/redhat-coreos-opp-413-x86-64-202305021736
-
OpenShift Kubernetes Engine:
https://www.googleapis.com/compute/v1/projects/redhat-marketplace-public/global/images/redhat-coreos-oke-413-x86-64-202305021736
-
OpenShift Container Platform:
- 4
- 선택 사항:
key:value
쌍 형식으로 사용자 지정 메타데이터를 지정합니다. 사용 사례의 예는 사용자 정의 메타데이터 설정에 대한 GCP 설명서를 참조하십시오. - 5
<project_name>
의 경우 클러스터에 사용하는 GCP 프로젝트의 이름을 지정합니다.- 6
- 단일 서비스 계정을 지정합니다. 여러 서비스 계정이 지원되지 않습니다.
- 7
- 사용자 워크로드가 인프라 노드에서 예약되지 않도록 테인트를 지정합니다.참고
인프라 노드에
NoSchedule
테인트를 추가하면 해당 노드에서 실행 중인 기존 DNS Pod가misscheduled
로 표시됩니다.misscheduled
DNS Pod에서 허용 오차를 삭제하거나 추가해야 합니다.
GCP에서 실행되는 머신 세트는 보장되지 않는 선점 가능한 가상 머신 인스턴스를 지원합니다. GCP의 일반 인스턴스에 비해 더 낮은 가격으로 선점 가능한 가상 머신 인스턴스를 사용하여 비용을 절감할 수 있습니다. preemptible 을 MachineSet
YAML 파일에 preemptible
추가하여 선점 가능한 가상 머신 인스턴스를 구성할 수 있습니다.
8.2.1.6. Nutanix에서 컴퓨팅 머신 세트 사용자 정의 리소스의 샘플 YAML
이 샘플 YAML은 node-role.kubernetes.io/infra: ""
로 레이블이 지정된 노드를 생성하는 Nutanix 컴퓨팅 머신 세트를 정의합니다.
이 샘플에서 <infrastructure_id>
는 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID 레이블이며 <infra>
는 추가할 노드 레이블입니다.
OpenShift CLI를 사용하여 얻은 값
다음 예제에서는 OpenShift CLI(oc
)를 사용하여 클러스터의 일부 값을 가져올 수 있습니다.
- 인프라 ID
<infrastructure_id>
문자열은 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID입니다. OpenShift CLI 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 1 machine.openshift.io/cluster-api-machine-role: <infra> 2 machine.openshift.io/cluster-api-machine-type: <infra> name: <infrastructure_id>-<infra>-<zone> 3 namespace: openshift-machine-api annotations: 4 machine.openshift.io/memoryMb: "16384" machine.openshift.io/vCPU: "4" spec: replicas: 3 selector: matchLabels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<infra>-<zone> template: metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> machine.openshift.io/cluster-api-machine-role: <infra> machine.openshift.io/cluster-api-machine-type: <infra> machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<infra>-<zone> spec: metadata: labels: node-role.kubernetes.io/infra: "" providerSpec: value: apiVersion: machine.openshift.io/v1 bootType: "" 5 categories: 6 - key: <category_name> value: <category_value> cluster: 7 type: uuid uuid: <cluster_uuid> credentialsSecret: name: nutanix-credentials image: name: <infrastructure_id>-rhcos 8 type: name kind: NutanixMachineProviderConfig memorySize: 16Gi 9 project: 10 type: name name: <project_name> subnets: - type: uuid uuid: <subnet_uuid> systemDiskSize: 120Gi 11 userDataSecret: name: <user_data_secret> 12 vcpuSockets: 4 13 vcpusPerSocket: 1 14 taints: 15 - key: node-role.kubernetes.io/infra effect: NoSchedule
- 1
<infrastructure_id>
의 경우 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID를 지정합니다.- 2
<infra>
노드 레이블을 지정합니다.- 3
- 인프라 ID,
<infra>
노드 레이블 및 영역을 지정합니다. - 4
- 클러스터 자동 스케일러에 대한 주석입니다.
- 5
- 컴퓨팅 시스템에서 사용하는 부팅 유형을 지정합니다. 부팅 유형에 대한 자세한 내용은 가상화 된 환경에서 UEFI, Secure Boot 및 TPM 이해를 참조하십시오. 유효한 값은
Legacy
,SecureBoot
또는UEFI
입니다. 기본값은Legacy
입니다.참고OpenShift Container Platform 4.17에서
레거시
부팅 유형을 사용해야 합니다. - 6
- 컴퓨팅 머신에 적용할 하나 이상의 Nutanix Prism 카테고리를 지정합니다. 이 스탠자에는 Prism Central에 존재하는 카테고리 키-값 쌍에 대한
key
및value
매개변수가 필요합니다. 카테고리에 대한 자세한 내용은 카테고리 관리를 참조하십시오. - 7
- Nutanix Prism Element 클러스터 구성을 지정합니다. 이 예에서 클러스터 유형은
uuid
이므로uuid
스탠자가 있습니다. - 8
- 사용할 이미지를 지정합니다. 클러스터의 기존 기본 컴퓨팅 머신 세트의 이미지를 사용합니다.
- 9
- Gi에 클러스터의 메모리 양을 지정합니다.
- 10
- 클러스터에 사용하는 Nutanix 프로젝트를 지정합니다. 이 예에서 프로젝트 유형은
name
이므로name
스탠자가 있습니다. - 11
- Gi에서 시스템 디스크 크기를 지정합니다.
- 12
openshift-machine-api
네임스페이스에 있는 사용자 데이터 YAML 파일에서 시크릿 이름을 지정합니다. 설치 프로그램이 기본 컴퓨팅 시스템 세트에 채우는 값을 사용합니다.- 13
- vCPU 소켓 수를 지정합니다.
- 14
- 소켓당 vCPU 수를 지정합니다.
- 15
- 사용자 워크로드가 인프라 노드에서 예약되지 않도록 테인트를 지정합니다.참고
인프라 노드에
NoSchedule
테인트를 추가하면 해당 노드에서 실행 중인 기존 DNS Pod가misscheduled
로 표시됩니다.misscheduled
DNS Pod에서 허용 오차를 삭제하거나 추가해야 합니다.
8.2.1.7. RHOSP에서 컴퓨팅 머신 세트 사용자 정의 리소스의 샘플 YAML
이 샘플 YAML은 RHOSP(Red Hat OpenStack Platform)에서 실행되는 컴퓨팅 머신 세트를 정의하고 node-role.kubernetes.io/infra: ""
로 레이블이 지정된 노드를 생성합니다.
이 샘플에서 <infrastructure_id>
는 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID 레이블이며 <infra>
는 추가할 노드 레이블입니다.
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 1 machine.openshift.io/cluster-api-machine-role: <infra> 2 machine.openshift.io/cluster-api-machine-type: <infra> 3 name: <infrastructure_id>-infra 4 namespace: openshift-machine-api spec: replicas: <number_of_replicas> selector: matchLabels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 5 machine.openshift.io/cluster-api-machineset: <infrastructure_id>-infra 6 template: metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 7 machine.openshift.io/cluster-api-machine-role: <infra> 8 machine.openshift.io/cluster-api-machine-type: <infra> 9 machine.openshift.io/cluster-api-machineset: <infrastructure_id>-infra 10 spec: metadata: creationTimestamp: null labels: node-role.kubernetes.io/infra: "" taints: 11 - key: node-role.kubernetes.io/infra effect: NoSchedule providerSpec: value: apiVersion: machine.openshift.io/v1alpha1 cloudName: openstack cloudsSecret: name: openstack-cloud-credentials namespace: openshift-machine-api flavor: <nova_flavor> image: <glance_image_name_or_location> serverGroupID: <optional_UUID_of_server_group> 12 kind: OpenstackProviderSpec networks: 13 - filter: {} subnets: - filter: name: <subnet_name> tags: openshiftClusterID=<infrastructure_id> 14 primarySubnet: <rhosp_subnet_UUID> 15 securityGroups: - filter: {} name: <infrastructure_id>-worker 16 serverMetadata: Name: <infrastructure_id>-worker 17 openshiftClusterID: <infrastructure_id> 18 tags: - openshiftClusterID=<infrastructure_id> 19 trunk: true userDataSecret: name: worker-user-data 20 availabilityZone: <optional_openstack_availability_zone>
- 1 5 7 14 16 17 18 19
- 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID를 지정합니다. OpenShift CLI 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
- 2 3 8 9 20
<infra>
노드 레이블을 지정합니다.- 4 6 10
- 인프라 ID 및
<infra>
노드 레이블을 지정합니다. - 11
- 사용자 워크로드가 인프라 노드에서 예약되지 않도록 테인트를 지정합니다.참고
인프라 노드에
NoSchedule
테인트를 추가하면 해당 노드에서 실행 중인 기존 DNS Pod가misscheduled
로 표시됩니다.misscheduled
DNS Pod에서 허용 오차를 삭제하거나 추가해야 합니다. - 12
- MachineSet의 서버 그룹 정책을 설정하려면, 서버 그룹 생성에서 반환된 값을 입력합니다. 대부분의 배포에는
anti-affinity
또는soft-anti-affinity
정책이 권장됩니다. - 13
- 여러 네트워크에 배포해야 합니다. 여러 네트워크에 배포하는 경우 이 목록에는
primarySubnet
값으로 사용되는 네트워크를 포함해야 합니다. - 15
- 노드 엔드포인트를 게시할 RHOSP 서브넷을 지정합니다. 일반적으로 이 서브넷은
install-config.yaml
파일에서machineSubnet
값으로 사용되는 서브넷과 동일합니다.
8.2.1.8. vSphere에서 컴퓨팅 머신 세트 사용자 정의 리소스의 샘플 YAML
이 샘플 YAML은 VMware vSphere에서 실행되는 컴퓨팅 머신 세트를 정의하고 node-role.kubernetes.io/infra: ""
로 레이블이 지정된 노드를 생성합니다.
이 샘플에서 <infrastructure_id>
는 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID 레이블이며 <infra>
는 추가할 노드 레이블입니다.
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: creationTimestamp: null labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 1 name: <infrastructure_id>-infra 2 namespace: openshift-machine-api spec: replicas: 1 selector: matchLabels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 3 machine.openshift.io/cluster-api-machineset: <infrastructure_id>-infra 4 template: metadata: creationTimestamp: null labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 5 machine.openshift.io/cluster-api-machine-role: <infra> 6 machine.openshift.io/cluster-api-machine-type: <infra> 7 machine.openshift.io/cluster-api-machineset: <infrastructure_id>-infra 8 spec: metadata: creationTimestamp: null labels: node-role.kubernetes.io/infra: "" 9 taints: 10 - key: node-role.kubernetes.io/infra effect: NoSchedule providerSpec: value: apiVersion: vsphereprovider.openshift.io/v1beta1 credentialsSecret: name: vsphere-cloud-credentials diskGiB: 120 kind: VSphereMachineProviderSpec memoryMiB: 8192 metadata: creationTimestamp: null network: devices: - networkName: "<vm_network_name>" 11 numCPUs: 4 numCoresPerSocket: 1 snapshot: "" template: <vm_template_name> 12 userDataSecret: name: worker-user-data workspace: datacenter: <vcenter_data_center_name> 13 datastore: <vcenter_datastore_name> 14 folder: <vcenter_vm_folder_path> 15 resourcepool: <vsphere_resource_pool> 16 server: <vcenter_server_ip> 17
- 1 3 5
- 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID를 지정합니다. OpenShift CLI (
oc
) 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
- 2 4 8
- 인프라 ID 및
<infra>
노드 레이블을 지정합니다. - 6 7 9
<infra>
노드 레이블을 지정합니다.- 10
- 사용자 워크로드가 인프라 노드에서 예약되지 않도록 테인트를 지정합니다.참고
인프라 노드에
NoSchedule
테인트를 추가하면 해당 노드에서 실행 중인 기존 DNS Pod가misscheduled
로 표시됩니다.misscheduled
DNS Pod에서 허용 오차를 삭제하거나 추가해야 합니다. - 11
- 컴퓨팅 머신 세트를 배포할 vSphere VM 네트워크를 지정합니다. 이 VM 네트워크는 다른 컴퓨팅 시스템이 클러스터에 상주하는 위치여야 합니다.
- 12
- 사용할 vSphere VM 템플릿 (예:
user-5ddjd-rhcos)
을 지정합니다. - 13
- 컴퓨팅 머신 세트를 배포할 vCenter 데이터 센터를 지정합니다.
- 14
- 컴퓨팅 머신 세트를 배포할 vCenter 데이터 저장소를 지정합니다.
- 15
- vCenter의 vSphere VM 폴더에 경로(예:
/dc1/vm/user-inst-5ddjd
)를 지정합니다. - 16
- VM의 vSphere 리소스 풀을 지정합니다.
- 17
- vCenter 서버 IP 또는 정규화된 도메인 이름을 지정합니다.
8.2.2. 컴퓨팅 머신 세트 생성
설치 프로그램에서 생성한 컴퓨팅 머신 세트 외에도 고유한 머신 세트를 생성하여 선택한 특정 워크로드의 머신 컴퓨팅 리소스를 동적으로 관리할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 클러스터를 배포합니다.
-
OpenShift CLI(
oc
)를 설치합니다. -
cluster-admin
권한이 있는 사용자로oc
에 로그인합니다.
프로세스
컴퓨팅 머신 세트 CR(사용자 정의 리소스) 샘플이 포함된 새 YAML 파일을 만들고
<file_name>.yaml
이라는 이름을 지정합니다.<clusterID>
및<role>
매개 변수 값을 설정해야 합니다.선택 사항: 특정 필드에 설정할 값이 확실하지 않은 경우 클러스터에서 기존 컴퓨팅 머신 세트를 확인할 수 있습니다.
클러스터의 컴퓨팅 머신 세트를 나열하려면 다음 명령을 실행합니다.
$ oc get machinesets -n openshift-machine-api
출력 예
NAME DESIRED CURRENT READY AVAILABLE AGE agl030519-vplxk-worker-us-east-1a 1 1 1 1 55m agl030519-vplxk-worker-us-east-1b 1 1 1 1 55m agl030519-vplxk-worker-us-east-1c 1 1 1 1 55m agl030519-vplxk-worker-us-east-1d 0 0 55m agl030519-vplxk-worker-us-east-1e 0 0 55m agl030519-vplxk-worker-us-east-1f 0 0 55m
특정 컴퓨팅 머신 세트 CR(사용자 정의 리소스)의 값을 보려면 다음 명령을 실행합니다.
$ oc get machineset <machineset_name> \ -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 ...
다음 명령을 실행하여
MachineSet
CR을 생성합니다.$ oc create -f <file_name>.yaml
검증
다음 명령을 실행하여 컴퓨팅 머신 세트 목록을 확인합니다.
$ oc get machineset -n openshift-machine-api
출력 예
NAME DESIRED CURRENT READY AVAILABLE AGE agl030519-vplxk-infra-us-east-1a 1 1 1 1 11m agl030519-vplxk-worker-us-east-1a 1 1 1 1 55m agl030519-vplxk-worker-us-east-1b 1 1 1 1 55m agl030519-vplxk-worker-us-east-1c 1 1 1 1 55m agl030519-vplxk-worker-us-east-1d 0 0 55m agl030519-vplxk-worker-us-east-1e 0 0 55m agl030519-vplxk-worker-us-east-1f 0 0 55m
새 컴퓨팅 머신 세트를 사용할 수 있으면
DESIRED
및CURRENT
값이 일치합니다. 컴퓨팅 머신 세트를 사용할 수 없는 경우 몇 분 기다렸다가 명령을 다시 실행합니다.
8.2.3. 인프라 노드 생성
설치 관리자 프로비저닝 인프라 환경 또는 머신 API에서 컨트롤 플레인 노드를 관리하는 클러스터의 인프라 머신 세트 생성을 참조하십시오.
클러스터의 요구 사항은 infra
노드라고도 불리는 인프라를 프로비저닝해야 합니다. 설치 프로그램은 컨트롤 플레인 및 작업자 노드에 대한 프로비저닝만 제공합니다. 작업자 노드는 레이블을 통해 인프라 노드 또는 애플리케이션 ( app, app
이라고도 함)으로 지정할 수 있습니다.
프로세스
애플리케이션 노드 역할을 수행할 작업자 노드에 레이블을 추가합니다.
$ oc label node <node-name> node-role.kubernetes.io/app=""
인프라 노드 역할을 수행할 작업자 노드에 레이블을 추가합니다.
$ oc label node <node-name> node-role.kubernetes.io/infra=""
해당 노드에
infra
역할 및app
역할이 있는지 확인합니다.$ oc get nodes
기본 클러스터 수준 노드 선택기를 생성합니다. 기본 노드 선택기는 모든 네임스페이스에서 생성된 Pod에 적용됩니다. 이렇게 하면 Pod의 기존 노드 선택기와 교차점이 생성되어 Pod의 선택기가 추가로 제한됩니다.
중요기본 노드 선택기 키가 Pod 라벨 키와 충돌하는 경우 기본 노드 선택기가 적용되지 않습니다.
그러나 Pod를 예약할 수 없게 만들 수 있는 기본 노드 선택기를 설정하지 마십시오. 예를 들어 Pod의 라벨이
node-role.kubernetes.io/master=""
와 같은 다른 노드 역할로 설정된 경우 기본 노드 선택기를node-role.kubernetes.io/infra=""
와 같은 특정 노드 역할로 설정하면 Pod를 예약할 수 없게 될 수 있습니다. 따라서 기본 노드 선택기를 특정 노드 역할로 설정할 때 주의해야 합니다.또는 프로젝트 노드 선택기를 사용하여 클러스터 수준 노드 선택기 키 충돌을 방지할 수 있습니다.
Scheduler
오브젝트를 편집합니다.$ oc edit scheduler cluster
적절한 노드 선택기를 사용하여
defaultNodeSelector
필드를 추가합니다.apiVersion: config.openshift.io/v1 kind: Scheduler metadata: name: cluster spec: defaultNodeSelector: node-role.kubernetes.io/infra="" 1 # ...
- 1
- 이 예제 노드 선택기는 기본적으로 인프라 노드에 Pod를 배포합니다.
- 파일을 저장하여 변경 사항을 적용합니다.
이제 인프라 리소스를 새로 레이블이 지정된 infra
노드로 이동할 수 있습니다.
추가 리소스
8.2.4. 인프라 머신의 머신 구성 풀 생성
전용 구성을 위한 인프라 머신이 필요한 경우 인프라 풀을 생성해야 합니다.
사용자 지정 머신 구성 풀을 생성하면 동일한 파일 또는 장치를 참조하는 경우 기본 작업자 풀 구성이 재정의됩니다.
프로세스
특정 레이블이 있는 인프라 노드로 할당하려는 노드에 레이블을 추가합니다.
$ oc label node <node_name> <label>
$ oc label node ci-ln-n8mqwr2-f76d1-xscn2-worker-c-6fmtx node-role.kubernetes.io/infra=
작업자 역할과 사용자 지정 역할을 모두 포함하는 머신 구성 풀을 머신 구성 선택기로 생성합니다.
$ cat infra.mcp.yaml
출력 예
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfigPool metadata: name: infra spec: machineConfigSelector: matchExpressions: - {key: machineconfiguration.openshift.io/role, operator: In, values: [worker,infra]} 1 nodeSelector: matchLabels: node-role.kubernetes.io/infra: "" 2
참고사용자 지정 머신 구성 풀은 작업자 풀의 머신 구성을 상속합니다. 사용자 지정 풀은 작업자 풀을 대상으로 하는 머신 구성을 사용하지만 사용자 지정 풀을 대상으로 하는 변경 사항만 배포할 수 있는 기능을 추가합니다. 사용자 지정 풀은 작업자 풀에서 리소스를 상속하므로 작업자 풀을 변경하면 사용자 지정 풀에도 영향을 줍니다.
YAML 파일이 있으면 머신 구성 풀을 생성할 수 있습니다.
$ oc create -f infra.mcp.yaml
머신 구성을 확인하고 인프라 구성이 성공적으로 렌더링되었는지 확인합니다.
$ oc get machineconfig
출력 예
NAME GENERATEDBYCONTROLLER IGNITIONVERSION CREATED 00-master 365c1cfd14de5b0e3b85e0fc815b0060f36ab955 3.2.0 31d 00-worker 365c1cfd14de5b0e3b85e0fc815b0060f36ab955 3.2.0 31d 01-master-container-runtime 365c1cfd14de5b0e3b85e0fc815b0060f36ab955 3.2.0 31d 01-master-kubelet 365c1cfd14de5b0e3b85e0fc815b0060f36ab955 3.2.0 31d 01-worker-container-runtime 365c1cfd14de5b0e3b85e0fc815b0060f36ab955 3.2.0 31d 01-worker-kubelet 365c1cfd14de5b0e3b85e0fc815b0060f36ab955 3.2.0 31d 99-master-1ae2a1e0-a115-11e9-8f14-005056899d54-registries 365c1cfd14de5b0e3b85e0fc815b0060f36ab955 3.2.0 31d 99-master-ssh 3.2.0 31d 99-worker-1ae64748-a115-11e9-8f14-005056899d54-registries 365c1cfd14de5b0e3b85e0fc815b0060f36ab955 3.2.0 31d 99-worker-ssh 3.2.0 31d rendered-infra-4e48906dca84ee702959c71a53ee80e7 365c1cfd14de5b0e3b85e0fc815b0060f36ab955 3.2.0 23m rendered-master-072d4b2da7f88162636902b074e9e28e 5b6fb8349a29735e48446d435962dec4547d3090 3.2.0 31d rendered-master-3e88ec72aed3886dec061df60d16d1af 02c07496ba0417b3e12b78fb32baf6293d314f79 3.2.0 31d rendered-master-419bee7de96134963a15fdf9dd473b25 365c1cfd14de5b0e3b85e0fc815b0060f36ab955 3.2.0 17d rendered-master-53f5c91c7661708adce18739cc0f40fb 365c1cfd14de5b0e3b85e0fc815b0060f36ab955 3.2.0 13d rendered-master-a6a357ec18e5bce7f5ac426fc7c5ffcd 365c1cfd14de5b0e3b85e0fc815b0060f36ab955 3.2.0 7d3h rendered-master-dc7f874ec77fc4b969674204332da037 5b6fb8349a29735e48446d435962dec4547d3090 3.2.0 31d rendered-worker-1a75960c52ad18ff5dfa6674eb7e533d 5b6fb8349a29735e48446d435962dec4547d3090 3.2.0 31d rendered-worker-2640531be11ba43c61d72e82dc634ce6 5b6fb8349a29735e48446d435962dec4547d3090 3.2.0 31d rendered-worker-4e48906dca84ee702959c71a53ee80e7 365c1cfd14de5b0e3b85e0fc815b0060f36ab955 3.2.0 7d3h rendered-worker-4f110718fe88e5f349987854a1147755 365c1cfd14de5b0e3b85e0fc815b0060f36ab955 3.2.0 17d rendered-worker-afc758e194d6188677eb837842d3b379 02c07496ba0417b3e12b78fb32baf6293d314f79 3.2.0 31d rendered-worker-daa08cc1e8f5fcdeba24de60cd955cc3 365c1cfd14de5b0e3b85e0fc815b0060f36ab955 3.2.0 13d
rendered-infra-*
접두사가 있는 새 머신 구성이 표시되어야 합니다.선택 사항: 사용자 지정 풀에 변경 사항을 배포하려면
infra
와 같은 사용자 지정 풀 이름을 레이블로 사용하는 머신 구성을 생성합니다. 필수 사항은 아니며 지침 용도로만 표시됩니다. 이렇게 하면 인프라 노드에 고유한 사용자 지정 구성을 적용할 수 있습니다.참고새 머신 구성 풀을 생성한 후 MCO는 해당 풀에 대해 새로 렌더링된 구성과 해당 풀의 관련 노드를 다시 부팅하여 새 구성을 적용합니다.
머신 구성을 생성합니다.
$ cat infra.mc.yaml
출력 예
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: name: 51-infra labels: machineconfiguration.openshift.io/role: infra 1 spec: config: ignition: version: 3.2.0 storage: files: - path: /etc/infratest mode: 0644 contents: source: data:,infra
- 1
- 노드에 추가한 레이블을
nodeSelector
로 추가합니다.
머신 구성을 인프라 레이블 노드에 적용합니다.
$ oc create -f infra.mc.yaml
새 머신 구성 풀을 사용할 수 있는지 확인합니다.
$ oc get mcp
출력 예
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE infra rendered-infra-60e35c2e99f42d976e084fa94da4d0fc True False False 1 1 1 0 4m20s master rendered-master-9360fdb895d4c131c7c4bebbae099c90 True False False 3 3 3 0 91m worker rendered-worker-60e35c2e99f42d976e084fa94da4d0fc True False False 2 2 2 0 91m
이 예에서는 작업자 노드가 인프라 노드로 변경되었습니다.
추가 리소스
- 사용자 지정 풀에서 인프라 머신 그룹화에 대한 자세한 내용은 머신 구성 풀을 사용한 노드 구성 관리를 참조하십시오.