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
Copy to Clipboard Toggle word wrap

1
cluster である ControlPlaneMachineSet CR の名前を指定します。この値は変更しないでください。
2
コントロールプレーンマシンの数を指定します。3 つのコントロールプレーンマシンを持つクラスターのみがサポートされているため、replicas の値は 3 です。水平スケーリングはサポートされていません。この値は変更しないでください。
3
クラスターのプロビジョニング時に設定したクラスター ID を基にするインフラストラクチャー ID を指定します。ControlPlaneMachineSet CR を作成するときに、この値を指定する必要があります。OpenShift CLI (oc) がインストールされている場合は、以下のコマンドを実行してインフラストラクチャー ID を取得できます。
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
Copy to Clipboard Toggle word wrap
4
Operator の状態を指定します。状態が Inactive の場合、Operator は操作できません。値を Active に設定することで、Operator をアクティブ化できます。
重要

Operator をアクティブ化する前に、ControlPlaneMachineSet CR 設定がクラスター要件に対して正しいことを確認する必要があります。Control Plane Machine Set Operator のアクティブ化の詳細は、「コントロールプレーンマシンセットの概要」を参照してください。

5
クラスターの更新戦略を指定します。許可される値は OnDeleteRollingUpdate です。デフォルト値は RollingUpdate です。更新戦略の詳細は、「コントロールプレーン設定の更新」を参照してください。
6
クラウドプロバイダーのプラットフォーム名を指定します。この値は変更しないでください。
7
クラスターの <platform_failure_domains> 設定を指定します。このセクションのフォーマットと値はプロバイダー固有です。詳細は、クラウドプロバイダーの障害ドメイン設定サンプルを参照してください。
注記

VMware vSphere は、コントロールプレーンマシンセットの障害ドメインをサポートしていません。

8
クラスターの <platform_provider_spec> 設定を指定します。このセクションのフォーマットと値はプロバイダー固有です。詳細は、クラウドプロバイダーのサンプルプロバイダー仕様を参照してください。
プロバイダー固有の設定

コントロールプレーンマシンセットリソースの <platform_provider_spec> および <platform_failure_domains> セクションは、プロバイダー固有です。クラスターのサンプル YAML を参照してください。

12.3.2. Amazon Web Services クラスターを設定するサンプル YAML

コントロールプレーンマシンセット CR の一部のセクションは、プロバイダー固有です。このセクションの YAML の例は、Amazon Web Services (AWS) クラスターのプロバイダー仕様と障害ドメイン設定を示しています。

12.3.2.1. AWS プロバイダーの仕様例

既存のクラスター用のコントロールプレーンマシンセットを作成する場合、プロバイダーの仕様が、インストールプログラムによって作成されるコントロールプレーンマシンのカスタムリソース (CR) の providerSpec 設定と一致する必要があります。CR の障害ドメインセクションに設定されているフィールドは省略できます。

次の例で、<cluster_id> は、クラスターをプロビジョニングしたときに設定したクラスター ID に基づくインフラストラクチャー ID です。OpenShift CLI がインストールされている場合は、以下のコマンドを実行してインフラストラクチャー ID を取得できます。

$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
Copy to Clipboard Toggle word wrap

サンプル 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
Copy to Clipboard Toggle word wrap

1
クラスターの Red Hat Enterprise Linux CoreOS (RHCOS) Amazon Machine Image (AMI) ID を指定します。AMI はクラスターと同じリージョンに属する必要があります。AWS Marketplace イメージを使用する場合は、AWS Marketplace から OpenShift Container Platform サブスクリプションを完了して、リージョンの AMI ID を取得する必要があります。
2
暗号化された EBS ボリュームの設定を指定します。
3
クラスターのシークレット名を指定します。この値は変更しないでください。
4
AWS Identity and Access Management (IAM) インスタンスプロファイルを指定します。この値は変更しないでください。
5
コントロールプレーンの AWS インスタンスタイプを指定します。
6
クラウドプロバイダープラットフォームのタイプを指定します。この値は変更しないでください。
7
クラスターの内部 (int) および外部 (ext) ロードバランサーを指定します。
注記

プライベート OpenShift Container Platform クラスターでは、外部 (ext) ロードバランサーパラメーターを省略できます。

8
このパラメーターは障害ドメインで設定され、ここでは空の値で表示されます。このパラメーターに指定された値が障害ドメインの値と異なる場合、Operator はそれを障害ドメインの値で上書きします。
9
クラスターの AWS リージョンを指定します。
10
コントロールプレーンマシンのセキュリティーグループを指定します。
11
このパラメーターは障害ドメインで設定され、ここでは空の値で表示されます。このパラメーターに指定された値が障害ドメインの値と異なる場合、Operator はそれを障害ドメインの値で上書きします。
12
コントロールプレーンのユーザーデータシークレットを指定します。この値は変更しないでください。

12.3.2.2. 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
Copy to Clipboard Toggle word wrap

