關閉一個刀鋒伺服器

本頁說明如何關閉及重新啟動 Google Distributed Cloud (GDC) 離線裝置的任一刀鋒伺服器,例如移動裝置以維護刀鋒伺服器。

事前準備

請務必先停止所有工作負載,再繼續操作。如果工作負載在關機期間處於啟用狀態,Google 無法保證會發生什麼情況。

如要關閉所有刀片,請按照「關閉裝置」一節的說明操作。按照這些指示操作時,請關閉一個刀鋒伺服器,並讓 Google Distributed Cloud (GDC) 實體隔離裝置保持運作,且有兩個刀鋒伺服器處於啟用狀態。

必要條件

  1. 您可以在連線至 Google Distributed Cloud (GDC) 氣隙裝置網路的筆電或工作站上執行這本 Runbook。或者,你也可以按照「連線裝置」一節的說明,將筆電或工作站連線至交換器。
  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) 氣隙裝置網路的筆電或工作站上執行這本 Runbook。或者,你也可以按照「連線裝置」一節的說明,將筆電或工作站連線至交換器。請確認您有根管理員叢集的 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 分鐘,讓系統完成對帳。