検索

4.4. GCP 上でマルチアーキテクチャーのコンピューティングマシンを含むクラスターを作成する

download PDF

マルチアーキテクチャーのコンピュートマシンを含む Google Cloud Platform (GCP) クラスターを作成するには、まず、マルチアーキテクチャーインストーラーバイナリーを使用して、単一アーキテクチャーの GCP インストーラーによってプロビジョニングされたクラスターを作成する必要があります。AWS のインストールの詳細は、カスタマイズを使用した GCP へのクラスターのインストール を参照してください。

シングルアーキテクチャーのコンピュートマシンを持つ現在のクラスターを、マルチアーキテクチャーのコンピュートマシンを持つクラスターに移行することもできます。詳細は、マルチアーキテクチャーのコンピュートマシンを備えたクラスターへの移行 を参照してください。

マルチアーキテクチャークラスターを作成した後、異なるアーキテクチャーのノードをクラスターに追加できます。

注記

GCP の 64 ビット ARM マシンでは、セキュアブートは現在サポートされていません。

4.4.1. クラスターの互換性の確認

異なるアーキテクチャーのコンピュートノードをクラスターに追加する前に、クラスターがマルチアーキテクチャー互換であることを確認する必要があります。

前提条件

  • OpenShift CLI (oc) がインストールされている。

手順

  1. OpenShift CLI (oc) にログインします。
  2. 次のコマンドを実行すると、クラスターがアーキテクチャーペイロードを使用していることを確認できます。

    $ 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. GCP クラスターにマルチアーキテクチャーコンピュートマシンセットを追加する

マルチアーキテクチャークラスターを作成した後、異なるアーキテクチャーのノードを追加できます。

マルチアーキテクチャーコンピュートマシンをマルチアーキテクチャークラスターに追加する方法には、次のものがあります。

  • 64 ビット ARM コントロールプレーンマシンを使用し、すでに 64 ビット ARM コンピュートマシンが含まれているクラスターに 64 ビット x86 コンピュートマシンを追加します。この場合、64 ビット x86 がセカンダリーアーキテクチャーと見なされます。
  • 64 ビット x86 コントロールプレーンマシンを使用し、すでに 64 ビット x86 コンピュートマシンが含まれているクラスターに 64 ビット ARM コンピュートマシンを追加します。この場合、64 ビット ARM がセカンダリーアーキテクチャーと見なされます。
注記

セカンダリーアーキテクチャーノードをクラスターに追加する前に、Multiarch Tuning Operator をインストールし、ClusterPodPlacementConfig カスタムリソースをデプロイすることを推奨します。詳細は、「Multiarch Tuning Operator を使用してマルチアーキテクチャークラスター上のワークロードを管理する」を参照してください。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • インストールプログラムを使用して、マルチアーキテクチャーインストーラーバイナリーを使用する 64 ビット x86 または 64 ビット ARM シングルアーキテクチャー GCP クラスターを作成した。

手順

  1. OpenShift CLI (oc) にログインします。
  2. YAML ファイルを作成し、設定を追加して、クラスター内の 64 ビット ARM または 64 ビット x86 コンピュートノードを制御するコンピュートマシンセットを作成します。

    GCP の 64 ビット ARM または 64 ビット x86 コンピュートノードの MachineSet オブジェクトの例

    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
    選択した OS イメージの CPU アーキテクチャーに合ったマシンタイプを指定します。詳細は、「64 ビット ARM インフラストラクチャー上の GCP のテスト済みのインスタンスタイプ」を参照してください。
    6
    クラスターに使用する GCP プロジェクトの名前を指定します。
    7
    リージョンを指定します。たとえば、us-central1 です。選択したゾーンに必要なアーキテクチャーを備えたマシンがあることを確認してください。
  3. 次のコマンドを実行してコンピュートマシンセットを作成します。

    $ oc create -f <file_name> 1
    1
    <file_name> は、コンピュートマシン設定を含む YAML ファイルの名前に置き換えます。たとえば、gcp-arm64-machine-set-0.yaml、または gcp-amd64-machine-set-0.yaml です。

検証

  1. 次のコマンドを実行して、コンピュートマシンセットのリストを表示します。

    $ oc get machineset -n openshift-machine-api

    出力に、作成したマシンセットが含まれている必要があります。

    出力例

    NAME                                                DESIRED  CURRENT  READY  AVAILABLE  AGE
    <infrastructure_id>-gcp-machine-set-0                   2        2      2          2  10m

  2. 次のコマンドを実行すると、ノードが準備完了状態でスケジュール可能かどうかを確認できます。

    $ oc get nodes
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.