4.3. AWS 上でマルチアーキテクチャーのコンピューティングマシンを含むクラスターを作成する
マルチアーキテクチャーのコンピューティングマシンを含む AWS クラスターを作成するには、まずマルチアーキテクチャーインストーラーバイナリーを使用して、単一アーキテクチャーの AWS インストーラーによってプロビジョニングされたクラスターを作成する必要があります。AWS のインストールの詳細は、カスタマイズを使用した AWS へのクラスターのインストール を参照してください。その後、ARM64 コンピューティングマシンセットを AWS クラスターに追加できます。
4.3.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.3.2. ARM64 コンピューティングマシンセットをクラスターに追加する
マルチアーキテクチャーのコンピューティングマシンでクラスターを設定するには、AWS ARM64 コンピューティングマシンセットを作成する必要があります。これにより、クラスターに ARM64 コンピュートノードが追加され、クラスターにマルチアーキテクチャーのコンピューティングマシンが含まれるようになります。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 - インストールプログラムを使用して、マルチアーキテクチャーインストーラーバイナリーを含む AMD64 単一アーキテクチャー AWS クラスターを作成しました。
手順
計算マシンセットを作成および変更します。これにより、クラスター内の ARM64 コンピュートノードが制御されます。
$ oc create -f aws-arm64-machine-set-0.yaml
ARM64 コンピュートノードをデプロイするためのサンプル YAML コンピューティングマシンセット
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 1 name: <infrastructure_id>-aws-arm64-machine-set-0 2 namespace: openshift-machine-api spec: replicas: 1 selector: matchLabels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 3 machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>-<zone> 4 template: metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> machine.openshift.io/cluster-api-machine-role: <role> 5 machine.openshift.io/cluster-api-machine-type: <role> 6 machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>-<zone> 7 spec: metadata: labels: node-role.kubernetes.io/<role>: "" providerSpec: value: ami: id: ami-02a574449d4f4d280 8 apiVersion: awsproviderconfig.openshift.io/v1beta1 blockDevices: - ebs: iops: 0 volumeSize: 120 volumeType: gp2 credentialsSecret: name: aws-cloud-credentials deviceIndex: 0 iamInstanceProfile: id: <infrastructure_id>-worker-profile 9 instanceType: m6g.xlarge 10 kind: AWSMachineProviderConfig placement: availabilityZone: us-east-1a 11 region: <region> 12 securityGroups: - filters: - name: tag:Name values: - <infrastructure_id>-worker-sg 13 subnet: filters: - name: tag:Name values: - <infrastructure_id>-private-<zone> tags: - name: kubernetes.io/cluster/<infrastructure_id> 14 value: owned - name: <custom_tag_name> value: <custom_tag_value> userDataSecret: name: worker-user-data
- 1 2 3 9 13 14
- クラスターのプロビジョニング時に設定したクラスター ID を基にするインフラストラクチャー ID を指定します。OpenShift CLI がインストールされている場合は、以下のコマンドを実行してインフラストラクチャー ID を取得できます。
$ oc get -o jsonpath=‘{.status.infrastructureName}{“\n”}’ infrastructure cluster
- 4 7
- インフラストラクチャー ID、ロールノードラベル、およびゾーンを指定します。
- 5 6
- 追加するロールノードラベルを指定します。
- 8
- OpenShift Container Platform ノードの AWS ゾーンに、ARM64 がサポートする Red Hat Enterprise Linux CoreOS (RHCOS) Amazon Machine Image (AMI) を指定します。
$ oc get configmap/coreos-bootimages \ -n openshift-machine-config-operator \ -o jsonpath='{.data.stream}' | jq \ -r '.architectures.<arch>.images.aws.regions."<region>".image'
- 10
- ARM64 がサポートするマシンタイプを指定します。詳細については、"AWS 64 ビット ARM のテスト済みインスタンスタイプ" を参照してください。
- 11
- ゾーンを指定します (例:
us-east-1a)
。選択したゾーンが 64 ビット ARM マシンを提供していることを確認してください。 - 12
- リージョン (例:
us-east-1
) を指定します。選択したゾーンが 64 ビット ARM マシンを提供していることを確認してください。
検証
次のコマンドを入力して、コンピューティングマシンセットのリストを表示します。
$ oc get machineset -n openshift-machine-api
作成した ARM64 マシンセットを確認できます。
出力例
NAME DESIRED CURRENT READY AVAILABLE AGE <infrastructure_id>-aws-arm64-machine-set-0 2 2 2 2 10m
次のコマンドを使用すると、ノードの準備ができており、スケジュール可能であることを確認できます。
$ oc get nodes