Skip to main content

启用物理机管理服务

如果要使用私有云物理机管理功能,需要启用物理机管理服务(baremetal-agent),本节介绍如何部署相应组件。

介绍

baremetal-agent 通过 PXE 的方式管理物理机,如果物理机的 BMC 支持通过 redfish API 远程挂载 ISO ,也可以通过 ISO 的方式引导管理。

当平台部署成功后,需要选择部署环境中的一个 node 来部署 baremetal-agent 服务。

tip

目前只能指定一个 node 来部署运行 baremetal-agent 服务,因为 baremetal-agent 服务是有状态的,不能多副本跨节点运行。

部署 baremetal-agent

在通过 pxe 引导流程中,baremetal-agent 只会处理来自 dhcp relay 服务器的请求, 所以需要事先在交换机配置 dhcp relay 或者使用 host 服务的 dhcp relay 功能。

启用 baremetal-agent

登陆控制节点,选择一个 node 启用 baremetal-agent(这里可以选择第一个 master 节点)。

  • $node_name: 为使用 kubectl get nodes 显示的节点名称,选择一个 node 来运行 baremetal-agent 服务。
  • $listen_interface: 指的是 baremetal-agent 服务监听的网卡名称,即 baremetal-agent 所在节点 ip 所在的网卡名称。
# 假设想把 baremetal-agent 部署到 ip 为 10.168.222.150 的节点上
# 登陆控制节点,通过计算节点的ip找到对应节点名称
$ kubectl get nodes -o wide | grep 10.168.222.150 | awk '{print $1}'
k8s-dev2

# 找到 ip 10.168.222.150 对应的网卡
$ ip a show |grep 10.168.222.150
inet 10.168.222.150/24 brd 10.168.222.255 scope global br0

# 启用 baremetal-agent
# ocadm baremetal enable --node $node_name --listen-interface $listen_interface
$ ocadm baremetal enable --node k8s-dev2 --listen-interface br0
# 观察 baremetal agent pod 状态查看是否启动成功
$ watch "kubectl get pods -n onecloud | grep baremetal"
default-baremetal-agent-7c84996c9b-hhllw 1/1 Running 0 3m10s

# 确认 baremetal-agent 注册到控制节点
$ climc agent-list
+--------------------------------------+--------------------------+----------------+-----------------------------+---------+------------+------------------------------------------+--------------------------------------+
| ID | Name | Access_ip | Manager_URI | Status | agent_type | version | zone_id |
+--------------------------------------+--------------------------+----------------+-----------------------------+---------+------------+------------------------------------------+--------------------------------------+
| f3c2c671-c41d-4f30-8d04-e022b49bb9b5 | baremetal-10.168.222.150 | 10.168.222.150 | https://10.168.222.150:8879 | disable | baremetal | remotes/origin/master(5e415506120011509) | 6230b485-2e54-480e-8284-33360b8202a8 |
+--------------------------------------+--------------------------+----------------+-----------------------------+---------+------------+------------------------------------------+--------------------------------------+

物理交换机配置DHCP Relay

需要分别针对物理机的IPMI网段和管理网段配置DHCP Relay。

不同厂家的物理交换机配置DHCP Relay的命令不同,以下配置仅供参考,请根据实际情况进行配置。

# 配置DHCP Relay,并Relay到baremetal-agent所在节点的IP上。
interface Vlanif10
description new_test_host_net
ip address 10.168.222.1 255.255.255.0
dhcp select relay
dhcp relay binding server group baremetal-group
dhcp relay server group baremetal-group
server 10.168.222.150 0

如何配置 host 服务启用 DHCP Relay

warning

如果在交换机上配置了 dhcp relay,则不需要在这里配置计算节点的 dhcp_relay 了,可以跳过这一步。

登录到已经部署好计算节点的服务器上修改 /etc/yunion/host.conf,添加 dhcp_relay 配置项:

dhcp_relay:
- 10.168.222.150 # baremetal agent dhcp服务监听地址
- 67 # baremetal agent dhcp服务监听端口

然后登陆到控制节点,根据上面计算节点的ip,找到对应的pod,并重启host服务。

$ kubectl get pods -n onecloud -o wide | grep 10.168.222.150  | grep -vE 'image|deployer'
default-host-xdc7x 2/2 Running 0 78m 10.168.222.150 k8s-dev2 <none> <none>
# 找到对应的 pod 删除等待 host 服务自动重启
$ kubectl delete pods -n onecloud default-host-xdc7x

注册管理物理机

部署完成后可以参考 "用户手册/私有云/物理机" 来进行对物理机的注册管理。

禁用 baremetal-agent

可以在启用 baremetal-agent 的节点中选择节点禁止 baremetal-agent 调度到该节点。

ocadm baremetal disable --node $node_name