4.4. GCP 上でマルチアーキテクチャーのコンピューティングマシンを含むクラスターを作成する
マルチアーキテクチャーのコンピュートマシンを含む Google Cloud Platform (GCP) クラスターを作成するには、まず、マルチアーキテクチャーインストーラーバイナリーを使用して、単一アーキテクチャーの GCP インストーラーによってプロビジョニングされたクラスターを作成する必要があります。AWS のインストールの詳細は、カスタマイズを使用した GCP へのクラスターのインストール を参照してください。その後、ARM64 コンピュートマシンセットを GCP クラスターに追加できます。
セキュアブートは現在、GCP の ARM64 マシンではサポートされていません
4.4.1. クラスターの互換性の確認
異なるアーキテクチャーのコンピュートノードをクラスターに追加する前に、クラスターがマルチアーキテクチャー互換であることを確認する必要があります。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。
手順
次のコマンドを実行すると、クラスターがアーキテクチャーペイロードを使用していることを確認できます。
$ oc adm release info -o jsonpath="{ .metadata.metadata}"
検証
次の出力が表示された場合、クラスターはマルチアーキテクチャーペイロードを使用しています。
{ "release.openshift.io/architecture": "multi", "url": "https://access.redhat.com/errata/<errata_version>" }
その後、クラスターへのマルチアーキテクチャーコンピュートノードの追加を開始できます。
次の出力が表示された場合、クラスターはマルチアーキテクチャーペイロードを使用していません。
{ "url": "https://access.redhat.com/errata/<errata_version>" }
重要クラスターを、マルチアーキテクチャーコンピュートマシンをサポートするクラスターに移行するには、マルチアーキテクチャーコンピュートマシンを含むクラスターへの移行 の手順に従ってください。
4.4.2. ARM64 コンピューティングマシンセットを GCP クラスターに追加する
マルチアーキテクチャーのコンピューティングマシンでクラスターを設定するには、GCP ARM64 コンピューティングマシンセットを作成する必要があります。これにより、ARM64 コンピュートノードがクラスターに追加されます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 - インストールプログラムを使用して、マルチアーキテクチャーインストーラーバイナリーを含む AMD64 単一アーキテクチャー AWS クラスターを作成しました。
手順
計算マシンセットを作成および変更します。これにより、クラスター内の ARM64 コンピュートノードが制御されます。
$ oc create -f gcp-arm64-machine-set-0.yaml
ARM64 コンピュートノードをデプロイするためのサンプル GCP YAML コンピューティングマシンセット
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 1 name: <infrastructure_id>-w-a 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>-w-a template: metadata: creationTimestamp: null labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> machine.openshift.io/cluster-api-machine-role: <role> 2 machine.openshift.io/cluster-api-machine-type: <role> machine.openshift.io/cluster-api-machineset: <infrastructure_id>-w-a spec: metadata: labels: node-role.kubernetes.io/<role>: "" providerSpec: value: apiVersion: gcpprovider.openshift.io/v1beta1 canIPForward: false credentialsSecret: name: gcp-cloud-credentials deletionProtection: false disks: - autoDelete: true boot: true image: <path_to_image> 3 labels: null sizeGb: 128 type: pd-ssd gcpMetadata: 4 - key: <custom_metadata_key> value: <custom_metadata_value> kind: GCPMachineProviderSpec machineType: n1-standard-4 5 metadata: creationTimestamp: null networkInterfaces: - network: <infrastructure_id>-network subnetwork: <infrastructure_id>-worker-subnet projectID: <project_name> 6 region: us-central1 7 serviceAccounts: - email: <infrastructure_id>-w@<project_name>.iam.gserviceaccount.com scopes: - https://www.googleapis.com/auth/cloud-platform tags: - <infrastructure_id>-worker userDataSecret: name: worker-user-data zone: us-central1-a
- 1
- クラスターのプロビジョニング時に設定したクラスター ID を基にするインフラストラクチャー ID を指定します。以下のコマンドを実行してインフラストラクチャー ID を取得できます。
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
- 2
- 追加するロールノードラベルを指定します。
- 3
- 現在のコンピュートマシンセットで使用されるイメージへのパスを指定します。イメージへのパスにはプロジェクトとイメージ名が必要です。
プロジェクトとイメージ名にアクセスするには、次のコマンドを実行します。
$ oc get configmap/coreos-bootimages \ -n openshift-machine-config-operator \ -o jsonpath='{.data.stream}' | jq \ -r '.architectures.aarch64.images.gcp'
出力例
"gcp": { "release": "415.92.202309142014-0", "project": "rhcos-cloud", "name": "rhcos-415-92-202309142014-0-gcp-aarch64" }
出力の
project
パラメーターとname
パラメーターを使用して、マシンセット内のイメージフィールドへのパスを作成します。イメージへのパスは次の形式に従う必要があります。$ projects/<project>/global/images/<image_name>
- 4
- オプション:
key:value
のペアの形式でカスタムメタデータを指定します。ユースケースの例は、カスタムメタデータの設定 について GCP のドキュメントを参照してください。 - 5
- ARM64 がサポートするマシンタイプを指定します。詳細は、"関連情報" の 64 ビット ARM インフラストラクチャーでの GCP のテスト済みのインスタンスタイプ を参照してください。
- 6
- クラスターに使用する GCP プロジェクトの名前を指定します。
- 7
- リージョンを指定します (例:
us-central1
)。選択したゾーンが 64 ビット ARM マシンを提供していることを確認してください。
検証
次のコマンドを入力して、コンピューティングマシンセットのリストを表示します。
$ oc get machineset -n openshift-machine-api
作成した ARM64 マシンセットを確認できます。
出力例
NAME DESIRED CURRENT READY AVAILABLE AGE <infrastructure_id>-gcp-arm64-machine-set-0 2 2 2 2 10m
次のコマンドを使用すると、ノードの準備ができており、スケジュール可能であることを確認できます。
$ oc get nodes