第4章 コンピュートマシンセットの変更


ラベルの追加、インスタンスタイプの変更、ブロックストレージの変更など、コンピュートマシンセットに変更を加えることができます。

注記

他の変更なしにコンピュートマシンセットをスケーリングする必要がある場合は、コンピュートマシンセットの手動によるスケーリング を参照してください。

4.1. CLI を使用してコンピュートマシンセットを変更する

CLI を使用してコンピュートマシンセットの設定を変更し、その変更をクラスター内のマシンに伝播することができます。

コンピュートマシンセットの設定を更新することで、機能を有効にしたり、その設定によって作成されるマシンのプロパティーを変更したりできます。コンピュートマシンセットを変更すると、その変更は、更新された MachineSet カスタムリソース (CR) を保存した後に作成されたコンピュートマシンにのみ適用されます。この変更は既存のマシンには影響しません。

注記

基盤となるクラウドプロバイダーで行われた変更は、Machine または MachineSet CR には反映されません。クラスターによって管理されるインフラストラクチャーのインスタンス設定を調整するには、クラスター側のリソースを使用してください。

コンピュートマシンセットをスケーリングしてレプリカの数を 2 倍にし、その後、元のレプリカの数までスケールダウンすることで、更新した設定を反映した新しいマシンに既存のマシンを置き換えることができます。

他の変更を加えずに、コンピュートマシンセットをスケーリングする必要がある場合、マシンを削除する必要はありません。

注記

デフォルトでは、OpenShift Container Platform ルーター Pod はコンピュートマシンにデプロイされます。ルーターは Web コンソールなどの一部のクラスターリソースにアクセスすることが必要であるため、ルーター Pod をまず再配置しない限り、コンピュートマシンセットを 0 にスケーリングできません。

前提条件

  • OpenShift Container Platform クラスターは、Machine API を使用する。
  • OpenShift CLI (oc) を使用して、管理者としてクラスターにログインしている。

手順

  1. 以下のコマンドを実行して、クラスター内のコンピュートマシンセットを一覧表示します。

    $ oc get machinesets.machine.openshift.io -n openshift-machine-api

    出力例

    NAME                           DESIRED   CURRENT   READY   AVAILABLE   AGE
    <compute_machine_set_name_1>   1         1         1       1           55m
    <compute_machine_set_name_2>   1         1         1       1           55m

  2. 次のコマンドを実行して、コンピュートマシンセットを編集します。

    $ oc edit machinesets.machine.openshift.io <machine_set_name> \
      -n openshift-machine-api
  3. 変更を適用するためにマシンセットをスケーリングする際に必要になるため、spec.replicas フィールドの値を書き留めます。

    apiVersion: machine.openshift.io/v1beta1
    kind: MachineSet
    metadata:
      name: <machine_set_name>
      namespace: openshift-machine-api
    spec:
      replicas: 2 1
    # ...
    1
    この手順例では、replicas 値が 2 のコンピュートマシンセットを示しています。
  4. 必要な設定オプションを使用してコンピュートマシンセット CR を更新し、変更を保存します。
  5. 次のコマンドを実行して、更新されたコンピュートマシンセットによって管理されているマシンをリスト表示します。

    $ oc get machines.machine.openshift.io \
      -n openshift-machine-api \
      -l machine.openshift.io/cluster-api-machineset=<machine_set_name>

    AWS クラスターの出力例

    NAME                        PHASE     TYPE         REGION      ZONE         AGE
    <machine_name_original_1>   Running   m6i.xlarge   us-west-1   us-west-1a   4h
    <machine_name_original_2>   Running   m6i.xlarge   us-west-1   us-west-1a   4h

  6. 次のコマンドを実行して、更新されたコンピュートマシンセットで管理されるマシンごとに delete アノテーションを設定します。

    $ oc annotate machine.machine.openshift.io/<machine_name_original_1> \
      -n openshift-machine-api \
      machine.openshift.io/delete-machine="true"
  7. 次のコマンドを実行して、コンピュートマシンセットをレプリカ数の 2 倍にスケーリングします。

    $ oc scale --replicas=4 \1
      machineset.machine.openshift.io <machine_set_name> \
      -n openshift-machine-api
    1
    元の例の値 2 は 2 倍の 4 になります。
  8. 次のコマンドを実行して、更新されたコンピュートマシンセットによって管理されているマシンをリスト表示します。

    $ oc get machines.machine.openshift.io \
      -n openshift-machine-api \
      -l machine.openshift.io/cluster-api-machineset=<machine_set_name>

    AWS クラスターの出力例

    NAME                        PHASE          TYPE         REGION      ZONE         AGE
    <machine_name_original_1>   Running        m6i.xlarge   us-west-1   us-west-1a   4h
    <machine_name_original_2>   Running        m6i.xlarge   us-west-1   us-west-1a   4h
    <machine_name_updated_1>    Provisioned    m6i.xlarge   us-west-1   us-west-1a   55s
    <machine_name_updated_2>    Provisioning   m6i.xlarge   us-west-1   us-west-1a   55s

    新しいマシンが Running フェーズにある場合、コンピュートマシンセットを元のレプリカ数にスケーリングできます。

  9. 次のコマンドを実行して、コンピュートマシンセットのレプリカ数を元の数にスケーリングします。

    $ oc scale --replicas=2 \1
      machineset.machine.openshift.io <machine_set_name> \
      -n openshift-machine-api
    1
    元の例の値は 2 です。

検証

  • 更新されたマシンセットによって作成されたマシンの設定が正しいことを確認するには、次のコマンドを実行して、新しいマシンの 1 つで CR の関連フィールドを調べます。

    $ oc describe machine.machine.openshift.io <machine_name_updated_1> \
      -n openshift-machine-api
  • 設定が更新されていないコンピュートマシンが削除されたことを確認するには、次のコマンドを実行して、更新されたコンピュートマシンセットによって管理されているマシンをリスト表示します。

    $ oc get machines.machine.openshift.io \
      -n openshift-machine-api \
      -l machine.openshift.io/cluster-api-machineset=<machine_set_name>

    AWS クラスターの削除進行中の出力例

    NAME                        PHASE           TYPE         REGION      ZONE         AGE
    <machine_name_original_1>   Deleting        m6i.xlarge   us-west-1   us-west-1a   4h
    <machine_name_original_2>   Deleting        m6i.xlarge   us-west-1   us-west-1a   4h
    <machine_name_updated_1>    Running         m6i.xlarge   us-west-1   us-west-1a   5m41s
    <machine_name_updated_2>    Running         m6i.xlarge   us-west-1   us-west-1a   5m41s

    AWS クラスターの削除完了時の出力例

    NAME                        PHASE           TYPE         REGION      ZONE         AGE
    <machine_name_updated_1>    Running         m6i.xlarge   us-west-1   us-west-1a   6m30s
    <machine_name_updated_2>    Running         m6i.xlarge   us-west-1   us-west-1a   6m30s

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.