纳管物理机

介绍如何把物理服务器纳管到云平台的物理机资源池。

Cloudpods平台支持纳管Linux物理服务器并基于物理服务器创建裸金属服务器。

启用Baremetal服务

请确保环境中已启用Baremetal服务,Baremetal服务提供PXE Server、DHCP、TFTP、http等功能,用于完成纳管物理机操作并管理物理机。Cloudpods安装完成后默认不启用Baremetal服务,需要用户按照下面命令在环境中的任意节点上启用Baremetal服务。

  1. 通过SSH等以root用户登录到First Node节点。

  2. 使用kubectl get pods -n onecloud |grep baremetal命令查看环境中是否已启用Baremetal服务。如已存在,忽略步骤3、4。

  3. 如不存在Baremetal服务,执行以下命令启用Baremetal服务。其中$node_name是节点的名称;$listen-interface是baremetal-agent监听的网卡名称。

    # 在指定节点上启用Baremetal服务并监听网卡
    $ ocadm baremetal enable --node $node_name --listen-interface $listen_interface
    
    # 禁用Baremetal服务
    $ ocadm baremetal disable --node $node_name
    
    # 如在node1主机上启用baremetal服务,并监听br0网卡。
    $ ocadm baremetal enable --node node1 --listen-interface br0
    
  4. Baremetal服务启用后,可通过以下命令查看baremetal-agent是否注册到控制节点上。

    # 查看baremetal的pods
    $ kubectl get pods -n onecloud | grep baremetal
    default-baremetal-agent-fb5d4b5f7-2ld8v          1/1     Running     0          15m
    

纳管物理机方式介绍

Cloudpods平台目前支持5种纳管物理机的方式及纳管原理介绍,请根据具体情况选择合适的方式。

方式纳管物理机数量已有IPMI信息启动引导方式DHCP Relay网络分配方式依赖Redfish API
ISO引导注册小规模ISO静态分配
PXE引导注册小规模PXEDHCP分配
预注册小规模PXEDHCP分配
自动注册大规模PXEDHCP分配
托管小规模----

ISO引导注册

该方式对网络无要求,但是要求物理机已配置了BMC信息,且服务器支持Redfish等。

  1. 在Cloudpods平台上配置物理服务器的BMC信息以及管理口IP地址。
  2. Baremetal将会通过Redfish API验证物理服务器的BMC信息,进而获取物理服务器的配置信息,如服务器SN、厂商型号以及网卡信息等。
  3. 验证通过后,物理服务器上的Redfish API将会通过带外网加载Baremetal提供的PXE引导系统的ISO。
  4. 进入PXE引导系统后根据配置设置管理口的IP地址,从而使物理服务器可以通过管理网访问Baremetal,上报服务器的SSH登录信息。
  5. Baremetal通过SSH调用PXE引导系统中的工具,收集服务器信息,并进行管理操作等。
  6. 至此,物理服务器成功注册到Cloudpods平台。

PXE引导注册:

该方式要求用户环境存在DHCP Relay,且要求物理机已配置BMC信息,且在引导注册过程中不会改变物理机的BMC信息。如果服务器不支持Redfish,还需要提供服务器的MAC地址。

  1. 在Cloudpods平台上配置物理服务器的BMC信息并设置服务器PXE启动等。
  2. Baremetal通过IPMI验证物理服务器的BMC信息。
  3. 验证通过后,收集少量的服务器信息,设置物理服务器为开机启动,物理服务器通过DHCP配置管理口IP地址、
  4. 通过管理网启动引导物理服务器进入PXE引导系统,上报SSH登录信息。
  5. Baremetal通过SSH调用PXE引导系统中的工具,收集服务器信息,并进行管理操作等。
  6. 至此,物理服务器成功注册到Cloudpods平台。

自动注册