1
最初の障害ドメインの AWS アベイラビリティゾーンを指定します。
2
サブネット設定を指定します。この例では、サブネットタイプが Filters であるため、filters スタンザがあります。
3
インフラストラクチャー ID と AWS アベイラビリティゾーンを使用して、最初の障害ドメインのサブネット名を指定します。
4
サブネットタイプを指定します。許可される値は、ARNFilters、および ID です。デフォルト値は Filters です。
5
インフラストラクチャー ID と AWS アベイラビリティゾーンを使用して、追加の障害ドメインのサブネット名を指定します。
6
クラスターのインフラストラクチャー ID と、追加の障害ドメインの AWS アベイラビリティゾーンを指定します。
7
クラウドプロバイダーのプラットフォーム名を指定します。この値は変更しないでください。

12.3.3. Google Cloud Platform クラスターを設定するためのサンプル YAML

コントロールプレーンマシンセット CR の一部のセクションは、プロバイダー固有です。このセクションの YAML の例は、Google Cloud Platform (GCP) クラスターのプロバイダー仕様と障害ドメイン設定を示しています。

12.3.3.1. GCP プロバイダーの仕様例

既存のクラスター用のコントロールプレーンマシンセットを作成する場合、プロバイダーの仕様が、インストールプログラムによって作成されるコントロールプレーンマシンのカスタムリソース (CR) の providerSpec 設定と一致する必要があります。CR の障害ドメインセクションに設定されているフィールドは省略できます。

OpenShift CLI を使用して取得した値

以下の例では、OpenShift CLI を使用してクラスターの値の一部を取得できます。

インフラストラクチャー ID

<cluster_id> 文字列は、クラスターをプロビジョニングしたときに設定したクラスター ID に基づくインフラストラクチャー ID です。OpenShift CLI がインストールされている場合は、以下のコマンドを実行してインフラストラクチャー ID を取得できます。

$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
Copy to Clipboard Toggle word wrap
イメージパス

<path_to_image> 文字列は、ディスクの作成に使用されたイメージへのパスです。OpenShift CLI がインストールされている場合は、以下のコマンドを実行してイメージへのパスを取得できます。

$ oc -n openshift-machine-api \
  -o jsonpath='{.spec.template.machines_v1beta1_machine_openshift_io.spec.providerSpec.value.disks[0].image}{"\n"}' \
  get ControlPlaneMachineSet/cluster
Copy to Clipboard Toggle word wrap

GCP providerSpec の値の例

apiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
metadata:
  name: cluster
  namespace: openshift-machine-api
spec:
# ...
  template:
# ...
      spec:
        providerSpec:
          value:
            apiVersion: machine.openshift.io/v1beta1
            canIPForward: false
            credentialsSecret:
              name: gcp-cloud-credentials 
1

            deletionProtection: false
            disks:
            - autoDelete: true
              boot: true
              image: <path_to_image> 
2

              labels: null
              sizeGb: 200
              type: pd-ssd
            kind: GCPMachineProviderSpec 
3

            machineType: e2-standard-4
            metadata:
              creationTimestamp: null
            metadataServiceOptions: {}
            networkInterfaces:
            - network: <cluster_id>-network
              subnetwork: <cluster_id>-master-subnet
            projectID: <project_name> 
4

            region: <region> 
5

            serviceAccounts: 
6

            - email: <cluster_id>-m@<project_name>.iam.gserviceaccount.com
              scopes:
              - https://www.googleapis.com/auth/cloud-platform
            shieldedInstanceConfig: {}
            tags:
            - <cluster_id>-master
            targetPools:
            - <cluster_id>-api
            userDataSecret:
              name: master-user-data 
7

            zone: "" 
8
Copy to Clipboard Toggle word wrap

1
クラスターのシークレット名を指定します。この値は変更しないでください。
2
ディスクの作成に使用されたイメージへのパスを指定します。

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
3
クラウドプロバイダープラットフォームのタイプを指定します。この値は変更しないでください。
4
クラスターに使用する GCP プロジェクトの名前を指定します。
5
クラスターの GCP リージョンを指定します。
6
単一のサービスアカウントを指定します。複数のサービスアカウントはサポートされていません。
7
コントロールプレーンのユーザーデータシークレットを指定します。この値は変更しないでください。
8
このパラメーターは障害ドメインで設定され、ここでは空の値で表示されます。このパラメーターに指定された値が障害ドメインの値と異なる場合、Operator はそれを障害ドメインの値で上書きします。

12.3.3.2. GCP 障害ドメインの設定例

障害ドメインのコントロールプレーンマシンセットの概念は、既存の GCP の ゾーン の概念に似ています。ControlPlaneMachineSet CR は、可能な場合、コントロールプレーンマシンを複数の障害ドメインに分散します。

コントロールプレーンマシンセットで GCP 障害ドメインを設定する場合は、使用するゾーン名を指定する必要があります。

GCP 障害ドメインの値の例

failureDomains:
  gcp:
  - zone: <gcp_zone_a> 
1

  - zone: <gcp_zone_b> 
2

  - zone: <gcp_zone_c>
  - zone: <gcp_zone_d>
  platform: GCP 
