关闭一个刀片

本页介绍了如何关闭和重启 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 分钟,让系统完成协调。