该方式适用于大规模的服务器自动注册到云管平台,仅要求用户环境存在DHCP Relay,引导注册过程中会重置BMC信息。

  1. 新上架的物理服务器设置PXE启动上电后,物理服务器接入的三层网关上的DHCP Relay将转发物理服务器的PXE请求到Baremetal。
  2. Baremetal服务收到请求后将会响应PXE请求,引导物理服务器从网络加载PXE引导系统并重启进入PXE引导系统,上报服务器的ssh信息,
  3. Baremetal通过SSH调用PXE引导系统中的工具,收集服务器信息,重置服务器BMC信息(如不提供BMC信息,将按照默认的信息进行配置)。
  4. 至此,物理服务器成功注册到Cloudpods平台。

预注册

该方式适用于小规模的服务器注册到云管平台,该方式要求用户环境存在DHCP Relay,且提供服务器的MAC地址,在引导过程中会重置BMC信息。

  1. 新上架的物理服务器设置PXE启动上电后,物理服务器接入的三层网关上的DHCP Relay将转发物理服务器的PXE请求到Baremetal。
  2. Baremetal服务收到请求后将会验证物理服务器的MAC地址是否匹配,匹配成功后将会记录物理服务器的基本信息并响应PXE请求,引导物理服务器从网络加载PXE引导系统并重启进入PXE引导系统,上报服务器的ssh信息,
  3. Baremetal通过SSH调用PXE引导系统中的工具,收集服务器信息,重置服务器BMC信息(如不提供BMC信息,将按照默认的信息进行配置)。
  4. 至此,物理服务器成功注册到Cloudpods平台。

托管

该方式适用于已有操作系统的服务器,该方式对网络无要求。执行托管脚本后将使用容器技术在物理服务器中运行PXE引导系统收集服务器信息,而不会影响物理机的原有操作系统。

典型组网介绍

组网说明

  • IPMI网络用于远程访问BMC(Baseboard Management Controller),通过IPMI网络可以远程控制物理服务器的开关机等。
  • 管理网:执行管理物理服务器操作的网络,例如配置物理服务器,安装软件等。
  • PXE网:发送PXE请求,获取IP地址等,PXE网络一般跟管理网为一个网络。
  • 业务网:物理服务器上运行业务需要的网络。

配置DHCP Relay(选做)

ISO引导注册或托管物理机请忽略该步骤。

由于Baremetal Agent服务只会处理DHCP Relay的单播请求,所以当使用PXE引导注册、预注册、自动注册的方式纳管物理机时要求在网络环境中配置DHCP Relay,并将其Relay到部署Baremetal的节点上。

  • 当物理机与Baremetal节点在同一个二层网络时,此时用户可以选择使用Host服务的DHCP Relay功能或在物理交换机上配置DHCP Relay。
  • 当物理机与Baremetal节点在三层网络环境中,此时用户只能在物理交换机上配置DHCP Relay。

Host服务启用DHCP Relay

# 登录到任意一台已经部署好计算节点的服务器上修改 /etc/yunion/host.conf,添加dhcp_relay 配置项:
dhcp_relay:
- 10.168.222.198 # baremetal agent dhcp服务监听地址
- 67             # baremetal agent dhcp服务监听端口
# 查看host服务对应pod
$ kubectl get pods -n onecloud -o wide | grep host
default-host-p6d8h                       2/2     Running   0          78m    10.168.222.189   k8s-dev1   <none>           <none>
default-host-xdc7x                       2/2     Running   0          78m    10.168.222.150   k8s-dev2   <none>           <none>
# 删除host服务的pod,重启host服务
$ kubectl delete pods -n onecloud default-host-p6d8h default-host-xdc7x

物理交换机配置DHCP Relay

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

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

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

配置流程

  1. 根据组网规划创建物理服务器使用的IPMI IP子网和PXE IP子网以及裸金属设备使用的IP子网。
  2. 根据需求选择添加物理机的方式。
  3. 已纳管的物理机可以用于创建裸金属设备。

操作步骤

网络配置

无论使用何种方式纳管物理机,都需要在Cloudpods平台上配置物理机类型、IPMI以及PXE类型的IP子网,其中PXE网段可以和物理机类型共用一个网段。请根据网络规划配置IP子网。

