11.4. Cluster API マシンの設定オプション


11.4.1. Amazon Web Services の Cluster API 設定オプション

Cluster API カスタムリソースマニフェストの値を更新することで、Amazon Web Services (AWS) Cluster API マシンの設定を変更できます。

重要

Cluster API を使用したマシン管理は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

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

次の YAML ファイルの例は、Amazon Web Services クラスターの設定を示しています。

11.4.1.1.1. Amazon Web Services 上の Cluster API マシンテンプレートリソースのサンプル YAML

マシンテンプレートリソースはプロバイダー固有であり、コンピュートマシンセットが作成するマシンの基本的なプロパティーを定義します。コンピュートマシンセットは、マシン作成時にこのテンプレートを参照します。

apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: AWSMachineTemplate 
1

metadata:
  name: <template_name> 
2

  namespace: openshift-cluster-api
spec:
  template:
    spec: 
3

      iamInstanceProfile: # ...
      instanceType: m5.large
      ignition:
        storageType: UnencryptedUserData
        version: "3.4"
      ami:
        id: # ...
      subnet:
        filters:
        - name: tag:Name
          values:
          - # ...
      additionalSecurityGroups:
      - filters:
        - name: tag:Name
          values:
          - # ...
Copy to Clipboard Toggle word wrap
1
マシンテンプレートの種類を指定します。この値は、プラットフォームの値と一致する必要があります。
2
マシンテンプレートの名前を指定します。
3
環境の詳細を指定します。ここに示す値はサンプルです。

コンピュートマシンセットリソースは、作成するマシンの追加プロパティーを定義します。また、コンピュートマシンセットは、マシンを作成するときにクラスターリソースとマシンテンプレートを参照します。

apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineSet
metadata:
  name: <machine_set_name> 
1

  namespace: openshift-cluster-api
  labels:
    cluster.x-k8s.io/cluster-name: <cluster_name> 
2

spec:
  clusterName: <cluster_name> 
3

  replicas: 1
  selector:
    matchLabels:
      test: example
      cluster.x-k8s.io/cluster-name: <cluster_name>
      cluster.x-k8s.io/set-name: <machine_set_name>
  template:
    metadata:
      labels:
        test: example
        cluster.x-k8s.io/cluster-name: <cluster_name>
        cluster.x-k8s.io/set-name: <machine_set_name>
        node-role.kubernetes.io/<role>: ""
    spec:
      bootstrap:
         dataSecretName: worker-user-data
      clusterName: <cluster_name>
      infrastructureRef:
        apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
        kind: AWSMachineTemplate 
4

        name: <template_name> 
5
Copy to Clipboard Toggle word wrap
1
コンピュートマシンセットの名前を指定します。通常、この値のパターンは、クラスター ID、マシンのロール、およびリージョンにより、<cluster_name>-<role>-<region> という形で構成されます。
2 3
クラスターの名前としてクラスター ID を指定します。
4
マシンテンプレートの種類を指定します。この値は、プラットフォームの値と一致する必要があります。
5
マシンテンプレート名を指定します。

11.4.1.2. Cluster API を使用した Amazon Web Services 機能の有効化

Cluster API カスタムリソースマニフェストの値を更新することで、次の機能を有効にできます。

11.4.1.2.1. Elastic Fabric Adapter インスタンスとプレースメントグループのオプション

既存の AWS プレースメントグループ内の Elastic Fabric Adapter (EFA) インスタンスにコンピュートマシンをデプロイできます。

EFA インスタンスにはプレースメントグループは必要なく、EFA の設定以外の目的にもプレースメントグループを使用できます。次の例では、EFA とプレースメントグループを併用して、指定したプレースメントグループ内のマシンのネットワークパフォーマンスを向上させる設定を示しています。

独自の設定でコンピュートマシンをデプロイするには、マシンテンプレートの YAML ファイルに適切な値を設定します。次に、マシンセットの YAML ファイルを設定し、マシンをデプロイする際にそのマシンテンプレートを参照するようにします。

EFA インスタンスとプレースメントグループの設定例

apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: AWSMachineTemplate
# ...
spec:
  template:
    spec:
      instanceType: <supported_instance_type> 
1

      networkInterfaceType: efa 
2

      placementGroupName: <placement_group> 
3

      placementGroupPartition: <placement_group_partition_number> 
4

