你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

管理裸机计算机的生命周期

本文介绍如何对裸机计算机 (BMM) 执行生命周期管理操作。 这些步骤应用于故障排除,以便从故障中恢复或在执行维护操作时进行恢复。 用于管理 BMM 生命周期的命令包括:

注意

在未先咨询 Microsoft 支持人员的情况下,请勿对管理服务器执行任何操作, 否则可能会影响运营商关系群集的完整性。

  • 关闭 BMM
  • 启动 BMM
  • 重启 BMM
  • 使 BMM 不可调度(隔离而不撤走)
  • 使 BMM 不可调度(隔离且撤走)
  • 使 BMM 可调度(取消隔离)
  • 重置 BMM 映像
  • 替换 BMM

重要

如果已经针对另一个 Kubernetes 控制平面 (KCP) 节点运行另一个中断性操作命令,或者完整的 KCP 不可用,则针对当前 KCP 节点的中断性命令请求将被拒绝。 此检查是为了维护 Nexus 实例的完整性,并确保多个 KCP 节点不会由于同时发生的中断性操作而立即变得无法运行。 如果多个节点变得无法运行,则会突破 Kubernetes 控制平面的正常仲裁阈值。

上述列表中的加粗操作被视为中断性的(关机、重启、重置映像、替换)。 隔离而不撤走不被视为中断性。 隔离且撤走视为中断性。

如警告声明中所述,对管理服务器(尤其是 KCP 节点)运行操作只能在咨询 Microsoft 支持人员的情况下进行。

先决条件

  1. 安装最新版本的相应 CLI 扩展
  2. 获取 BMM 的资源组的名称 - 群集受管理资源组名称 (cluster_MRG)。
  3. 获取需要生命周期管理操作的裸机计算机的名称。
  4. 确保目标裸机计算机 poweredState 设置为 OnreadyState 设置为 True
    1. 此先决条件不适用于 start 命令。

关闭 BMM

此命令将对指定的 bareMetalMachineName 执行 power-off

az networkcloud baremetalmachine power-off \
  --name <BareMetalMachineName>  \
  --resource-group <resourceGroup> \
  --subscription <subscriptionID>

启动 BMM

此命令将对指定的 bareMetalMachineName 执行 start

az networkcloud baremetalmachine start \
  --name <BareMetalMachineName> \
  --resource-group <resourceGroup> \
  --subscription <subscriptionID>

重启 BMM

此命令将对指定的 bareMetalMachineName 执行 restart

az networkcloud baremetalmachine restart \
  --name <BareMetalMachineName> \
  --resource-group <resourceGroup> \
  --subscription <subscriptionID>

使 BMM 不可调度(隔离)

若要确定 BMM 上当前是否有任何工作负荷正在运行,请运行以下命令:

对于虚拟机

az networkcloud baremetalmachine show -n <nodeName> /
--resource-group <resourceGroup> /
--subscription <subscriptionID> | jq '.virtualMachinesAssociatedIds'

对于 Nexus Kubernetes 群集节点:(需要登录 Nexus Kubernetes 群集)

kubectl get nodes <resourceName> -ojson |jq '.metadata.labels."topology.kubernetes.io/baremetalmachine"'

可以通过执行 cordon 命令使 BMM 不可调度。 在执行 cordon 命令时,设置隔离时,不会在 BMM 上调度运营商关系工作负载;任何在 cordoned BMM 上创建工作负载的尝试都会导致工作负载被设置为 pending 状态。 现有工作负载继续运行。 cordon 命令支持具有默认 False 值的 evacuate 参数。 最佳做法是将此项设置为 True。 在执行 cordon 命令时,evacuate 参数的值为 True,BMM 上运行的工作负载为 stopped,BMM 设置为 pending 状态。

az networkcloud baremetalmachine cordon \
  --evacuate "True" \
  --name <BareMetalMachineName> \
  --resource-group <resourceGroup> \
  --subscription <subscriptionID>

evacuate "True" 从该节点删除工作负载,而 evacuate "False" 仅阻止新工作负载的调度。

使 BMM“可调度”(取消隔离)

可以通过执行 uncordon 命令使 BMM“可调度”(可使用)。 当 BMM 为 uncordoned 时,BMM 上处于 pending 状态的所有工作负载都会执行 restarted

az networkcloud baremetalmachine uncordon \
  --name <BareMetalMachineName> \
  --resource-group <resourceGroup> \
  --subscription <subscriptionID>

重置 BMM 映像

可以通过执行 reimage 命令在 BMM 上还原运行时版本。 此过程在目标 BMM 上重新部署运行时映像,并执行使用相同标识符重新加入群集的步骤。 此操作不会影响此 BMM 上的租户工作负载文件。 如果通过 BMM 访问在节点上执行写入或编辑操作,则需要执行此“重置映像”操作来还原 Microsoft 支持,而更改将丢失,并且节点会还原到预期状态。 最佳做法是,确保在执行 reimage 命令之前使用 cordon 命令和 evacuate "True" 耗尽 BMM 的工作负载。

警告

同时运行多个 baremetalmachine replacereimage 命令,或者与 reimage 同时运行 replace 将使服务器处于非工作状态。 确保一个 replace/reimage 已完全完成,然后再开始另一个。

az networkcloud baremetalmachine reimage \
  --name <BareMetalMachineName>  \
  --resource-group <resourceGroup> \
  --subscription <subscriptionID>

替换 BMM

当服务器遇到需要完全或部分硬件更换的硬件问题时,请使用 replace 命令。 更换主板或网络接口卡 (NIC) 等组件后,BMM 的 MAC 地址将会更改,但 iDRAC IP 地址和主机名将保持不变。

警告

同时运行多个 baremetalmachine replacereimage 命令,或者与 reimage 同时运行 replace 将使服务器处于非工作状态。 确保一个 replace/reimage 已完全完成,然后再开始另一个。

az networkcloud baremetalmachine replace \
  --name <BareMetalMachineName> \
  --resource-group <resourceGroup> \
  --bmc-credentials password=<IDRAC_PASSWORD> username=<IDRAC_USER> \
  --bmc-mac-address <IDRAC_MAC> \
  --boot-mac-address <PXE_MAC> \
  --machine-name <OS_HOSTNAME> \
  --serial-number <SERIAL_NUMBER> \
  --subscription <subscriptionID>