创建IPMI IP子网

  1. 在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “网络/基础网络/IP子网” 菜单项,进入IP子网页面。
  2. 单击列表上方 “新建” 按钮,进入创建IP子网页面。
  3. 设置以下参数:
    • 子网名称:用于标识IPMI子网。
    • 平台:选择本地IDC。
    • 二层网络:请根据规划选择区域、专有网络以及可用的二层网络。后续用户申请裸金属时需要在二层网络所在的区域和可用区中选择。
    • 服务器类型:选择IPMI。
    • IP子网:设置IP子网网段、子网掩码、网关以及VLAN ID等。
  4. 单击 “确定” 按钮。

创建PXE IP子网

  1. 在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “网络/基础网络/IP子网” 菜单项,进入IP子网页面。
  2. 单击列表上方 “新建” 按钮,进入创建IP子网页面。
  3. 设置以下参数:
    • 子网名称:用于标识IPMI子网。
    • 平台:选择本地IDC。
    • 二层网络:请根据规划选择区域、专有网络以及可用的二层网络。后续用户申请裸金属时需要在二层网络所在的区域和可用区中选择。
    • 服务器类型:选择PXE。
    • IP子网:设置IP子网网段、子网掩码、网关以及VLAN ID等。
  4. 单击 “确定” 按钮。

创建物理机或虚拟机IP子网

用户创建裸金属设备时会优先使用物理机IP子网,若环境中不存在可用的物理机IP子网将会使用虚拟机IP子网。

  1. 在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “网络/基础网络/IP子网” 菜单项,进入IP子网页面。
  2. 单击列表上方 “新建” 按钮,进入创建IP子网页面。
  3. 设置以下参数:
    • 子网名称:用于标识IPMI子网。
    • 平台:选择本地IDC。
    • 二层网络:请根据规划选择区域、专有网络以及可用的二层网络。后续用户申请裸金属时需要在二层网络所在的区域和可用区中选择。
    • 服务器类型:选择物理机或虚拟机IP子网,新建裸金属服务器时默认优先使用物理机IP子网,当没有可用的物理机IP子网将使用虚拟机IP子网。
    • IP子网:设置IP子网网段、子网掩码、网关以及VLAN ID等。
  4. 单击 “确定” 按钮。

纳管物理机

ISO引导注册

ISO引导注册之前请管理员提前准备以下信息:

  • 物理服务器的BMC信息。
  • 物理服务器管理口IP地址、IP子网或二层网络等。
  1. 在左侧导航栏,选择 “主机/基础资源/物理机” 菜单项,进入物理机页面。
  2. 单击 “添加” 按钮,进入添加物理机页面,选择添加方式为“ISO引导注册”。
  3. 配置以下信息:
    • 指定域:选择物理机所属的域。
    • 单条录入:配置以下参数。
      • 物理机名称:设置物理服务器的名称。
      • 备注:设置物理机的备注信息。
      • IPMI地址:输入服务器上已配置好的IPMI地址。
      • IPMI用户名:输入服务器上已配置好的IPMI用户名。
      • IPMI密码:输入服务器上已配置好的IPMI密码信息。若输入的BMC信息不正确则无法正确完成引导注册。
      • 标签:支持为新建的物理机绑定标签。支持选择已有标签和新建标签。
        • 新建标签:单击列表上方 新建 按钮,设置标签键和标签值,单击 “添加” 按钮,新建标签并绑定到资源上。
        • 选择已有标签:单击 “已有标签” 按钮,选择标签键和值。
      • 管理口IP:选择IP子网,如需指定静态IP,可单击 “手动配置IP” 按钮,设置IP地址,单击 “确定” 按钮。由于ISO引导注册适用于没有DHCP Relay的环境,所以用户必须配置提供服务器管理口接入的IP子网或IP地址信息。
      • 只注册不引导:不重启引导进入PXE引导系统,勾选该项后,仅收集到服务器的部分信息,此时的服务器无法用于创建裸金属,需要进行检测硬件配置操作使其正式投入生产使用。
    • 模板导入:支持导入含有物理机注册信息的XLSX格式的模板文件。
      • 导入物理机信息需要按照预先设定的格式,请先下载模板。
      • 在下载的host_template.xlsx文件中补充物理机的信息。所有物理机信息请都放在同一个sheet页面中。
      • 单击虚线框或将模板文件拖拽到虚线框,单击 “确定” 按钮,上传模板文件。
      • 只注册不引导:不重启引导进入PXE引导系统,勾选该项后,仅收集到服务器的部分信息,此时的服务器无法用于创建裸金属,需要进行检测硬件配置操作使其正式投入生产使用。
  4. 单击 “确定” 按钮,完成引导注册。