# ...
Copy to Clipboard Toggle word wrap

1
EFA をサポートする インスタンスタイプを指定します。
2
efa ネットワークインターフェイスタイプを指定します。
3
マシンをデプロイする既存の AWS プレースメントグループの名前を指定します。
4
オプション: マシンをデプロイする既存の AWS プレースメントグループのパーティション番号を指定します。
注記

作成するプレースメントグループのタイプの ルールと制限 が、意図した使用例と互換性があることを確認してください。

11.4.1.2.2. Amazon EC2 インスタンスメタデータサービスの設定オプション

Amazon Web Services (AWS) クラスター上のマシンが使用する Amazon EC2 インスタンスメタデータサービス (IMDS) のバージョンを制限できます。マシンでは、IMDSv2 (AWS ドキュメント) の使用を必須にすることも、IMDSv2 に加えて IMDSv1 の使用を許可することもできます。

独自の設定でコンピュートマシンをデプロイするには、マシンテンプレートの YAML ファイルに適切な値を設定します。次に、マシンセットの YAML ファイルを設定し、マシンをデプロイする際にそのマシンテンプレートを参照するようにします。

重要

IMDSv2 を必要とするマシンを作成する前に、IMDS と対話するすべてのワークロードが IMDSv2 をサポートしていることを確認してください。

IMDS の設定例

apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: AWSMachineTemplate
# ...
spec:
  template:
    spec:
      instanceMetadataOptions:
        httpEndpoint: enabled
        httpPutResponseHopLimit: 1 
1

        httpTokens: optional 
2

        instanceMetadataTags: disabled
# ...
Copy to Clipboard Toggle word wrap

1
IMDSv2 呼び出しに許可されるネットワークホップの数を指定します。値が指定されていない場合、このパラメーターはデフォルトで 1 に設定されます。
2
IMDSv2 の使用を必須にするかどうかを指定します。値が指定されていない場合、このパラメーターはデフォルトで optional に設定されます。次の値が有効です。
optional
IMDSv1 と IMDSv2 の両方の使用を許可します。
required
IMDSv2 が必要です。
注記

Machine API は、httpEndpointhttpPutResponseHopLimit、および instanceMetadataTags フィールドをサポートしていません。この機能を使用する Cluster API のマシンテンプレートを Machine API のコンピュートマシンセットに移行した場合、作成される Machine API のマシンにはこれらのフィールドが含まれず、基盤となるインスタンスでもこれらの設定は使用されません。移行されたマシンセットが管理する既存のマシンはこれらのフィールドを保持し、基盤となるインスタンスは引き続きこれらの設定を使用します。

IMDSv2 の使用を必須とした場合、タイムアウトが発生する可能性があります。軽減ストラテジーを含む詳細は、Instance metadata access considerations (AWS ドキュメント) を参照してください。

11.4.1.2.3. 専有インスタンスの設定オプション

Amazon Web Services (AWS) クラスター上の専有インスタンスによってサポートされるマシンをデプロイできます。

専有インスタンスは、単一のお客様専用のハードウェア上の仮想プライベートクラウド (VPC) で実行されます。これらの Amazon EC2 インスタンスは、ホストのハードウェアレベルで物理的に分離されます。インスタンスが単一つの有料アカウントにリンクされている別の AWS アカウントに属する場合でも、専有インスタンスの分離が生じます。ただし、専有ではない他のインスタンスは、それらが同じ AWS アカウントに属する場合は、ハードウェアを専有インスタンスと共有できます。

OpenShift Container Platform は、パブリックまたは専用テナンシーのインスタンスをサポートします。

独自の設定でコンピュートマシンをデプロイするには、マシンテンプレートの YAML ファイルに適切な値を設定します。次に、マシンセットの YAML ファイルを設定し、マシンをデプロイする際にそのマシンテンプレートを参照するようにします。

専有インスタンスの設定例

apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: AWSMachineTemplate
# ...
spec:
  template:
    spec:
      tenancy: dedicated 
1

# ...
Copy to Clipboard Toggle word wrap

1
単一テナントハードウェア上で実行される専用テナンシーのインスタンスの使用を指定します。この値を指定しない場合は、共有ハードウェア上で実行されるパブリックテナンシーのインスタンスがデフォルトで使用されます。
11.4.1.2.4. 保証されないスポットインスタンスと 1 時間あたりのコスト上限

