2.5. IBM Cloud でコンピュートマシンセットを作成する
IBM Cloud® 上の OpenShift Container Platform クラスター内に、特定のタスクを実行するためのコンピュートマシンセットを作成できます。たとえば、インフラストラクチャーマシンセットおよび関連マシンを作成して、サポートするワークロードを新しいマシンに移動できます。サポートワークロードを専用マシンに移行することで、クラスターリソースが効率的に割り当てられることが保証されます。
高度なマシン管理およびスケーリング機能は、Machine API が動作しているクラスターでのみ使用できます。user-provisioned infrastructure を持つクラスターでは、Machine API を使用するために追加の検証と設定が必要です。
インフラストラクチャープラットフォームタイプが none のクラスターでは、Machine API を使用できません。この制限は、クラスターに接続されている計算マシンが、この機能をサポートするプラットフォームにインストールされている場合でも適用されます。このパラメーターは、インストール後に変更することはできません。
クラスターのプラットフォームタイプを表示するには、以下のコマンドを実行します。
$ oc get infrastructure cluster -o jsonpath='{.status.platform}'
2.5.1. IBM Cloud 上のコンピュートマシンセットカスタムリソースのサンプル YAML リンクのコピーリンクがクリップボードにコピーされました!
サンプル YAML ファイルを使用すると、特定の Virtual Private Cloud (VPC) 内でコンピュートノードまたはインフラストラクチャーノードのプロビジョニングを自動化できます。サンプル YAML は、リージョン内の指定された IBM Cloud® ゾーンで実行されるコンピュートマシンセットを定義し、node-role.kubernetes.io/<role>: "" というラベルの付いたノードを作成します。
サンプルでは、<infrastructure_id> はクラスターをプロビジョニングしたときに設定したクラスター ID に基づくインフラストラクチャー ID ラベルであり、<role> は追加するノードラベルです。
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>-<region>
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>-<region>
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>-<region>
spec:
metadata:
labels:
node-role.kubernetes.io/<role>: ""
providerSpec:
value:
apiVersion: ibmcloudproviderconfig.openshift.io/v1beta1
credentialsSecret:
name: ibmcloud-credentials
image: <infrastructure_id>-rhcos
kind: IBMCloudMachineProviderSpec
primaryNetworkInterface:
securityGroups:
- <infrastructure_id>-sg-cluster-wide
- <infrastructure_id>-sg-openshift-net
subnet: <infrastructure_id>-subnet-compute-<zone>
profile: <instance_profile>
region: <region>
resourceGroup: <resource_group>
userDataSecret:
name: <role>-user-data
vpc: <vpc_name>
zone: <zone>
ここでは、以下のようになります。
<infrastructure_id>クラスターのプロビジョニング時に設定したクラスター ID を基にするインフラストラクチャー ID を指定します。OpenShift CLI がインストールされている場合は、以下のコマンドを実行してインフラストラクチャー ID を取得できます。
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster<role>- 追加するノードラベルを指定します。
<infrastructure_id>-<role>-<region>- インフラストラクチャー ID、ノードラベル、およびリージョンを指定します。
<infrastructure_id>-rhcos- クラスターのインストールに使用されたカスタムの Red Hat Enterprise Linux CoreOS(RHCOS) イメージを指定します。
<infrastructure_id>-subnet-compute-<zone>- マシンを配置するリージョン内のインフラストラクチャー ID とゾーンを指定します。リージョンがゾーンをサポートすることを確認してください。
<instance_profile>- IBM Cloud® インスタンスプロファイル を指定します。
< 領域 >- マシンを配置するリージョンを指定します。
< リソースグループ >- マシンリソースが配置されるリソースグループを指定します。これは、インストール時に指定された既存のリソースグループ、またはインフラストラクチャー ID に基づいて名前が付けられたインストーラーによって作成されたリソースグループのいずれかです。
<vpc_name>- VPC 名を指定します。
< ゾーン >- お使いのリージョン内の、マシンを配置するゾーンを指定します。リージョンがゾーンをサポートすることを確認してください。