PXE引导注册

PXE引导注册之前请管理员提前准备以下信息:

  • 物理服务器的BMC信息。
  1. 在左侧导航栏,选择 “主机/基础资源/物理机” 菜单项,进入物理机页面。
  2. 单击 “添加” 按钮,进入添加物理机页面,选择添加方式为“PXE引导注册”。
  3. 配置以下信息:
    • 指定域:选择物理机所属的域。
    • 单条录入:配置以下参数。
      • 物理机名称:设置物理服务器的名称。
      • 备注:设置物理机的备注信息。
      • IPMI地址:输入服务器上已配置好的IPMI地址。
      • IPMI用户名:输入服务器上已配置好的IPMI用户名。
      • IPMI密码:输入服务器上已配置好的IPMI密码信息。若输入的BMC信息不正确则无法正确完成引导注册。
      • 管理口MAC地址:设置服务器的管理口MAC地址,支持Redfish的服务器无需填写该项。
      • 管理口IP:选填。支持选择IP子网,如需指定静态IP,可单击 “手动配置IP” 按钮,设置IP地址,单击 “确定” 按钮。留空则由DHCP自动分配IP。
      • 标签:支持为新建的物理机绑定标签。支持选择已有标签和新建标签。
        • 新建标签:单击列表上方 新建 按钮,设置标签键和标签值,单击 “添加” 按钮,新建标签并绑定到资源上。
        • 选择已有标签:单击 “已有标签” 按钮,选择标签键和值。
      • 只注册不引导:不重启引导进入PXE引导系统,勾选该项后,仅收集到服务器的部分信息,此时的服务器无法用于创建裸金属,需要进行检测硬件配置操作使其正式投入生产使用。
    • 模板导入:支持导入含有物理机注册信息的XLSX格式的模板文件。
      • 导入物理机信息需要按照预先设定的格式,请先下载模板。
      • 在下载的host_template.xlsx文件中补充物理机的信息。所有物理机信息请都放在同一个sheet页面中。
      • 单击虚线框或将模板文件拖拽到虚线框,单击 “确定” 按钮,上传模板文件。
      • 只注册不引导:不重启引导进入PXE引导系统,勾选该项后,仅收集到服务器的部分信息,此时的服务器无法用于创建裸金属,需要进行检测硬件配置操作使其正式投入生产使用。
  4. 单击 “确定” 按钮,完成引导注册。

预注册

预注册操作仅是预上架服务器信息,并不代表物理机已注册到Cloudpods平台,实际注册需要等到服务器上电启动。

