2.7. Nutanix でコンピュートマシンセットを作成する
Nutanix 上の OpenShift Container Platform クラスターで特定の目的を果たす別のコンピューティングマシンセットを作成できます。たとえば、インフラストラクチャー用のマシンセットと関連マシンを作成することで、サポートワークロードを新しいマシンに移行できるようになり、効率的なリソース割り当てを確保するのに役立ちます。
高度なマシン管理およびスケーリング機能は、Machine API が動作しているクラスターでのみ使用できます。user-provisioned infrastructure を持つクラスターでは、Machine API を使用するために追加の検証と設定が必要です。
インフラストラクチャープラットフォームタイプが none のクラスターでは、Machine API を使用できません。この制限は、クラスターに接続されている計算マシンが、この機能をサポートするプラットフォームにインストールされている場合でも適用されます。このパラメーターは、インストール後に変更することはできません。
クラスターのプラットフォームタイプを表示するには、以下のコマンドを実行します。
$ oc get infrastructure cluster -o jsonpath='{.status.platform}'
2.7.1. Nutanix 上のコンピュートマシンセットカスタムリソースのサンプル YAML リンクのコピーリンクがクリップボードにコピーされました!
YAML ファイルを使用すると、ノードのプロビジョニングを自動化し、ロールとインフラストラクチャーの要件に基づいてワークロードが正しくスケジュールされるようにすることができます。
このサンプル YAML は、クラスター用の Nutanix コンピュートマシンセットを定義する方法を示しています。このドキュメントでは、新しいノードが一貫して作成されるように、ロール、ラベル、サイジング、ネットワーク設定、およびブート設定を設定する方法について説明します。
サンプル YAML は 、node-role.kubernetes.io/<role>: "" というラベルが付いたノードを作成する Nutanix コンピュートマシンセットを定義します。
サンプルでは、<infrastructure_id> はクラスターをプロビジョニングしたときに設定したクラスター ID に基づくインフラストラクチャー ID ラベルであり、<role> は追加するノードラベルです。
2.7.1.1. 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>
machine.openshift.io/cluster-api-machine-role: <role>
machine.openshift.io/cluster-api-machine-type: <role>
name: <infrastructure_id>-<role>-<zone>
namespace: openshift-machine-api
annotations:
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>-<role>-<zone>
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>-<zone>
spec:
metadata:
labels:
node-role.kubernetes.io/<role>: ""
providerSpec:
value:
apiVersion: machine.openshift.io/v1
bootType: ""
categories:
- key: <category_name>
value: <category_value>
cluster:
type: uuid
uuid: <cluster_uuid>
credentialsSecret:
name: nutanix-credentials
image:
name: <infrastructure_id>-rhcos
type: name
kind: NutanixMachineProviderConfig
memorySize: 16Gi
project:
type: name
name: <project_name>
subnets:
- type: uuid
uuid: <subnet_uuid>
systemDiskSize: 120Gi
userDataSecret:
name: <user_data_secret>
vcpuSockets: 4
vcpusPerSocket: 1
ここでは、以下のようになります。
<infrastructure_id>- クラスターのプロビジョニング時に設定したクラスター ID を基にするインフラストラクチャー ID を指定します。
<role>- 追加するノードラベルを指定します。
<infrastructure_id>-<infra>-<region>- インフラストラクチャー ID、ノードラベル、およびゾーンを指定します。
annotations- クラスターオートスケーラーのアノテーションを指定します。
ブートタイプコンピュートマシンが使用するブートタイプを指定します。ブートタイプの詳細は、仮想化環境内の UEFI、セキュアブート、および TPM について を参照してください。有効な値は、
Legacy、SecureBoot、またはUEFIです。デフォルトは、Legacyです。注記OpenShift Container Platform 4.20 では、
Legacyブートタイプを使用する必要があります。< カテゴリー >-
コンピュートマシンに適用する Nutanix Prism カテゴリーを 1 つ以上指定します。このスタンザには、Prism Central に存在するカテゴリーのキーと値のペアの
keyおよびvalueパラメーターが必要です。カテゴリーの詳細は、カテゴリー管理 を参照してください。 <cluster>-
Nutanix Prism Element のクラスター設定を指定します。この例のクラスタータイプは
uuidであるため、uuidスタンザがあります。 <infrastructure_id>-rhcos- 使用するイメージを指定します。クラスターに設定されている既存のコンピュートデフォルトマシンのイメージを使用します。
16Gi- クラスターのメモリー量を Gi 単位で指定します。
project-
クラスターに使用する Nutanix プロジェクトを指定します。この例のプロジェクトタイプは
nameであるため、nameスタンザがあります。 subnets- Prism Element サブネットオブジェクトの 1 つ以上の UUID を指定します。指定したサブネットのいずれかの CIDR IP アドレス接頭辞に、OpenShift Container Platform クラスターが使用する仮想 IP アドレスが含まれている必要があります。クラスター内の Prism Element 障害ドメインごとに最大 32 個のサブネットがサポートされます。すべてのサブネット UUID 値が一意である必要があります。
120 ギガ- システムディスクのサイズを Gi 単位で指定します。
<user_data_secret>-
openshift-machine-apinamespace にあるユーザーデータ YAML ファイルで、シークレットの名前を指定します。インストールプログラムがデフォルトのコンピュートマシンセットに入力する値を使用します。 4- vCPU ソケットの数を指定します。
1- ソケットごとの vCPU 数を指定します。