Amazon Web Services (AWS) に保証されないスポットインスタンスとしてマシンをデプロイできます。Spot インスタンスは、AWS EC2 の予備容量を使用するため、On-Demand インスタンスよりも安価です。Spot インスタンスは、バッチやステートレス、水平的に拡張可能なワークロードなどの割り込みを許容できるワークロードに使用することができます。

独自の設定でコンピュートマシンをデプロイするには、マシンテンプレートの YAML ファイルに適切な値を設定します。次に、マシンセットの YAML ファイルを設定し、マシンをデプロイする際にそのマシンテンプレートを参照するようにします。

重要

AWS EC2 は、Spot インスタンスの容量をいつでも回収できます。

スポットインスタンスの設定例

apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: AWSMachineTemplate
# ...
spec:
  template:
    spec:
      spotMarketOptions: 
1

        maxPrice: <price_per_hour> 
2

# ...
Copy to Clipboard Toggle word wrap

1
Spot インスタンスの使用を指定します。
2
オプション: スポットインスタンスの時間あたりのコスト制限を米ドルで指定します。たとえば、<price_per_hour> 値を 2.50 に設定すると、Spot インスタンスのコストは 1 時間あたり 2.50 USD に制限されます。この値が設定されていない場合、最大料金としてオンデマンドインスタンスの料金まで請求されます。
警告

特定の maxPrice: <price_per_hour> 値を設定すると、デフォルトのオンデマンドインスタンス価格を使用する場合と比較して、中断の頻度が増加する可能性があります。デフォルトのオンデマンドインスタンス価格を使用し、スポットインスタンスの最大価格を設定しないことを強く推奨します。

以下の理由により、Spot インスタンスを使用すると中断が生じる可能性があります。

  • インスタンス価格は最大価格を超えます。
  • Spot インスタンスの需要は増大します。
  • Spot インスタンスの供給は減少します。

AWS は、中断の発生時にユーザーに警告を 2 分間表示します。OpenShift Container Platform は、AWS が終了に関する警告を発行する際に影響を受けるインスタンスからワークロードを削除し始めます。

AWS がインスタンスを終了すると、Spot インスタンスノードで実行される終了ハンドラーによりマシンリソースが削除されます。コンピュートマシンセットの replicas の量を満たすために、コンピュートマシンセットはスポットインスタンスを要求するマシンを作成します。

11.4.1.2.5. Capacity Reservation の設定オプション

OpenShift Container Platform バージョン 4.19 以降では、On-Demand Capacity Reservation および Capacity Blocks for ML を含む Amazon Web Services クラスターでの Capacity Reservation がサポートされます。

定義した容量要求のパラメーターに一致する利用可能なリソースにマシンをデプロイできます。これらのパラメーターは、予約するインスタンスのタイプ、リージョン、およびインスタンスの数を指定します。Capacity Reservation が容量要求に対応できる場合、デプロイメントは成功します。

独自の設定でコンピュートマシンをデプロイするには、マシンテンプレートの YAML ファイルに適切な値を設定します。次に、マシンセットの YAML ファイルを設定し、マシンをデプロイする際にそのマシンテンプレートを参照するようにします。

Capacity Reservation の設定例

apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: AWSMachineTemplate
# ...
spec:
  template:
    spec:
      capacityReservationId: <capacity_reservation> 
1

      marketType: <market_type> 
2

# ...
Copy to Clipboard Toggle word wrap

1
マシンをデプロイする対象となる、Capacity Block for ML または On-Demand Capacity Reservation の ID を指定します。
2
使用するマーケットタイプを指定します。次の値が有効です。
CapacityBlock
このマーケットタイプは、Capacity Blocks for ML とともに使用します。
OnDemand
このマーケットタイプは、On-Demand Capacity Reservation で使用します。
Spot
このマーケットタイプは、Spot インスタンスで使用します。このオプションは Capacity Reservation と互換性がありません。

このサービスの制限事項や推奨されるユースケースなどの詳細は、AWS ドキュメントの On-Demand Capacity Reservations and Capacity Blocks for ML を参照してください。

11.4.1.2.6. GPU 対応マシンのオプション

Amazon Web Services (AWS) に GPU 対応コンピュートマシンをデプロイできます。次のサンプル設定では、例として NVIDIA Tesla T4 Tensor Core GPU を含む AWS G4dn インスタンスタイプ を使用しています。

