1 つのブレードをシャットダウンする

このページでは、Google Distributed Cloud(GDC)エアギャップ アプライアンスのブレードをシャットダウンして再起動する方法について説明します。たとえば、ブレードを維持するためにデバイスを移動する場合などです。

始める前に

続行する前に、すべてのワークロードを停止してください。シャットダウン中にワークロードがアクティブな場合に何が起こるかは保証できません。

すべてのブレードをシャットダウンする場合は、デバイスをシャットダウンするの手順に沿って操作します。この手順に沿って操作する場合は、1 つのブレードのみをシャットダウンし、Google Distributed Cloud(GDC)エアギャップ アプライアンスを 2 つのアクティブなブレードで実行したままにします。

前提条件

  1. このランブックは、Google Distributed Cloud(GDC)エアギャップ アプライアンスのネットワークに接続されたノートパソコンまたはワークステーションで実行できます。または、デバイスを接続するの手順に沿って、ノートパソコンまたはワークステーションをスイッチに接続することもできます。
  2. ルート管理者クラスタの Kubeconfig にアクセスできることを確認します。
  3. export KUBECONFIG=<path to kubeconfig> を実行して、正しい KUBECONFIG 環境変数を設定します。

ブレードをシャットダウンする

  1. kubectl get nodes -A を実行して、ノード情報を取得します。シャットダウンするブレードの NODE_NAME を決定します。

  2. シャットダウンするブレードに対して次のコマンドを実行して、BareMetalHost の同期を一時停止します。

    kubectl annotate bmhost -n gpc-system NODE_NAME "baremetalhost.metal3.io/paused=true" --overwrite
    

    このコマンドの出力例は次のとおりです。

    baremetalhost.metal3.io/**-**-bm** annotated
    
  3. ターゲット ノードを閉鎖します。

    kubectl cordon NODE_NAME
    

    出力例:

    node/**-**-bm** cordoned
    
  4. ターゲット ノードをドレインします。

    kubectl drain NODE_NAME --delete-emptydir-data --grace-period 900 --ignore-daemonsets --disable-eviction
    

    出力例:

    node/**-**-bm** already cordoned
    WARNING: ignoring DaemonSet-managed Pods: kube-system/anetd-krj2z, kube-system/etcd-defrag-xh469, kube-system/ipam-controller-manager-2f4dz, kube-system/istio-cni-node-cgqv4, kube-system/kube-proxy-5mwf2, kube-system/localpv-mn2jh, kube-system/metallb-speaker-6l7sv, mon-system/mon-node-exporter-backend-nd8mp, netapp-trident/netapp-trident-node-linux-rrlmd, obs-system/anthos-audit-logs-forwarder-tpfqv, obs-system/anthos-log-forwarder-npjh4, obs-system/kube-control-plane-metrics-proxy-wp8nh, obs-system/log-failure-detector-crbnv, obs-system/oplogs-forwarder-sqwvj, vm-system/macvtap-v9pgp, vm-system/virt-handler-86khx
    pod/grafana-0 deleted
    pod/capi-kubeadm-bootstrap-controller-manager-1.30.400-gke.136lvgtf deleted
    pod/grafana-0 deleted
    pod/grafana-proxy-server-86d8fc4758-mkc4f deleted
    .
    .
    .
    
  5. ターゲット ノードを正常にシャットダウンします。

  6. iLO を使用して NODE_NAME をオフにするには:

    • iLO にアクセスするための認証情報を取得します。

      1. ユーザー名を取得します。

        kubectl get secret bmc-credentials-NODE_NAME -n gpc-system -o jsonpath="{.data.username}" | base64 --decode
        
      2. パスワードを取得します。

        kubectl get secret bmc-credentials-NODE_NAME -n gpc-system -o jsonpath="{.data.password}" | base64 --decode
        
      3. BMC-IP 列の値から NODE_NAMEBMC-IP アドレスを取得します。

        kubectl get servers -A
        
    • 前の手順で取得した BMC-IP アドレスにアクセスし、取得したユーザー名とパスワードを入力してログインします。

    • 上段の最初のボタンにカーソルを合わせます。Power: ON が表示されます。クリック、プルダウン メニューが表示されるので、Momentary Press というラベルの付いた最初の項目をクリックします。ボタンの色が緑からオレンジに変わり、ノードがシャットダウン中であることを示します。ボタンの色が黄色に変わるまで待ちます。これは、マシンが電源オフになったことを示します。数分かかります。

  7. 調整が完了するまで 30 分待ちます。

ブレードを再起動する

このセクションでは、以前にシャットダウンしたブレードを起動する手順について説明します。

前提条件

このランブックは、Google Distributed Cloud(GDC)エアギャップ アプライアンスのネットワークに接続されたノートパソコンまたはワークステーションで実行できます。または、デバイスを接続するの手順に沿って、ノートパソコンまたはワークステーションをスイッチに接続することもできます。ルート管理者クラスタの Kubeconfig にアクセスできることを確認します。export KUBECONFIG=<path to kubeconfig> を実行して、正しい KUBECONFIG 環境変数を設定します。

アクション プラン

  1. ブレードの電源ボタンを押します。ブレードの電源が入ったら、コントロール プレーンが接続されるまで数分待ちます。kubectl は 30 分以内にコントロール プレーンに接続できる必要があります。

  2. kubectl get nodes -A を実行して、ターゲット ノードの名前を特定します。

  3. ターゲット ノードの閉鎖を解除して、スケジューリングを有効にします。

    kubectl uncordon `NODE_NAME`
    
  4. ターゲット ノードの BareMetalHost の同期を再開します。

    kubectl annotate bmhost -n gpc-system NODE_NAME "baremetalhost.metal3.io/paused=false" --overwrite
    
  5. 調整が完了するまで 30 分待ちます。