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.yamlARM64 コンピュートノードをデプロイするためのサンプル 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-02 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-02a574449d4f4d2808 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-profile9 instanceType: m6g.xlarge10 kind: AWSMachineProviderConfig placement: availabilityZone: us-east-1a11 region: <region>12 securityGroups: - filters: - name: tag:Name values: - <infrastructure_id>-worker-sg13 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