3.3.2. Azure クラスターにマルチアーキテクチャーコンピュートマシンセットを追加する
マルチアーキテクチャークラスターを作成した後、異なるアーキテクチャーのノードを追加できます。
マルチアーキテクチャーコンピュートマシンをマルチアーキテクチャークラスターに追加する方法には、次のものがあります。
- 64 ビット ARM コントロールプレーンマシンを使用し、すでに 64 ビット ARM コンピュートマシンが含まれているクラスターに 64 ビット x86 コンピュートマシンを追加します。この場合、64 ビット x86 がセカンダリーアーキテクチャーと見なされます。
- 64 ビット x86 コントロールプレーンマシンを使用し、すでに 64 ビット x86 コンピュートマシンが含まれているクラスターに 64 ビット ARM コンピュートマシンを追加します。この場合、64 ビット ARM がセカンダリーアーキテクチャーと見なされます。
Azure でカスタムコンピュートマシンセットを作成するには、「Azure でのコンピュートマシンセットの作成」を参照してください。
セカンダリーアーキテクチャーノードをクラスターに追加する前に、Multiarch Tuning Operator をインストールし、ClusterPodPlacementConfig カスタムリソースをデプロイすることを推奨します。詳細は、「Multiarch Tuning Operator を使用してマルチアーキテクチャークラスター上のワークロードを管理する」を参照してください。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 - 64 ビット ARM または 64 ビット x86 ブートイメージを作成した。
- インストールプログラムを使用して、マルチアーキテクチャーインストーラーバイナリーを含む 64 ビット ARM または 64 ビット x86 シングルアーキテクチャークラスターを作成しました。
手順
-
OpenShift CLI (
oc) にログインします。 YAML ファイルを作成し、設定を追加して、クラスター内の 64 ビット ARM または 64 ビット x86 コンピュートノードを制御するコンピュートマシンセットを作成します。
Azure 64 ビット ARM または x86 コンピュートノードの
MachineSetオブジェクトの例apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> machine.openshift.io/cluster-api-machine-role: worker machine.openshift.io/cluster-api-machine-type: worker name: <infrastructure_id>-machine-set-0 namespace: openshift-machine-api spec: replicas: 2 selector: matchLabels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> machine.openshift.io/cluster-api-machineset: <infrastructure_id>-machine-set-0 template: metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> machine.openshift.io/cluster-api-machine-role: worker machine.openshift.io/cluster-api-machine-type: worker machine.openshift.io/cluster-api-machineset: <infrastructure_id>-machine-set-0 spec: lifecycleHooks: {} metadata: {} providerSpec: value: acceleratedNetworking: true apiVersion: machine.openshift.io/v1beta1 credentialsSecret: name: azure-cloud-credentials namespace: openshift-machine-api image: offer: "" publisher: "" resourceID: /resourceGroups/${RESOURCE_GROUP}/providers/Microsoft.Compute/galleries/${GALLERY_NAME}/images/rhcos-arm64/versions/1.0.0 sku: "" version: "" kind: AzureMachineProviderSpec location: <region> managedIdentity: <infrastructure_id>-identity networkResourceGroup: <infrastructure_id>-rg osDisk: diskSettings: {} diskSizeGB: 128 managedDisk: storageAccountType: Premium_LRS osType: Linux publicIP: false publicLoadBalancer: <infrastructure_id> resourceGroup: <infrastructure_id>-rg subnet: <infrastructure_id>-worker-subnet userDataSecret: name: worker-user-data vmSize: Standard_D4ps_v5 vnet: <infrastructure_id>-vnet zone: "<zone>"ここでは、以下のようになります。
イメージリソース ID-
arm64やamd64などのブートイメージを指定します。 vmSize-
インストールで使用するインスタンスタイプを指定します。インスタンスタイプの例として、
Standard_D4ps_v5またはD8psがあります。
次のコマンドを実行してコンピュートマシンセットを作成します。
$ oc create -f <file_name>-
<file_name>は、コンピュートマシン設定を含む YAML ファイルの名前に置き換えます。たとえば、arm64-machine-set-0.yaml、またはamd64-machine-set-0.yamlです。
-
検証
次のコマンドを実行して、新しいマシンが実行中であることを確認します。
$ oc get machineset -n openshift-machine-api出力に、作成したマシンセットが含まれている必要があります。
出力例
NAME DESIRED CURRENT READY AVAILABLE AGE <infrastructure_id>-machine-set-0 2 2 2 2 10m次のコマンドを実行すると、ノードが準備完了状態でスケジュール可能かどうかを確認できます。
$ oc get nodes