3
Copy to Clipboard Toggle word wrap

1
最初の障害ドメインの GCP ゾーンを指定します。
2
追加の障害ドメインを指定します。さらに障害ドメインが同じ方法で追加されます。
3
クラウドプロバイダーのプラットフォーム名を指定します。この値は変更しないでください。

12.3.4. Microsoft Azure クラスターを設定するためのサンプル YAML

コントロールプレーンマシンセット CR の一部のセクションは、プロバイダー固有です。このセクションの YAML の例は、Azure クラスターのプロバイダーの仕様と障害ドメインの設定を示しています。

12.3.4.1. Azure プロバイダーの仕様例

既存クラスター用のコントロールプレーンマシンセットを作成する場合、プロバイダーの仕様は、インストールプログラムによって作成されるコントロールプレーン machine CR の providerSpec 設定と一致する必要があります。CR の障害ドメインセクションに設定されているフィールドは省略できます。

次の例で、<cluster_id> は、クラスターをプロビジョニングしたときに設定したクラスター ID に基づくインフラストラクチャー ID です。OpenShift CLI がインストールされている場合は、以下のコマンドを実行してインフラストラクチャー ID を取得できます。

$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
Copy to Clipboard Toggle word wrap

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
Copy to Clipboard Toggle word wrap

1
クラスターのシークレット名を指定します。この値は変更しないでください。
2
コントロールプレーンマシンセットのイメージの詳細を指定します。
3
インスタンスタイプと互換性のあるイメージを指定します。インストールプログラムによって作成された Hyper-V 世代の V2 イメージには接尾辞 -gen2 が付いていますが、V1 イメージには接尾辞のない同じ名前が付いています。
4
コントロールプレーンの内部ロードバランサーを指定します。このフィールドは事前入力されていない可能性がありますが、ControlPlaneMachineSet とコントロールプレーン Machin CR の両方で必要です。
5
クラウドプロバイダープラットフォームのタイプを指定します。この値は変更しないでください。
6
コントロールプレーンマシンを配置するリージョンを指定します。
7
コントロールプレーンのディスク設定を指定します。
8
コントロールプレーンのパブリックロードバランサーを指定します。
注記

ユーザー定義のアウトバウンドルーティングを持つプライベート OpenShift Container Platform クラスターでは、publicLoadBalancer パラメーターを省略できます。

9
コントロールプレーンのサブネットを指定します。
10
コントロールプレーンのユーザーデータシークレットを指定します。この値は変更しないでください。
11
このパラメーターは障害ドメインで設定され、ここでは空の値で表示されます。このパラメーターに指定された値が障害ドメインの値と異なる場合、Operator はそれを障害ドメインの値で上書きします。

12.3.4.2. Azure 障害ドメイン設定のサンプル

障害ドメインのコントロールプレーンマシンセットの概念は、Azure 可用性ゾーン の既存の Azure 概念に似ています。ControlPlaneMachineSet CR は、可能な場合、コントロールプレーンマシンを複数の障害ドメインに分散します。

コントロールプレーンマシンセットで Azure 障害ドメインを設定するときは、可用性ゾーン名を指定する必要があります。

Azure 障害ドメインの値のサンプル

failureDomains:
  azure: 
1

  - zone: "1"
  - zone: "2"
  - zone: "3"
  platform: Azure 
2
Copy to Clipboard Toggle word wrap

1
zone の各インスタンスは、障害ドメインの Azure アベイラビリティーゾーンを指定します。
2
クラウドプロバイダーのプラットフォーム名を指定します。この値は変更しないでください。

12.3.5. VMware vSphere クラスターを設定するためのサンプル YAML

コントロールプレーンマシンセット CR の一部のセクションは、プロバイダー固有です。このセクションの YAML の例は、VMware vSphere クラスターのプロバイダー仕様の設定を示しています。

12.3.5.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
Copy to Clipboard Toggle word wrap

1
クラスターのシークレット名を指定します。この値は変更しないでください。
2
コントロールプレーンマシンの VM ディスクサイズを指定します。
3
クラウドプロバイダープラットフォームのタイプを指定します。この値は変更しないでください。
4
コントロールプレーンマシンに割り当てられるメモリーを指定します。
5
コントロールプレーンがデプロイされるネットワークを指定します。
6
コントロールプレーンマシンに割り当てられる CPU の数を指定します。
7
各コントロールプレーン CPU のコア数を指定します。
8
user-5ddjd-rhcos など、使用する vSphere VM テンプレートを指定します。
9
コントロールプレーンのユーザーデータシークレットを指定します。この値は変更しないでください。
10
コントロールプレーンの vCenter データセンターを指定します。
11
コントロールプレーンの vCenter データストアを指定します。
12
/dc1/vm/user-inst-5ddjd などの vCenter の vSphere 仮想マシンフォルダーへのパスを指定します。
13
仮想マシンの vSphere リソースプールを指定します。
14
vCenter サーバーの IP または完全修飾ドメイン名を指定します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat