IBM Cloud Docs
将裸机主机连接到位置

将裸机主机连接到位置

您可以将裸机主机连接到 Satellite 位置。 连接主机后,您可以在 Satellite 位置 设置 Red Hat OpenShift 虚拟化。 通过使用虚拟化,可以在受管 Red Hat OpenShift 空间中的 Bare Metal Servers 上供应 Windows 或其他虚拟机。

受支持的主机操作系统
Red Hat CoreOS (RHCOS)

以下步骤使用 IBM Cloud® Bare Metal Servers for Classic。 但是,您可以针对自己的裸机服务器调整这些步骤。

先决条件

  • 创建支持 RHCOS 的位置。 要检查您的位置是否已启用 RHCOS,请参阅 我的位置是否已启用 Red Hat CoreOS? 如果未启用您的位置,请 使用 RHCOS 创建新位置
  • 将主机连接到位置并设置 位置控制平面
  • 查找并记录裸机主机名。 对于此 Bare Metal Server,可在特定 Bare Metal Servers的“概述”页面上的 名称 字段中找到此信息。
  • 查找裸机服务器网络信息。 对于此 Bare Metal Server,可在“概述”页面上的 网络详细信息 部分中找到此信息。 记录系统的公共接口和专用接口的 CIDR 和网关信息。
  • 创建或标识 IBM Cloud Object Storage 存储区以存储点火文件。
  • 在运行受支持操作系统的 Satellite 位置中创建或标识集群; 例如,本教程使用运行 4.11的 Red Hat OpenShift 集群。

此外,此示例中使用的 Bare Metal Servers 需要以下先决条件。

Bare Metal Server 需求

要连接裸机主机,Bare Metal Server 必须满足以下需求。

  • 必须支持虚拟化技术。
    • 对于 Intel CPU,虚拟化支持称为 Intel VTVT-x
    • 对于 AMD CPU,虚拟化支持称为 AMD VirtualizationAMD-V
  • 必须至少具有 8 个核心和 32 GB RAM,以及您的 vCPU 开销所需的任何其他核心。 有关更多信息,请参阅 Red Hat OpenShift 文档中的 CPU 开销
  • 必须包含足够的内存以满足您的工作负载需求。 例如:360 MiB + (1.002 * requested memory) + 146 MiB + 8 MiB * (number of vCPUs) + 16 MiB * (number of graphics devices)。 有关更多信息,请参阅 Red Hat OpenShift 文档中的 内存开销
  • 未安装操作系统。 稍后将在此过程中安装 Red Hat CoreOS 操作系统。
  • 如果要使用 OpenShift Data Foundation 作为存储解决方案,请在供应 2 存储磁盘时将其添加到每个 Bare Metal Servers。

如果您的服务器不满足这些需求,那么可以 创建 Bare Metal Server。 有关裸机选项的列表,请参阅 裸机服务器的可用选项

引导 Bare Metal Server

