你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍如何对裸机计算机 (BMM) 执行生命周期管理操作。 这些步骤应用于故障排除,以便在故障恢复或进行维护操作时使用。
首先,在继续操作之前,请阅读 裸机操作最佳实践 一文中的建议。
列出的加粗的操作被认为具有破坏性(关机、重启、重新安装系统、替换)。
不带 evacuate
参数的 Cordon 操作不会被视为中断,而带 evacuate
参数的 Cordon 操作被视为中断。
- 关闭裸机
- 启动裸机
- 重启裸机
- 使裸机不可调度(封锁但不撤走,不排空节点)
- 使裸机不可调度(封锁并撤走,排空节点)
- 使裸机可调度(解封)
- 重建裸机映像
- 更换裸机
注意
请勿在未经微软支持人员咨询的情况下针对控制或管理面服务器执行任何操作,否则可能会影响运营商 Nexus 集群的完整性。
重要
拒绝针对 Kubernetes 控制平面(KCP)节点的多个中断性命令请求。 完成此检查是为了维护 Nexus 集群实例的完整性,并避免由于同时进行的破坏性操作而导致多个 KCP 节点同时变为非操作性。 拒绝干扰性操作命令的原因可能是已经针对另一个 KCP 节点运行,或者整个 KCP 不可用。 如果多个节点变得无法运行,则会突破 Kubernetes 控制平面的正常仲裁阈值。
列出的操作被认为会干扰裸机 (BMM):
- 关闭 BMM
- 重启 BMM
- 使 BMM 不可调度(封锁并撤走,排空节点)
- 重建 BMM 映像
- 替换 BMM
仅保留无干扰性的操作:
- 启动 BMM
- 使 BMM 不可调度(封锁但不撤走,不排空节点)
- 使 BMM 可调度(解封)
先决条件
- 安装最新版本的相应 CLI 扩展。
- 请求访问权限以运行 Azure Operator Nexus 网络结构(NF)和网络云 CLI 扩展命令。
- 登录到 Azure CLI 并选择部署群集的订阅。
- 收集以下信息:
- 订阅 ID (
SUBSCRIPTION
) - 群集名称 (
CLUSTER
) - 资源组 (
CLUSTER_RG
) - 受管理资源组 (
CLUSTER_MRG
) - 裸机 (BMM) 资源存在于受管理资源组中 - 需要生命周期管理操作的裸机名称 (
BMM_NAME
)
- 订阅 ID (
关闭裸机
重要
在 BMM 关闭或重启后,运行 Nexus VM 无法重新启动的情况很少。 若要防止这些情况,请在关闭或重启 BMM 之前关闭 BMM 上的任何虚拟机。 请参阅cordon
命令,了解如何查找在 BMM 上运行的工作负载。
此命令将对指定的 power-off
执行 bareMetalMachineName
。
az networkcloud baremetalmachine power-off \
--name <BareMetalMachineName> \
--resource-group <resourceGroup> \
--subscription <subscriptionID>
启动裸机
此命令将对指定的 start
执行 bareMetalMachineName
。
az networkcloud baremetalmachine start \
--name <BareMetalMachineName> \
--resource-group <resourceGroup> \
--subscription <subscriptionID>
重启裸机
重要
在 BMM 关闭或重启后,运行 Nexus VM 无法重新启动的情况很少。 若要防止这些情况,请在关闭或重启 BMM 之前关闭 BMM 上的任何虚拟机。 请参阅cordon
命令,了解如何查找在 BMM 上运行的工作负载。
此命令将对指定的 restart
执行 bareMetalMachineName
。
az networkcloud baremetalmachine restart \
--name <BareMetalMachineName> \
--resource-group <resourceGroup> \
--subscription <subscriptionID>
使裸机不可调度(封锁)
可以通过执行 cordon
命令来使裸机不可调度。
执行 cordon
命令时,如果设置了 cordon
,则运营商关系工作负载不会调度在裸机上。
只要尝试在 cordoned
裸机上创建工作负载,就会导致工作负载设置为 pending
状态。
现有的工作负载将继续在裸机上运行,除非工作负载被排空。
排空裸机工作负载
cordon 命令支持 evacuate
参数,其默认值为 False
,这意味着 cordon
命令会阻止调度新的工作负载。
若要使用 cordon
命令清空工作负荷, evacuate
必须将参数设置为 True
。
裸机计算机上运行的工作负载是 stopped
,裸机计算机被设置为 pending
状态。
注释
即使服务器被封锁并疏散,Nexus 管理工作负载仍将继续在裸机上运行。
尝试在裸机服务器上执行任何维护操作时,最佳做法是将 evacuate
值设置为 True
。
为了遵循更多最佳实践,请阅读 裸金属机器操作的最佳做法。
az networkcloud baremetalmachine cordon \
--evacuate "True" \
--name <BareMetalMachineName> \
--resource-group <resourceGroup> \
--subscription <subscriptionID>
若要确定任何工作负荷当前是否在裸机上运行,请运行以下命令:
对于虚拟机:
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"'
使裸机可调度(解封)
可以通过执行 uncordon
命令,使裸机“可调度”(服务器可以托管工作负荷)。
当裸机处于 pending
状态时,裸机上所有处于 restarted
状态的工作负载均为 uncordoned
。
az networkcloud baremetalmachine uncordon \
--name <BareMetalMachineName> \
--resource-group <resourceGroup> \
--subscription <subscriptionID>
重建裸机映像
可以通过执行 reimage
命令在裸机计算机上还原运行时版本。
reimage
操作不会影响裸机上的租户工作负载文件。
此过程在目标裸机计算机上重新部署运行时映像,并执行使用相同标识符重新加入群集的步骤。
最佳做法是,确保在执行 cordon
命令之前使用 evacuate
命令并将 True
设置为 reimage
来耗尽裸机计算机的工作负载。
为了遵循更多最佳实践,请阅读 裸金属机器操作的最佳做法。
重要
避免通过裸机访问在节点上执行写入或编辑操作。
需要执行 reimage
操作才能重新获得 Microsoft 支持,在将节点还原到其预期状态时,对裸机所做的任何更改都将丢失。
警告
不要同时为同一个 裸机计算机 (BMM) 资源运行超过一个 baremetalmachine replace
和 reimage
命令。
同时执行replace
和reimage
会导致服务器处于非工作状态。
在启动另一个 BMM 之前,请确保当前 BMM 上的所有 replace
/reimage
操作都已完全完成。
此外,请避免在刚刚完成reimage
动作的 BMM 上执行连续replace
动作,除非正在执行指定的维护操作。
az networkcloud baremetalmachine reimage \
--name <BareMetalMachineName> \
--resource-group <resourceGroup> \
--subscription <subscriptionID>
更换裸机
当服务器遇到需要完全或部分硬件更换的硬件问题时,请使用 replace
命令。
更换组件(如主板或网络接口卡(NIC)后,裸机的 MAC 地址将发生变化:但是,iDRAC IP 地址和主机名将保持不变。
完成每次硬件维护操作后都必须执行 replace
,有关更多详细信息,请阅读裸机更换的最佳做法。
从 2506.2 版开始,iDRAC 的密码值可以作为 Key Vault 统一资源标识符(URI)或密码值提供。 请参阅 Key Vault 凭据参考。 使用 URI 而不是纯文本密码可提供额外的安全性。
警告
不要同时为同一个 裸机计算机 (BMM) 资源运行超过一个 baremetalmachine replace
和 reimage
命令。
同时执行replace
和reimage
会导致服务器处于非工作状态。
在启动另一个 BMM 之前,请确保当前 BMM 上的所有 replace
/reimage
操作都已完全完成。
此外,请避免在刚刚完成reimage
动作的 BMM 上执行连续replace
动作,除非正在执行指定的维护操作。
az networkcloud baremetalmachine replace \
--name <BareMetalMachineName> \
--resource-group <resourceGroup> \
--bmc-credentials password=<PASSWORD_URI or 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>
如果 replace
操作因硬件验证失败而失败,replace
响应中会显示特定的错误或测试失败,如以下示例所示。
也可以在裸机(运营商关系)的活动日志中找到此信息。
错误代码和错误消息包含在相应 BareMetalMachines_Replace
作的 JSON 属性中。
示例 1:硬件验证由于基板管理控制器(BMC)凭据的密钥保管库 URI 无效而失败
$ az networkcloud baremetalmachine replace --name rack1compute02 --resource-group hostedRG --bmc-credentials password=$KEY_VAULT_URI username=root --bmc-mac-address 00-00-5E-00-01-00 --boot-mac-address 00-00-5E-00-02-00 --machine-name RACK1COMPUTE02 --serial-number SN123435
(failed to retrieve password from key vault) failed to get secret value from key vault: failed to get cluster key vault secret
Code: failed to retrieve password from key vault
Message: failed to retrieve password from key vault
Response: 400 Bad Request
示例 2:由于提供的基板管理控制器(BMC)凭据无效,硬件验证失败
$ az networkcloud baremetalmachine replace --name rack1compute02 --resource-group hostedRG --bmc-credentials password=REDACTED username=root --bmc-mac-address 00-00-5E-00-01-00 --boot-mac-address 00-00-5E-00-02-00 --machine-name RACK1COMPUTE02 --serial-number SN123435
(None) BMC login unsuccessful: Fail - Unauthorized; System health test(s) failed: [Additional logs: Server power down at end of test failed with: Unauthorized]
Code: None
Message: BMC login unsuccessful: Fail - Unauthorized; System health test(s) failed: [Additional logs: Server power down at end of test failed with: Unauthorized]
示例 3:硬件验证由于网络故障而失败
$ az networkcloud baremetalmachine replace --name rack1compute02 --resource-group hostedRG --bmc-credentials password=REDACTED username=root --bmc-mac-address 00-00-5E-00-01-00 --boot-mac-address 00-00-5E-00-02-00 --machine-name RACK1COMPUTE02 --serial-number SN123435
(None) Networking test(s) failed: [NIC.Slot.6-1-1_LinkStatus] expected: up; observed: Down; [Additional logs: Link failure detected on NIC.Slot.6-1-1; Unable to perform cabling check on PCI Slot 6]
Code: None
Message: Networking test(s) failed: [NIC.Slot.6-1-1_LinkStatus] expected: up; observed: Down; [Additional logs: Link failure detected on NIC.Slot.6-1-1; Unable to perform cabling check on PCI Slot 6]
有关排查硬件验证失败的详细信息,请参阅 硬件验证失败疑难解答。