サポートされているインスタンスタイプの詳細は、NVIDIA ドキュメントの次のページを参照してください。

独自の設定でコンピュートマシンをデプロイするには、マシンテンプレート YAML ファイルと、マシンをデプロイするときにマシンテンプレートを参照するマシンセット YAML ファイルに適切な値を設定します。

GPU 対応マシンテンプレートの設定例

apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: AWSMachineTemplate
# ...
spec:
  template:
    spec:
      instanceType: g4dn.xlarge 
1

# ...
Copy to Clipboard Toggle word wrap

1
G4dn インスタンスタイプを指定します。

GPU 対応マシンセットの設定例

apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineSet
metadata:
  name: <cluster_name>-gpu-<region> 
1

  namespace: openshift-cluster-api
  labels:
    cluster.x-k8s.io/cluster-name: <cluster_name>
spec:
  clusterName: <cluster_name>
  replicas: 1
  selector:
    matchLabels:
      test: example
      cluster.x-k8s.io/cluster-name: <cluster_name>
      cluster.x-k8s.io/set-name: <cluster_name>-gpu-<region> 
2

  template:
    metadata:
      labels:
        test: example
        cluster.x-k8s.io/cluster-name: <cluster_name>
        cluster.x-k8s.io/set-name: <cluster_name>-gpu-<region> 
3

        node-role.kubernetes.io/<role>: ""
# ...
Copy to Clipboard Toggle word wrap

1
gpu ロールを含む名前を指定します。名前には、接頭辞としてクラスター ID が含まれ、接尾辞としてリージョンが含まれます。
2
マシンセット名に一致するセレクターラベルを指定します。
3
マシンセット名に一致するテンプレートラベルを指定します。

11.4.2. Google Cloud Platform の Cluster API 設定オプション

Cluster API カスタムリソースマニフェストの値を更新することで、Google Cloud Platform (GCP) Cluster API マシンの設定を変更できます。

重要

Cluster API を使用したマシン管理は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

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

次の YAML ファイルの例は、Google Cloud Platform クラスターの設定を示しています。

11.4.2.1.1. Google Cloud Platform 上の Cluster API マシンテンプレートリソースのサンプル YAML

マシンテンプレートリソースはプロバイダー固有であり、コンピュートマシンセットが作成するマシンの基本的なプロパティーを定義します。コンピュートマシンセットは、マシン作成時にこのテンプレートを参照します。

apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: GCPMachineTemplate 
1

metadata:
  name: <template_name> 
2

  namespace: openshift-cluster-api
spec:
  template:
    spec: 
3

      rootDeviceType: pd-ssd
      rootDeviceSize: 128
      instanceType: n1-standard-4
      image: projects/rhcos-cloud/global/images/rhcos-411-85-202203181601-0-gcp-x86-64
      subnet: <cluster_name>-worker-subnet
      serviceAccounts:
        email: <service_account_email_address>
        scopes:
          - https://www.googleapis.com/auth/cloud-platform
      additionalLabels:
        kubernetes-io-cluster-<cluster_name>: owned
      additionalNetworkTags:
        - <cluster_name>-worker
      ipForwarding: Disabled
Copy to Clipboard Toggle word wrap
1
マシンテンプレートの種類を指定します。この値は、プラットフォームの値と一致する必要があります。
2
マシンテンプレートの名前を指定します。
3
環境の詳細を指定します。ここに示す値はサンプルです。
11.4.2.1.2. Google Cloud Platform 上の Cluster API コンピュートマシンセットリソースのサンプル YAML

コンピュートマシンセットリソースは、作成するマシンの追加プロパティーを定義します。また、コンピュートマシンセットは、マシンを作成するときにクラスターリソースとマシンテンプレートを参照します。

apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineSet
metadata:
  name: <machine_set_name> 
1

  namespace: openshift-cluster-api
  labels:
    cluster.x-k8s.io/cluster-name: <cluster_name> 
2

spec:
  clusterName: <cluster_name> 