对于此特定 Bare Metal Server,必须使用支持 Java for classic 的浏览器。 您可以在本地系统上使用 Safari 浏览器,也可以下载支持 javaws 命令的 Java 版本。

  1. 下载 Red Hat CoreOS ISO。 查找与要使用的 Red Hat OpenShift 版本匹配的相应 ISO 版本。 您可以下载与次要版本匹配的任何映像。 例如,如果要使用 V 4.11,请 下载版本的 RHCOS for 4.11,例如 rhcos-4.11.9-x86_64-live.x86_64.iso
  2. 登录到 VPN 以访问主机网络。 有关更多信息,请参阅 VPN access on IBM Cloud
  3. 控制台中的设备列表中,选择裸机服务器。
  4. 在“概述”页面中,记下服务器的联网值。 查找并验证 CIDR 和网关信息。
  5. 单击 远程管理,并记下 管理详细信息 部分中的 UserPassword。 您可以在后续步骤中使用此用户名和密码。
  6. 单击 操作 图标 !["操作" 图标](../icons/action-menu-icon.svg ""操作" 图标") > KVM 控制台 以打开 Bare Metal Server 控制台。 浏览器可能会显示不安全自签名证书的警告。 将证书作为可信 CA 证书添加到浏览器信任库以继续。
  7. 使用先前检索的 UserPassword 登录到服务器。
  8. 系统 选项卡上的 远程控制台预览中,单击 设置
  9. 选择 Java 以将接口更改为使用 Java 而不是 HTML5。
  10. 单击控制台预览以下载 launch.jnlp 文件。
  11. 打开终端窗口,并运行先前使用 javaws <path_to_.jnlp> 命令下载的 .jnlp 文件。 请注意,可能会提示您更新 Java。 如果是这样,请遵循提示更新 Java,然后重试该命令。 如果系统提示您允许终端应用程序的输入监视,或者 Java 控制台窗口崩溃,那么必须更新输入监视的系统首选项设置。 您可以通过转至 系统首选项> 安全和隐私> 隐私> 输入监视来更新此设置。 然后,使用 javaws <path_to_.jnlp> 命令重新启动 Java 控制台。
  12. 在装入控制台后,选择 虚拟介质> 虚拟存储器
  13. 在“逻辑驱动器类型”部分中,选择 ISO 文件
  14. 单击 打开映像,然后选择下载的 RHCOS ISO 文件。
  15. 单击 插件
  16. 输入 exit 以访问 BIOS 登录提示。
  17. 在 BIOS 提示符处输入 Softlayer 密码。
  18. 高级 选项卡上,查找虚拟化设置并将其启用。
    1. 选择 CPU 配置
    2. 查找 VTDIntel Virtualization Technology 并确保将其启用。 对于 Intel CPU,支持称为 Intel VTVT-x。 对于 AMD CPU,受支持的 CPU 称为 AMD VirtualizationAMD-V。 有关更多信息,请参阅硬件制造商文档。
    3. 如果未启用,请启用 VTD。 有关更多信息,请参阅硬件提供者文档。
  19. 配置引导顺序。 例如,要安装此 Bare Metal Server,可以使用虚拟 ISO 文件。 您的特定案例可能使用不同的外部引导设备。
    1. 选择 引导
    2. 选择从虚拟 ISO 引导的选项。
    3. 确保 Hard Drive 也是引导顺序中的选项。
  20. 保存您的选择并退出。 例如,对于此 Bare Metal Server,单击 保存并退出
  21. 保存更改并启动安装过程。 例如,对于此 Bare Metal Server,单击 保存更改并重置

保存并退出时,RHCOS 将开始安装。 下次系统重新引导时,它会将 RHCOS 引导到内存中。

立即执行以下部分以防止内存覆盖和损坏。

设置公用网络

您必须为裸机设置公用网络连接,以下载主机连接脚本 (RHCOS 点火文件)。 识别专用接口和公共接口。 RHCOS 将网络接口名称转换为 enoens。 对于此 Bare Metal Server,公用接口为 eth1,专用接口为 eth0

将 RHCOS 引导到内存后,core@localhost 提示可用。 遵循以下步骤为裸机服务器设置网络连接。

  1. core@localhost 提示符处,运行 ifconfig 以确定哪个接口是公共接口。 根据裸机的类型,有线连接的设置可能有所不同。 在此设置中,公共接口是有线连接 3 和 5,专用接口是有线连接 2 和 4。 可以在 ifconfig 命令的输出中找到此信息。
  2. core@localhost 提示符处,输入 sudo nmtui
  3. 单击 编辑连接
  4. 对于要激活的每个有线连接,单击 IPv4 配置> 手动
  5. 选择 显示
  6. 输入 地址的 CIDR。 CIDR 是该子网的 IP 地址和子网掩码。
  7. 输入 Gateway 的网关。
  8. 添加 DNS 服务器信息。 例如,对于此 Bare Metal Server,对于公共接口,这些值为 8.8.8.84.4.4.4 ; 对于专用接口,这些值为 10.0.80.1110.0.80.12
  9. 对要激活的每个有线连接重复这些步骤。
  10. 完成后,选择 确定退出
  11. 通过对服务器网络执行 ping 操作来测试您是否具有连接。 例如,要测试此特定 Bare Metal Server的公用网络,ping 8.8.8.8

配置点火文件

完成以下步骤以配置点火文件。 点火文件用于将裸机服务器作为主机连接到 Satellite 位置。

必须为要连接到该位置的每个裸机主机配置单独的点火文件。

  1. 下载您所在位置的主机连接脚本。 确保为主机操作系统指定 RHCOS

  2. 获取裸机系统的主机名; 例如,mybaremetalserver

  3. 通过运行以下命令将主机名转换为 base64,将 <hostname> 替换为裸机服务器主机名:

    echo <hostname> | base64
    
  4. 打开点火文件并将主机名信息添加到 "storage":{"files":[ 部分。 将 <hostname> 替换为上一步中的 base64 编码输出。

      {"overwrite": true,"path": "/etc/hostname","mode": 600,"contents": {"source": "data:text/plain;base64,<hostname>"},},],}
    

    以下示例中显示了主机名为 mybaremetalserver 的点火文件的第一个块:

    {"ignition":{"version":"3.1.0"},"passwd":{"users":[{"name":"core","sshAuthorizedKeys":[""]}]},"storage":{"files":[{"overwrite": true,"path": "/etc/hostname","mode": 600,"contents": {"source": "data:text/plain;base64,bXliYXJlbWV0YWxzZXJ2ZXIK"}},{"overwrite":true,"path":"/usr/local/bin/ibm-host-attach.sh","contents":{"source":"data:text/plain;base64,
    ...
    
  5. 通过运行以下命令将专用网络信息转换为 base64。 将 <private_interface> 替换为专用接口名称的名称,例如 en01。 将 <privateIPCIDR><gateway> 替换为专用 IP CIDR 和网关。 这些值是先前部分中用于设置连接的值。

    echo '[connection]
    id=<private-interface-name>
    type=ethernet
    interface-name=<private-interface-name>
    [ipv4]
    never-default=true
    address1=<private-ip-cidr>,<gateway>
    dns=10.0.80.11;10.0.80.12;
    route1=10.0.0.0/8,<gateway>
    route2=161.26.0.0/16,<gateway>
    route3=166.8.0.0/14,<gateway>
    dns-search=
    may-fail=false
    method=manual' | base64
    

    例如:

    echo '[connection]
    id=eno1
    type=ethernet
    interface-name=eno1
    [ipv4]
    never-default=true
    address1=10.190.196.9/26,10.190.196.129
    dns=10.0.80.11;10.0.80.12;
    route1=10.0.0.0/8,10.190.96.129
    route2=161.26.0.0/16,10.190.96.129
    route3=166.8.0.0/14,10.190.96.129
    dns-search=
    may-fail=false
    method=manual' | base64
    
  6. 将这些连接详细信息添加到您的点火文件。 将 <private_interface> 替换为专用接口名称,例如 eno1。 将 <private_connection_details> 替换为上一步中的 base64 编码输出。

      {"overwrite": true,"path": "/etc/NetworkManager/system-connections/<private_interface>.nmconnection","mode": 256,"contents": {"source": "data:text/plain;base64,<private_connection_details>"}}
    

    例如,要添加上一步中的联网信息,请输入以下代码样本。

    { "overwrite": true,"path": "/etc/NetworkManager/system-connections/en01.nmconnection","mode": 256,"contents": {     "source": "data:text/plain;base64,W2Nvbm5lY3Rpb25dCiAgICAgIGlkPWVubzEKICAgICAgdHlwZT1ldGhlcm5ldAogICAgICBpbnRlcmZhY2UtbmFtZT1lbm8xCiAgICAgIFtpcHY0XQogICAgICBuZXZlci1kZWZhdWx0PXRydWUKICAgICAgYWRkcmVzczE9MTAuMTkwLjE5Ni45LzI2LDEwLjE5MC4xOTYuMTI5CiAgICAgIGRucz0xMC4wLjgwLjExOzEwLjAuODAuMTI7CiAgICAgIHJvdXRlMT0xMC4wLjAuMC84LDEwLjE5MC45Ni4xMjkKICAgICAgcm91dGUyPTE2MS4yNi4wLjAvMTYsMTAuMTkwLjk2LjEyOQogICAgICByb3V0ZTM9MTY2LjguMC4wLzE0LDEwLjE5MC45Ni4xMjkKICAgICAgZG5zLXNlYXJjaD0KICAgICAgbWF5LWZhaWw9ZmFsc2UKICAgICAgbWV0aG9kPW1hbnVhbAo="}},
    
  7. 通过运行以下命令将公用网络信息转换为 base64。 将 <public_interface> 替换为公共接口名称的名称,例如 eno2。 将 <publicIPCIDR><gateway> 替换为公共 IP CIDR 和公共 IP 网关。 这些值是先前部分中用于设置连接的值。

    echo '[connection]
    id=<public_interface>
    type=ethernet
    interface-name=<public_interface>
    [ipv4]
    address1=<publicIPCIDR>,<gateway>
    dns=8.8.8.8;4.4.4.4;
    dns-search=
    may-fail=false
    method=manual' |base64
    

    用于对公共接口详细信息进行 base64 编码的示例命令。

    echo '[connection]
    id=eno2
    type=ethernet
    interface-name=eno2
    [ipv4]
    address1=52.117.108.24/28,52.117.108.17
    dns=8.8.8.8;4.4.4.4;
    dns-search=
    may-fail=false
    method=manual' |base64
    
  8. 将这些连接详细信息添加到您的点火文件。 将 <public_interface> 替换为公共接口名称,例如 eno2。 将 <public_connection_details> 替换为上一步中的 base64 编码输出。

      {"path": "/etc/NetworkManager/system-connections/<public_interface>.nmconnection","mode": 256,"contents": {"source": "data:text/plain;base64,<public_connection_details>"}}
    

    例如,要添加上一步中的网络信息,请输入以下代码样本,紧跟在专用接口代码样本之后。

    {"path": "/etc/NetworkManager/system-connections/en02.nmconnection","mode": 256,"contents": {"source": "data:text/plain;base64,W2Nvbm5lY3Rpb25dCiAgICBpZD1lbm8yCiAgICB0eXBlPWV0aGVybmV0CiAgICBpbnRlcmZhY2UtbmFtZT1lbm8yCiAgICBbaXB2NF0KICAgIGFkZHJlc3MxPTUyLjExNy4xMDguMjQvMjgsNTIuMTE3LjEwOC4xNwogICAgZG5zPTguOC44Ljg7NC40LjQuNDsKICAgIGRucy1zZWFyY2g9CiAgICBtYXktZmFpbD1mYWxzZQogICAgbWV0aG9kPW1hbnVhbAo="}},
    
    
  9. 保存点火文件。 您的文件必须是平面文件,并且不包含任何返回。 以下示例点火文件显示了使用 mybasemetalserver 的先前步骤进行的添加。

    {
      "ignition": {
        "version": "3.1.0"
      },
      "storage": {
        "files": [
          {
            "overwrite": true,
            "path": "/etc/hostname",
            "mode": 600,
            "contents": {
              "source": "data:text/plain;base64,ay1jY3BtYmhldzA0ZGp2ZXNvYmw4Zy1ibS0xCg=="
            }
          },
          {
            "overwrite": true,
            "path": "/etc/NetworkManager/system-connections/en01.nmconnection",
            "mode": 256,
            "contents": {
              "source": "data:text/plain;base64,W2Nvbm5lY3Rpb25dCmlkPWVubzEKdHlwZT1ldGhlcm5ldAppbnRlcmZhY2UtbmFtZT1lbm8xCltpcHY0XQpuZXZlci1kZWZhdWx0PXRydWUKYWRkcmVzczE9IDEwLjE3MC4xNS42NS8yNiwxMC4xNzAuMTUuNjUKZG5zPTEwLjAuODAuMTE7MTAuMC44MC4xMjsKcm91dGUxPTEwLjAuMC4wLzgsMTAuMTcwLjE1LjY1CnJvdXRlMj0xNjEuMjYuMC4wLzE2LDEwLjE3MC4xNS42NQpyb3V0ZTM9MTY2LjguMC4wLzE0LDEwLjE3MC4xNS42NQpkbnMtc2VhcmNoPQptYXktZmFpbD1mYWxzZQptZXRob2Q9bWFudWFsCg=="
            }
          },
          {
            "path": "/etc/NetworkManager/system-connections/en02.nmconnection",
            "mode": 256,
            "contents": {
              "source": "data:text/plain;base64,W2Nvbm5lY3Rpb25dICAgICAgICAgICAgICAgICAgICAgICAgIAppZD1lbm8yCnR5cGU9ZXRoZXJuZXQKaW50ZXJmYWNlLW5hbWU9ZW5vMgpbaXB2NF0KYWRkcmVzczE9MTY5LjQ1LjIzNS4yMTQvMjgsMTY5LjQ1LjIzNS4yMDkKZG5zPTguOC44Ljg7NC40LjQuNDsKZG5zLXNlYXJjaD0KbWF5LWZhaWw9ZmFsc2UKbWV0aG9kPW1hbnVhbAo="
            }
          },
          {
            "overwrite": true,
            "path": "/usr/local/bin/ibm-host-attach.sh",
            "contents": {
              "source": "data:text/plain;base64,<omitted>"
            },
            "mode": 493
          }
        ]
      },
      "systemd": {
        "units": [
          {
            "contents": "[Unit]\nDescription=IBM Host Attach Service\nWants=network-online.target\nAfter=network-online.target\n[Service]\nEnvironment=\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"\nExecStart=/usr/local/bin/ibm-host-attach.sh\nRestart=on-failure\nRestartSec=5\n[Install]\nWantedBy=multi-user.target",
            "enabled": true,
            "name": "ibm-host-attach.service"
          }
        ]
      }
    }
        ...
        "},"mode":493}]},"systemd":{"units":[{"contents":"[Unit]\nDescription=IBM Host Attach Service\nWants=network-online.target\nAfter=network-online.target\n[Service]\nEnvironment=\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"\nExecStart=/usr/local/bin/ibm-host-attach.sh\nRestart=on-failure\nRestartSec=5\n[Install]\nWantedBy=multi-user.target","enabled":true,"name":"ibm-host-attach.service"}]}}
    
  10. 将点火文件上载到先前标识的 IBM Cloud Object Storage 存储区。 在控制台的“存储区”页面中,单击 添加对象。 将点火文件拖到存储区中。

将裸机主机连接到位置

将点火文件下载到裸机主机,然后运行该文件以将裸机主机连接到 Satellite 位置。

  1. 运行以下命令以将文件从存储区下载到主机。 将 <bucketname> 替换为 IBM Cloud Object Storage 存储区的名称,将 <cos_region> 替换为存储区的区域 (例如 us.east),将 <filename> 替换为存储区中的点火文件的名称。

    您可以在裸机服务器上运行 curl 命令而不创建本地文件,以通过从以下示例中除去 > ignition.ign 来确保裸机服务器可以访问存储区。

    curl https://<bucketName>.s3.<cos_region>.cloud-object-storage.appdomain.cloud/<filename> > ignition.ign
    

    例如:

    curl https://mybucket.s3.us-east.cloud-object-storage.appdomain.cloud/attachHostmysatloc.ign > ignition.ign
    
  2. 标识要将 CoreOS 操作系统安装到的磁盘。 要识别磁盘,请运行 lsblk

    lsblk
    

    以下示例是可能的输出。

    NAME  MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
    loop0   7:0    0  15.5G  0 loop  /run/ephemeral
    loop1   7:1    0 979.1M  1 loop  /sysroot
    sda     8:0    0   1.8T  0 disk  
    sr0    11:0    1   1.1G  0 rom.  /run/media/iso  
    

    从此输出中,选择在 sda 磁盘上安装。

  3. 运行以下 install 命令以启动点火文件。 将 <diskName> 替换为从 lsblk 检索到的磁盘的完整路径,并将 <filename> 替换为从 IBM Cloud Object Storage下载的文件的名称。

    sudo coreos-installer install <diskName> --ignition-file <filename>
    

    以下示例显示了使用名为 ./ignition.ign 的点火文件在 /dev/sda 磁盘上安装的命令。

    sudo coreos-installer install /dev/sda --ignition-file ./ignition.ign
    

    安装过程可能需要一两个小时才能完成。

  4. 安装完成后,拔下 RHCOS ISO 文件并从硬盘重新引导。

    1. 输入 exit 以访问 BIOS 登录。
    2. 在 BIOS 提示符处输入 Softlayer 密码。
    3. 选择 引导
    4. 选择以从硬盘驱动器引导。
    5. 单击保存并退出
    6. 单击 保存更改并重置
  5. 检查 Satellite 位置以确认已连接裸机服务器。

祝贺您! Bare Metal Server 现在已连接到您的位置。

将 Bare Metal Server 主机分配给 Red Hat OpenShift 集群

将 Bare Metal Server 附加到位置后,可以将其分配给 Red Hat OpenShift 集群工作程序池。

  1. 查找要添加到 Red Hat OpenShift 集群工作程序池的主机。

    ibmcloud sat hosts --location <locationID>
    
  2. 将 Bare Metal Server 分配给 Red Hat OpenShift 集群工作程序池

    ibmcloud sat host assign --location <locationID> --cluster <clusterID> --host <hostID> --worker-pool default --zone <zone>
    

重复本教程以将更多 Bare Metal Servers 连接到您的位置和集群。

现在,Bare Metal Server 已分配给工作程序池,您可以 设置 Red Hat OpenShift 虚拟化