将裸机主机连接到位置
您可以将裸机主机连接到 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 需要以下先决条件。
- 如果您计划将多个 VLAN 用于集群,同一 VLAN 上的多个子网,或者计划用于多专区经典集群,请 在您的帐户中启用 VRF。
- 在同一 IBM Cloud 数据中心 pod 中为裸机主机的每个专区创建两个 VLAN 对 (公用和专用)。
- 在本教程的稍后部分中,您将部署 OpenShift Data Foundation for local disks。 此解决方案需要工作程序节点上的其他存储设备。
Bare Metal Server 需求
要连接裸机主机,Bare Metal Server 必须满足以下需求。
- 必须支持虚拟化技术。
- 对于 Intel CPU,虚拟化支持称为
Intel VT
或VT-x
。 - 对于 AMD CPU,虚拟化支持称为
AMD Virtualization
或AMD-V
。
- 对于 Intel CPU,虚拟化支持称为
- 必须至少具有 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 版本。
- 下载 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
。 - 登录到 VPN 以访问主机网络。 有关更多信息,请参阅 VPN access on IBM Cloud。
- 从 控制台中的设备列表中,选择裸机服务器。
- 在“概述”页面中,记下服务器的联网值。 查找并验证 CIDR 和网关信息。
- 单击 远程管理,并记下 管理详细信息 部分中的
User
和Password
。 您可以在后续步骤中使用此用户名和密码。 - 单击 操作 图标  > KVM 控制台 以打开 Bare Metal Server 控制台。 浏览器可能会显示不安全自签名证书的警告。 将证书作为可信 CA 证书添加到浏览器信任库以继续。
- 使用先前检索的
User
和Password
登录到服务器。 - 在 系统 选项卡上的 远程控制台预览中,单击 设置。
- 选择 Java 以将接口更改为使用 Java 而不是 HTML5。
- 单击控制台预览以下载
launch.jnlp
文件。 - 打开终端窗口,并运行先前使用
javaws <path_to_.jnlp>
命令下载的.jnlp
文件。 请注意,可能会提示您更新 Java。 如果是这样,请遵循提示更新 Java,然后重试该命令。 如果系统提示您允许终端应用程序的输入监视,或者 Java 控制台窗口崩溃,那么必须更新输入监视的系统首选项设置。 您可以通过转至 系统首选项> 安全和隐私> 隐私> 输入监视来更新此设置。 然后,使用javaws <path_to_.jnlp>
命令重新启动 Java 控制台。 - 在装入控制台后,选择 虚拟介质> 虚拟存储器。
- 在“逻辑驱动器类型”部分中,选择 ISO 文件。
- 单击 打开映像,然后选择下载的 RHCOS ISO 文件。
- 单击 插件。
- 输入
exit
以访问 BIOS 登录提示。 - 在 BIOS 提示符处输入 Softlayer 密码。
- 在 高级 选项卡上,查找虚拟化设置并将其启用。
- 选择 CPU 配置。
- 查找
VTD
或Intel Virtualization Technology
并确保将其启用。 对于 Intel CPU,支持称为Intel VT
或VT-x
。 对于 AMD CPU,受支持的 CPU 称为AMD Virtualization
或AMD-V
。 有关更多信息,请参阅硬件制造商文档。 - 如果未启用,请启用
VTD
。 有关更多信息,请参阅硬件提供者文档。
- 配置引导顺序。 例如,要安装此 Bare Metal Server,可以使用虚拟 ISO 文件。 您的特定案例可能使用不同的外部引导设备。
- 选择 引导。
- 选择从虚拟 ISO 引导的选项。
- 确保
Hard Drive
也是引导顺序中的选项。
- 保存您的选择并退出。 例如,对于此 Bare Metal Server,单击 保存并退出。
- 保存更改并启动安装过程。 例如,对于此 Bare Metal Server,单击 保存更改并重置。
保存并退出时,RHCOS 将开始安装。 下次系统重新引导时,它会将 RHCOS 引导到内存中。
立即执行以下部分以防止内存覆盖和损坏。
设置公用网络
您必须为裸机设置公用网络连接,以下载主机连接脚本 (RHCOS 点火文件)。 识别专用接口和公共接口。 RHCOS 将网络接口名称转换为 eno
或 ens
。 对于此 Bare Metal Server,公用接口为 eth1
,专用接口为 eth0
。
将 RHCOS 引导到内存后,core@localhost
提示可用。 遵循以下步骤为裸机服务器设置网络连接。
- 在
core@localhost
提示符处,运行ifconfig
以确定哪个接口是公共接口。 根据裸机的类型,有线连接的设置可能有所不同。 在此设置中,公共接口是有线连接 3 和 5,专用接口是有线连接 2 和 4。 可以在ifconfig
命令的输出中找到此信息。 - 在
core@localhost
提示符处,输入sudo nmtui
。 - 单击 编辑连接。
- 对于要激活的每个有线连接,单击 IPv4 配置> 手动。
- 选择 显示。
- 输入 地址的 CIDR。 CIDR 是该子网的 IP 地址和子网掩码。
- 输入 Gateway 的网关。
- 添加 DNS 服务器信息。 例如,对于此 Bare Metal Server,对于公共接口,这些值为
8.8.8.8
和4.4.4.4
; 对于专用接口,这些值为10.0.80.11
和10.0.80.12
。 - 对要激活的每个有线连接重复这些步骤。
- 完成后,选择 确定和 退出。
- 通过对服务器网络执行 ping 操作来测试您是否具有连接。 例如,要测试此特定 Bare Metal Server的公用网络,
ping 8.8.8.8
。
配置点火文件
完成以下步骤以配置点火文件。 点火文件用于将裸机服务器作为主机连接到 Satellite 位置。
必须为要连接到该位置的每个裸机主机配置单独的点火文件。
-
下载您所在位置的主机连接脚本。 确保为主机操作系统指定
RHCOS
。 -
获取裸机系统的主机名; 例如,
mybaremetalserver
。 -
通过运行以下命令将主机名转换为
base64
,将<hostname>
替换为裸机服务器主机名:echo <hostname> | base64
-
打开点火文件并将主机名信息添加到
"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, ...
-
通过运行以下命令将专用网络信息转换为
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
-
将这些连接详细信息添加到您的点火文件。 将
<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="}},
-
通过运行以下命令将公用网络信息转换为
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
-
将这些连接详细信息添加到您的点火文件。 将
<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="}},
-
保存点火文件。 您的文件必须是平面文件,并且不包含任何返回。 以下示例点火文件显示了使用
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"}]}}
-
将点火文件上载到先前标识的 IBM Cloud Object Storage 存储区。 在控制台的“存储区”页面中,单击 添加对象。 将点火文件拖到存储区中。
将裸机主机连接到位置
将点火文件下载到裸机主机,然后运行该文件以将裸机主机连接到 Satellite 位置。
-
运行以下命令以将文件从存储区下载到主机。 将
<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
-
标识要将 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
磁盘上安装。 -
运行以下
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
安装过程可能需要一两个小时才能完成。
-
安装完成后,拔下 RHCOS ISO 文件并从硬盘重新引导。
- 输入
exit
以访问 BIOS 登录。 - 在 BIOS 提示符处输入 Softlayer 密码。
- 选择 引导。
- 选择以从硬盘驱动器引导。
- 单击保存并退出。
- 单击 保存更改并重置。
- 输入
-
检查 Satellite 位置以确认已连接裸机服务器。
祝贺您! Bare Metal Server 现在已连接到您的位置。
将 Bare Metal Server 主机分配给 Red Hat OpenShift 集群
将 Bare Metal Server 附加到位置后,可以将其分配给 Red Hat OpenShift 集群工作程序池。
-
查找要添加到 Red Hat OpenShift 集群工作程序池的主机。
ibmcloud sat hosts --location <locationID>
-
将 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 虚拟化。