3

  replicas: 1
  selector:
    matchLabels:
      test: example
      cluster.x-k8s.io/cluster-name: <cluster_name>
      cluster.x-k8s.io/set-name: <machine_set_name>
  template:
    metadata:
      labels:
        test: example
        cluster.x-k8s.io/cluster-name: <cluster_name>
        cluster.x-k8s.io/set-name: <machine_set_name>
        node-role.kubernetes.io/<role>: ""
    spec:
      bootstrap:
         dataSecretName: worker-user-data
      clusterName: <cluster_name>
      infrastructureRef:
        apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
        kind: GCPMachineTemplate 
4

        name: <template_name> 
5

      failureDomain: <failure_domain> 
6
Copy to Clipboard Toggle word wrap
1
コンピュートマシンセットの名前を指定します。通常、この値のパターンは、クラスター ID、マシンのロール、およびリージョンにより、<cluster_name>-<role>-<region> という形で構成されます。
2 3
クラスターの名前としてクラスター ID を指定します。
4
マシンテンプレートの種類を指定します。この値は、プラットフォームの値と一致する必要があります。
5
マシンテンプレート名を指定します。
6
GCP リージョン内の障害ドメインを指定します。

11.4.3. Microsoft Azure の Cluster API 設定オプション

Cluster API カスタムリソースマニフェストの値を更新することで、Microsoft Azure Cluster API マシンの設定を変更できます。

重要

Cluster API を使用したマシン管理は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

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

次の YAML ファイルの例は、Azure クラスターの設定を示しています。

11.4.3.1.1. Microsoft Azure 上の Cluster API マシンテンプレートリソースのサンプル YAML

マシンテンプレートリソースはプロバイダー固有であり、コンピュートマシンセットが作成するマシンの基本的なプロパティーを定義します。コンピュートマシンセットは、マシン作成時にこのテンプレートを参照します。

apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: AzureMachineTemplate 
1

metadata:
  name: <template_name> 
2

  namespace: openshift-cluster-api
spec:
  template:
    spec: 
3

      disableExtensionOperations: true
      identity: UserAssigned
      image:
        id: /subscriptions/<subscription_id>/resourceGroups/<cluster_name>-rg/providers/Microsoft.Compute/galleries/gallery_<compliant_cluster_name>/images/<cluster_name>-gen2/versions/latest 
4

      networkInterfaces:
        - acceleratedNetworking: true
          privateIPConfigs: 1
          subnetName: <cluster_name>-worker-subnet
      osDisk:
        diskSizeGB: 128
        managedDisk:
          storageAccountType: Premium_LRS
        osType: Linux
      sshPublicKey: <ssh_key_value>
      userAssignedIdentities:
        - providerID: 'azure:///subscriptions/<subscription_id>/resourcegroups/<cluster_name>-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<cluster_name>-identity'
      vmSize: Standard_D4s_v3
Copy to Clipboard Toggle word wrap
1
マシンテンプレートの種類を指定します。この値は、プラットフォームの値と一致する必要があります。
2
マシンテンプレートの名前を指定します。
3
環境の詳細を指定します。ここに示す値はサンプルです。
4
インスタンスタイプと互換性のあるイメージを指定します。インストールプログラムによって作成された Hyper-V 世代の V2 イメージには接尾辞 -gen2 が付いていますが、V1 イメージには接尾辞のない同じ名前が付いています。
注記

デフォルトの OpenShift Container Platform クラスター名にはハイフン (-) が含まれています。これは Azure ギャラリー名の要件に準拠していません。この要件に準拠するには、この設定の <compliant_cluster_name> の値にハイフンではなくアンダースコア (_) を使用する必要があります。他の <cluster_name> は変更しません。

たとえば、クラスター名 jdoe-test-2m2npjdoe_test_2m2np に変換します。この例の gallery_<compliant_cluster_name> の完全な文字列は、gallery_jdoe-test-2m2np ではなく gallery_jdoe_test_2m2np です。この例の値を使用した spec.template.spec.image.id の完全な値は、/subscriptions/<subscription_id>/resourceGroups/jdoe-test-2m2np-rg/providers/Microsoft.Compute/galleries/gallery_jdoe_test_2m2np/images/jdoe-test-2m2np-gen2/versions/latest です。

11.4.3.1.2. Microsoft Azure 上の Cluster API コンピュートマシンセットリソースのサンプル YAML

コンピュートマシンセットリソースは、作成するマシンの追加プロパティーを定義します。また、コンピュートマシンセットは、マシンを作成するときにクラスターリソースとマシンテンプレートを参照します。

apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineSet
metadata:
  name: <machine_set_name> 
1

  namespace: openshift-cluster-api
  labels:
    cluster.x-k8s.io/cluster-name: <cluster_name> 
2

spec:
  clusterName: <cluster_name>
  replicas: 1
  selector:
    matchLabels:
      test: example
      cluster.x-k8s.io/cluster-name: <cluster_name>
      cluster.x-k8s.io/set-name: <machine_set_name>
  template:
    metadata:
      labels:
        test: example
        cluster.x-k8s.io/cluster-name: <cluster_name>
        cluster.x-k8s.io/set-name: <machine_set_name>
        node-role.kubernetes.io/<role>: ""
    spec:
      bootstrap:
         dataSecretName: worker-user-data
      clusterName: <cluster_name>
      infrastructureRef:
        apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
        kind: AzureMachineTemplate 
3

        name: <template_name> 
4
Copy to Clipboard Toggle word wrap
1
コンピュートマシンセットの名前を指定します。通常、この値のパターンは、クラスター ID、マシンのロール、およびリージョンにより、<cluster_name>-<role>-<region> という形で構成されます。
2
クラスターの名前としてクラスター ID を指定します。
3
マシンテンプレートの種類を指定します。この値は、プラットフォームの値と一致する必要があります。
4
マシンテンプレート名を指定します。

11.4.4. Red Hat OpenStack Platform の Cluster API 設定オプション

Cluster API カスタムリソースマニフェストの値を更新することで、Red Hat OpenStack Platform (RHOSP) Cluster API マシンの設定を変更できます。

重要

Cluster API を使用したマシン管理は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

11.4.4.1. RHOSP クラスターを設定するためのサンプル YAML

次の YAML ファイルの例は、RHOSP クラスターの設定を示しています。

11.4.4.1.1. RHOSP 上の Cluster API マシンテンプレートリソースのサンプル YAML

マシンテンプレートリソースはプロバイダー固有であり、コンピュートマシンセットが作成するマシンの基本的なプロパティーを定義します。コンピュートマシンセットは、マシン作成時にこのテンプレートを参照します。

apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: OpenStackMachineTemplate 
1

metadata:
  name: <template_name> 
2

  namespace: openshift-cluster-api
spec:
  template:
    spec: 
3

      flavor: <openstack_node_machine_flavor> 
4

      image:
        filter:
          name: <openstack_image> 
5
Copy to Clipboard Toggle word wrap
1
マシンテンプレートの種類を指定します。この値は、プラットフォームの値と一致する必要があります。
2
マシンテンプレートの名前を指定します。
3
環境の詳細を指定します。ここに示す値はサンプルです。
4
使用する RHOSP フレーバーを指定します。詳細は、インスタンス起動用のフレーバーの作成 を参照してください。
5
使用するイメージを指定します。
11.4.4.1.2. RHOSP 上の Cluster API コンピュートマシンセットリソースのサンプル YAML

コンピュートマシンセットリソースは、作成するマシンの追加プロパティーを定義します。コンピュートマシンセットは、マシン作成時にインフラストラクチャーリソースとマシンテンプレートも参照します。

apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineSet
metadata:
  name: <machine_set_name> 
1

  namespace: openshift-cluster-api
spec:
  clusterName: <cluster_name> 
2

  replicas: 1
  selector:
    matchLabels:
      test: example
      cluster.x-k8s.io/cluster-name: <cluster_name>
      cluster.x-k8s.io/set-name: <machine_set_name>
  template:
    metadata:
      labels:
        test: example
        cluster.x-k8s.io/cluster-name: <cluster_name>
        cluster.x-k8s.io/set-name: <machine_set_name>
        node-role.kubernetes.io/<role>: ""
    spec:
      bootstrap:
         dataSecretName: worker-user-data 
3

      clusterName: <cluster_name>
      infrastructureRef:
        apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
        kind: OpenStackMachineTemplate 
4

        name: <template_name> 
5

      failureDomain: <nova_availability_zone> 
6
Copy to Clipboard Toggle word wrap
1
コンピュートマシンセットの名前を指定します。
2
クラスターの名前としてクラスター ID を指定します。
3
テクノロジープレビューの Cluster API では、Operator は openshift-machine-api namespace のワーカーユーザーデータシークレットを使用できます。
4
マシンテンプレートの種類を指定します。この値は、プラットフォームの値と一致する必要があります。
5
マシンテンプレート名を指定します。
6
オプション: マシンを作成するマシンセットの Nova アベイラビリティーゾーンの名前を指定します。値を指定しない場合、マシンは特定のアベイラビリティーゾーンに制限されません。