预注册物理机之前请管理员提前准备以下信息:

  • 物理服务器的MAC地址和名称,必填。
  • 由管理员规划BMC信息(IPMI地址、用户名、密码等信息),物理服务器可以事先不配置BMC信息,后续注册虚拟机引导时将会将物理服务器的BMC信息重置为注册物理机时设置的BMC信息。
  1. 在左侧导航栏,选择 “主机/基础资源/物理机” 菜单项,进入物理机页面。

  2. 单击 “添加” 按钮,进入添加物理机页面,选择添加方式为“预注册”。

  3. 支持3种导入物理机信息的方式。其中单条录入适用于托管单台服务器的场景,批量导入和文件导入适用于一次性托管多台服务器的场景。

    • 指定域:选择物理机所属的域。
    • 单条录入:配置以下参数。
      • MAC地址:物理机设备的MAC地址。
      • 物理机名称:物理机设备的名称。
      • 备注:设置物理机的备注信息。
      • IPMI地址:设置物理机的IPMI地址,当不设置该参数时,若平台上存在IPMI的IP子网,系统将自动为其分配IP地址,一般建议新机器留空,旧机器设置之前的IP地址。
      • IPMI用户名:设置IPMI管理用户名。当不设置该参数时,系统默认使用root用户登录,一般建议新机器留空,旧机器设置之前的用户名。
      • IPMI密码:设置IPMI用户的密码。当不设置该参数时,系统默认密码为YunionDev@123。一般建议新机器留空,旧机器设置之前的密码。
      • 标签:支持为新建的物理机绑定标签。支持选择已有标签和新建标签。 - 新建标签:单击列表上方 新建 按钮,设置标签键和标签值,单击 “添加” 按钮,新建标签并绑定到资源上。 - 选择已有标签:单击 “已有标签” 按钮,选择标签键和值。
      • 设置完成后,单击 “确定” 按钮。
    • 批量录入:请注意以下内容。
      • 一行为一条物理机记录,一次最多支持导入100条记录。
      • 录入信息格式为“MAC地址,名称,IPMI地址,IPMI用户名,IPMI密码”,中间以英文逗号“,”分割,若密码中包含中文逗号“,”需要使用单条录入功能进行注册。
      • 其中MAC地址和名称为必填项,其他参数可省略不填写。
      • 例如:ee:b3:f4:48:1c:f5,gpuhost01,192.168.1.1,root,admin123
      • 例如:ee:b3:f4:48:1c:f5,gpuhost01,,, –省略了IPMI地址、IPMI用户名和IPMI密码
      • 录入完成后,单击 “确定” 按钮。
    • 模板导入:支持导入含有物理机注册信息的XLSX格式的模板文件。
      • 导入物理机信息需要按照预先设定的格式,请先下载模板。
      • 在下载的host_template.xlsx文件中补充物理机的信息。所有物理机信息请都放在同一个sheet页面中。
      • 单击虚线框或将模板文件拖拽到虚线框,单击 “确定” 按钮,上传模板文件。
  4. 至此,服务器预上架准备完毕。

  5. 等待管理员将服务器设置为PXE启动,并为服务器上电后,才会进行真正的注册物理机操作,并获取服务器的基本信息等。

  6. 当服务器在平台上有信息显示后,管理员可以在Cloudpods平台上对物理机进行管理操作等。

自动注册

Cloudpods平台默认未启用自动注册功能,如需要使用该功能,可通过界面或climc命令启用自动注册。

全局设置启用自动注册

  1. 在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “系统配置/全局设置/全局设置” 菜单项,进入全局设置页面。

  2. 单击 “编辑” 按钮,开启自动注册功能。

Climc启用自动注册

# 命令行开启自动注册
$ climc service-edit-config baremetal
    ...
    # 自动注册选项,默认为 false
    auto_register_baremetal: true
    ...

托管物理机

托管物理机操作可以纳管已安装操作系统的物理服务器,在纳管服务器之前,需要用户了解物理服务器的BMC(IPMI地址、用户名、密码)信息等。

在托管服务器之前,请确保以下条件:

  • 平台上已创建了包含物理服务器的IPMI类型和物理机类型的IP子网;
  • 物理服务器已配置了BMC信息(IPMI地址、用户名、密码);
  • 物理服务器已放开2222或之后端口;如2222端口已被占用,则需放开2222之后的端口。
  1. 在左侧导航栏,选择 “主机/基础资源/物理机” 菜单项,进入物理机页面。

  2. 单击 “添加” 按钮,进入添加物理机页面,选择添加方式为“托管”。

  3. 单击"点击复制"链接,复制命令。

  4. 通过ssh等远程连接到物理服务器,在服务器中执行复制的命令。

  5. 命令执行过程中需要输入服务器的IPMI用户名、密码以及IPMI IP,设置完成后等待一段时间,物理机会被注册到Cloudpods平台,同时将创建一个与之前物理机同配置的裸金属服务器。