検索

10.3. director Operator を使用したオーバークラウドからの Compute ノードの削除

download PDF

オーバークラウドから Compute ノードを削除するには、Compute ノードを無効にして削除のマークを付け、Compute OpenStackBaremetalSet リソースのノード数を減らす必要があります。

注記

同じロールの新規ノードでオーバークラウドをスケーリングする場合に、ノードが一番小さい数値の ID 接尾辞で始まるホスト名と、対応の IP 予約を再利用する。

前提条件

手順

  1. openstackclient のリモートシェルにアクセスします。

    $ oc rsh -n openstack openstackclient
  2. 削除する Compute ノードを特定します。

    $ openstack compute service list
  3. ノード上の Compute サービスを無効にして、ノードが新しいインスタンスをスケジュールできないようにします。

    $ openstack compute service set <hostname> nova-compute --disable
  4. Metal 3 がノードを起動しないようにベアメタルノードにアノテーションを付けます。

    $ oc annotate baremetalhost <node> baremetalhost.metal3.io/detached=true
    $ oc logs --since=1h <metal3-pod> metal3-baremetal-operator | grep -i detach
    $ oc get baremetalhost <node> -o json | jq .status.operationalStatus
    "detached"
    • <node>BareMetalHost リソースの名前に置き換えます。
    • <metal3-pod>metal3 Pod の名前に置き換えます。
  5. root ユーザーとして Compute ノードにログインし、ベアメタルノードをシャットダウンします。

    [root@compute-0 ~]# shutdown -h now

    Compute ノードにアクセスできない場合は、次の手順を実行します。

    1. コントローラーノードに root ユーザーとしてログインします。
    2. インスタンス HA が有効になっている場合は、Compute ノードの STONITH デバイスを無効にします。

      [root@controller-0 ~]# pcs stonith disable <stonith_resource_name>
      • <stonith_resource_name> は、ノードに対応する STONITH リソースの名前に置き換えます。リソース名には、<resource_agent>-<host_mac> という形式が使用されます。リソースエージェントおよびホストの MAC アドレスは、fencing.yaml ファイルの FencingConfig セクションに記載されています。
    3. IPMI を使用してベアメタルノードの電源をオフにします。詳細は、ハードウェアベンダーのドキュメントを参照してください。
  6. 削除するノードに対応する BareMetalHost リソースを取得します。

    $ oc get openstackbaremetalset compute -o json | jq '.status.baremetalHosts | to_entries[] | "\(.key) => \(.value | .hostRef)"'
    "compute-0, openshift-worker-3"
    "compute-1, openshift-worker-4"
  7. OpenStackBaremetalSet リソースの annotatedForDeletion パラメーターのステータスを true に変更するには、BareMetalHost リソースに osp-director.openstack.org/delete-host=true のアノテーションを付けます。

    $ oc annotate -n openshift-machine-api bmh/openshift-worker-3 osp-director.openstack.org/delete-host=true --overwrite
  8. オプション: OpenStackBaremetalSet リソースで annotatedForDeletion ステータスが true に変更されたことを確認します。

    $ oc get openstackbaremetalset compute -o json -n openstack | jq .status
    {
      "baremetalHosts": {
        "compute-0": {
          "annotatedForDeletion": true,
          "ctlplaneIP": "192.168.25.105/24",
          "hostRef": "openshift-worker-3",
          "hostname": "compute-0",
          "networkDataSecretName": "compute-cloudinit-networkdata-openshift-worker-3",
          "provisioningState": "provisioned",
          "userDataSecretName": "compute-cloudinit-userdata-openshift-worker-3"
        },
        "compute-1": {
          "annotatedForDeletion": false,
          "ctlplaneIP": "192.168.25.106/24",
          "hostRef": "openshift-worker-4",
          "hostname": "compute-1",
          "networkDataSecretName": "compute-cloudinit-networkdata-openshift-worker-4",
          "provisioningState": "provisioned",
          "userDataSecretName": "compute-cloudinit-userdata-openshift-worker-4"
        }
      },
      "provisioningStatus": {
        "readyCount": 2,
        "reason": "All requested BaremetalHosts have been provisioned",
        "state": "provisioned"
      }
    }
  9. compute OpenStackBaremetalSet リソースの count パラメーターの値を増やします。

    $ oc patch openstackbaremetalset compute --type=merge --patch '{"spec":{"count":1}}' -n openstack

    OpenStackBaremetalSet リソースのリソース数を減らすと、対応するコントローラーがリソースの削除を処理するようトリガーされ、以下のアクションが発生します。

    • director Operator は、削除されたノードの対応する IP 予約を OpenStackIPSet および OpenStackNetConfig から削除します。
    • director Operator は、OpenStackNet リソースの IP 予約エントリーを削除済みとしてフラグします。

      $ oc get osnet ctlplane -o json -n openstack | jq .reservations
      {
        "compute-0": {
          "deleted": true,
          "ip": "172.22.0.140"
        },
        "compute-1": {
          "deleted": false,
          "ip": "172.22.0.100"
        },
        "controller-0": {
          "deleted": false,
          "ip": "172.22.0.120"
        },
        "controlplane": {
          "deleted": false,
          "ip": "172.22.0.110"
        },
        "openstackclient-0": {
          "deleted": false,
          "ip": "172.22.0.251"
        }
  10. オプション: 削除された OpenStackBaremetalSet リソースの IP 予約を他のロールが使用できるようにするには、OpenStackNetConfig オブジェクトで spec.preserveReservations パラメーターの値を false に設定します。
  11. openstackclient のリモートシェルにアクセスします。

    $ oc rsh openstackclient -n openstack
  12. オーバークラウドから Compute サービスエントリーを削除します。

    $ openstack compute service list
    $ openstack compute service delete <service-id>
  13. オーバークラウドの Compute ネットワークエージェントエントリーをチェックして、このようなエントリーが存在する場合は削除します。

    $ openstack network agent list
    $ for AGENT in $(openstack network agent list --host <scaled-down-node> -c ID -f value) ; do openstack network agent delete $AGENT ; done
  14. openstackclient を終了します。

    $ exit
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.