11.4.5. VMware vSphere の Cluster API 設定オプション

Cluster API カスタムリソースマニフェストの値を更新することで、VMware vSphere Cluster API マシンの設定を変更できます。

重要

Cluster API を使用したマシン管理は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

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

次の YAML ファイルの例は、VMware vSphere クラスターの設定を示しています。

11.4.5.1.1. VMware vSphere 上の Cluster API マシンテンプレートリソースのサンプル YAML

マシンテンプレートリソースはプロバイダー固有であり、コンピュートマシンセットが作成するマシンの基本的なプロパティーを定義します。コンピュートマシンセットは、マシン作成時にこのテンプレートを参照します。

apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: VSphereMachineTemplate 
1

metadata:
  name: <template_name> 
2

  namespace: openshift-cluster-api
spec:
  template:
    spec: 
3

      template: <vm_template_name> 
4

      server: <vcenter_server_ip> 
5

      diskGiB: 128
      cloneMode: linkedClone 
6

      datacenter: <vcenter_data_center_name> 
7

      datastore: <vcenter_datastore_name> 
8

      folder: <vcenter_vm_folder_path> 
9

      resourcePool: <vsphere_resource_pool> 
10

      numCPUs: 4
      memoryMiB: 16384
      network:
        devices:
        - dhcp4: true
          networkName: "<vm_network_name>" 
11
Copy to Clipboard Toggle word wrap
1
マシンテンプレートの種類を指定します。この値は、プラットフォームの値と一致する必要があります。
2
マシンテンプレートの名前を指定します。
3
環境の詳細を指定します。ここに示す値はサンプルです。
4
user-5ddjd-rhcos などの使用する vSphere 仮想マシンテンプレートを指定します。
5
vCenter サーバーの IP または完全修飾ドメイン名を指定します。
6
使用する仮想マシンクローンのタイプを指定します。次の値が有効です。
  • fullClone
  • linkedClone

linkedClone タイプを使用する場合、ディスクサイズは diskGiB 値を使用するのではなく、クローンソースと同じになります。詳細は、仮想マシンのクローンタイプに関する vSphere のドキュメントを参照してください。

7
コンピュートマシンセットをデプロイする vCenter データセンターを指定します。
8
コンピュートマシンセットをデプロイする vCenter データストアを指定します。
9
/dc1/vm/user-inst-5ddjd などの vCenter の vSphere 仮想マシンフォルダーへのパスを指定します。
10
仮想マシンの vSphere リソースプールを指定します。
11
コンピュートマシンセットをデプロイする vSphere 仮想マシンネットワークを指定します。この仮想マシンネットワークは、他のコンピューティングマシンがクラスター内に存在する場所である必要があります。
11.4.5.1.2. VMware vSphere 上の Cluster API コンピュートマシンセットリソースのサンプル YAML

コンピュートマシンセットリソースは、作成するマシンの追加プロパティーを定義します。また、コンピュートマシンセットは、マシンを作成するときにクラスターリソースとマシンテンプレートを参照します。

apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineSet
metadata:
  name: <machine_set_name> 
1

  namespace: openshift-cluster-api
  labels:
    cluster.x-k8s.io/cluster-name: <cluster_name> 
2

spec:
  clusterName: <cluster_name> 
3

  replicas: 1
  selector:
    matchLabels:
      test: example
      cluster.x-k8s.io/cluster-name: <cluster_name>
      cluster.x-k8s.io/set-name: <machine_set_name>
  template:
    metadata:
      labels:
        test: example
        cluster.x-k8s.io/cluster-name: <cluster_name>
        cluster.x-k8s.io/set-name: <machine_set_name>
        node-role.kubernetes.io/<role>: ""
    spec:
      bootstrap:
         dataSecretName: worker-user-data
      clusterName: <cluster_name>
      infrastructureRef:
        apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
        kind: VSphereMachineTemplate 
4

        name: <template_name> 
5

      failureDomain: 
6

        - name: <failure_domain_name>
          region: <region_a>
          zone: <zone_a>
          server: <vcenter_server_name>
          topology:
            datacenter: <region_a_data_center>
            computeCluster: "</region_a_data_center/host/zone_a_cluster>"
            resourcePool: "</region_a_data_center/host/zone_a_cluster/Resources/resource_pool>"
            datastore: "</region_a_data_center/datastore/datastore_a>"
            networks:
            - port-group
Copy to Clipboard Toggle word wrap
1
コンピュートマシンセットの名前を指定します。通常、この値のパターンは、クラスター ID、マシンのロール、およびリージョンにより、<cluster_name>-<role>-<region> という形で構成されます。
2 3
クラスターの名前としてクラスター ID を指定します。
4
マシンテンプレートの種類を指定します。この値は、プラットフォームの値と一致する必要があります。
5
マシンテンプレート名を指定します。
6
障害ドメイン設定の詳細を指定します。
注記

Cluster API を使用する vSphere クラスターで複数のリージョンとゾーンを使用することは、検証済みの設定ではありません。

11.4.6. ベアメタルの Cluster API 設定オプション

Cluster API カスタムリソースマニフェストの値を更新することで、ベアメタル Cluster API マシンの設定を変更できます。

重要

Cluster API を使用したマシン管理は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

11.4.6.1. ベアメタルクラスターを設定するためのサンプル YAML

次の YAML ファイルの例は、ベアメタルクラスターの設定を示しています。

11.4.6.1.1. ベアメタル上の Cluster API マシンテンプレートリソースのサンプル YAML

マシンテンプレートリソースはプロバイダー固有であり、コンピュートマシンセットが作成するマシンの基本的なプロパティーを定義します。コンピュートマシンセットは、マシン作成時にこのテンプレートを参照します。

apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: Metal3MachineTemplate 
1

metadata:
  name: <template_name>  
2

  namespace: openshift-cluster-api
spec:
  template:
    spec: 
3

      customDeploy: install_coreos
      userData:
        name: worker-user-data-managed 
4
Copy to Clipboard Toggle word wrap
1
マシンテンプレートの種類を指定します。この値は、プラットフォームの値と一致する必要があります。
2
マシンテンプレートの名前を指定します。
3
環境の詳細を指定します。ここに示す値はサンプルです。
4
userData パラメーターは、インストール中に Machine API Operator によって生成される Ignition 設定を参照します。クラスターがシークレットにアクセスできるようにするには、次のコマンドを実行して openshift-cluster-api namespace を適用する必要があります。
$ oc get secret worker-user-data-managed \
  -n openshift-machine-api -o yaml | \
  sed 's/namespace: .*/namespace: openshift-cluster-api/' | oc apply -f -
Copy to Clipboard Toggle word wrap
11.4.6.1.2. ベアメタル上の Cluster API コンピュートマシンセットリソースのサンプル YAML

コンピュートマシンセットリソースは、作成するマシンの追加プロパティーを定義します。また、コンピュートマシンセットは、マシンを作成するときにクラスターリソースとマシンテンプレートを参照します。

apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineSet
metadata:
  name: <machine_set_name> 
1

  namespace: openshift-cluster-api
  labels:
    cluster.x-k8s.io/cluster-name: <cluster_name> 
2

spec:
  clusterName: <cluster_name>
  replicas: 1
  selector:
    matchLabels:
      test: example
      cluster.x-k8s.io/cluster-name: <cluster_name>
      cluster.x-k8s.io/set-name: <machine_set_name>
  template:
    metadata:
      labels:
        test: example
        cluster.x-k8s.io/cluster-name: <cluster_name>
        cluster.x-k8s.io/set-name: <machine_set_name>
        node-role.kubernetes.io/worker: ""
    spec:
      bootstrap:
         dataSecretName: worker-user-data-managed
      clusterName: <cluster_name>
      infrastructureRef:
        apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
        kind: Metal3MachineTemplate 
3

        name: <template_name> 
4
Copy to Clipboard Toggle word wrap
1
コンピュートマシンセットの名前を指定します。通常、この値のパターンは、クラスター ID、マシンのロール、およびリージョンにより、<cluster_name>-<role>-<region> という形で構成されます。
2
クラスターの名前としてクラスター ID を指定します。
3
マシンテンプレートの種類を指定します。この値は、プラットフォームの値と一致する必要があります。
4
マシンテンプレート名を指定します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat