6.15. 安装 RHCOS 并启动 OpenShift Container Platform bootstrap 过程
要在 VMware vSphere 上的用户置备的基础架构上安装 OpenShift Container Platform,您必须在 vSphere 主机上安装 Red Hat Enterprise Linux CoreOS(RHCOS)。安装 RHCOS 时,您必须为您要安装的机器类型提供 OpenShift Container Platform 安装程序生成的 Ignition 配置文件。如果您配置了适当的网络、DNS 和负载均衡基础架构,OpenShift Container Platform bootstrap 过程会在 RHCOS 机器重启后自动启动。
先决条件
- 已获取集群的 Ignition 配置文件。
- 具有 HTTP 服务器的访问权限,以便您可从计算机进行访问,并且您创建的机器也可访问此服务器。
- 您已创建了 vSphere 集群。
流程
-
将名为
<installation_directory>/bootstrap.ign
的 bootstrap Ignition 配置文件上传到 HTTP 服务器。注意此文件的 URL。 将 bootstrap 节点的以下辅助 Ignition 配置文件保存到计算机中,存为
<installation_directory>/merge-bootstrap.ign
:{ "ignition": { "config": { "merge": [ { "source": "<bootstrap_ignition_config_url>", 1 "verification": {} } ] }, "timeouts": {}, "version": "3.2.0" }, "networkd": {}, "passwd": {}, "storage": {}, "systemd": {} }
- 1
- 指定您托管的 bootstrap Ignition 配置文件的 URL。
为 bootstrap 机器创建虚拟机(VM)时,您要使用此 Ignition 配置文件。
找到安装程序创建的以下 Ignition 配置文件:
-
<installation_directory>/master.ign
-
<installation_directory>/worker.ign
-
<installation_directory>/merge-bootstrap.ign
-
将 Ignition 配置文件转换为 Base64 编码。在此流程中,您必须将这些文件添加到虚拟机中的额外配置参数
guestinfo.ignition.config.data
中。例如,如果使用 Linux 操作系统,您可以使用
base64
命令对文件进行编码。$ base64 -w0 <installation_directory>/master.ign > <installation_directory>/master.64
$ base64 -w0 <installation_directory>/worker.ign > <installation_directory>/worker.64
$ base64 -w0 <installation_directory>/merge-bootstrap.ign > <installation_directory>/merge-bootstrap.64
重要如果您计划在安装完成后在集群中添加更多计算机器,请不要删除这些文件。
获取 RHCOS OVA 镜像。镜像位于 RHCOS 镜像镜像页面。
重要RHCOS 镜像可能不会随着 OpenShift Container Platform 的每个发行版本而改变。您必须下载最高版本的镜像,其版本号应小于或等于您安装的 OpenShift Container Platform 版本。如果可用,请使用与 OpenShift Container Platform 版本匹配的镜像版本。
文件名包含 OpenShift Container Platform 版本号,格式为
rhcos-vmware.<architecture>.ova
。在 vSphere 客户端中,在数据中心中创建一个文件夹来存储虚拟机。
- 单击 VMs and Templates 视图。
- 右键单击您的数据中心的名称。
-
点击 New Folder
New VM and Template Folder。 -
在显示的窗口中,输入文件夹名称。如果您没有在
install-config.yaml
文件中指定现有文件夹,请创建一个名称与基础架构 ID 相同的文件夹。您可以使用这个文件夹名称,因此 vCenter 会在适当的位置为 Workspace 配置动态置备存储。
在 vSphere 客户端中,为 OVA 镜像创建一个模板,然后根据需要克隆模板。
注意在以下步骤中,您将创建模板,然后克隆所有集群机器的模板。然后,您在置备虚拟机时为该克隆的机器类型提供 Ignition 配置文件的位置。
- 在 Hosts and Clusters 选项卡中,右键点击您的集群名称并选择 Deploy OVF Template。
- 在 Select an OVF 选项卡中,指定您下载的 RHCOS OVA 文件的名称。
-
在 Select a name and folder 选项卡中,为您的模板设置 虚拟机名称,如
Template-RHCOS
。点击 vSphere 集群的名称并选择您在上一步中创建的文件夹。 - 在 Select a compute resource 选项卡中,点击 vSphere 集群的名称。
在 Select storage 选项卡中,配置虚拟机的存储选项。
- 根据您的存储首选项,选择 Thin Provision 或 Thick Provision。
-
选择您在
install-config.yaml
文件中指定的数据存储。 - 如果要加密虚拟机,请选择 Encrypt this virtual machine。如需更多信息,请参阅标题为"加密虚拟机的要求"的部分。
- 在 Select network 选项卡中,指定您为集群配置的网络(如果可用)。
在创建 OVF 模板时,不要在 Customize template 选项卡上指定值,也不会进一步配置模板。
重要不要启动原始虚拟机模板。VM 模板必须保持关闭,必须为新的 RHCOS 机器克隆。启动虚拟机模板会将虚拟机模板配置为平台上的虚拟机,这样可防止它被用作计算机器集可应用配置的模板。
可选: 如果需要,更新 VM 模板中配置的虚拟硬件版本。如需更多信息 ,请参阅 VMware 文档中的将虚拟机升级到最新硬件版本。
重要如有必要,建议您在从虚拟机创建虚拟机前将虚拟机模板的硬件版本更新为版本 15。在 vSphere 上运行的集群节点使用硬件版本 13 现已弃用。如果您导入的模板默认为硬件版本 13,您必须在将 VM 模板升级到硬件版本 15 前确保 ESXi 主机为 6.7U3 或更高版本。如果您的 vSphere 版本小于 6.7U3,您可以跳过此升级步骤;但是,计划将来的 OpenShift Container Platform 版本删除对小于 6.7U3 的硬件版本 13 和 vSphere 版本的支持。
部署模板后,为集群中的机器部署虚拟机。
-
右键点击模板名称,再点击 Clone
Clone to Virtual Machine。 在 Select a name and folder 选项卡中,指定虚拟机的名称。您可以在名称中包含机器类型,如
control-plane-0 或
compute-1
。注意确保 vSphere 安装中的所有虚拟机名称都是唯一的。
- 在 Select a name and folder 选项卡中,选择您为集群创建的文件夹名称。
- 在 Select a compute resource 选项卡中,选择数据中心中的主机名称。
- 在 Select clone options 选项卡中,选择 Customize this virtual machine's hardware。
在 Customize hardware 选项卡上,点 Advanced Parameters。
重要以下配置建议仅用于演示目的。作为集群管理员,您必须根据集群上的资源需求来配置资源。为了更好地管理集群资源,请考虑从集群的 root 资源池创建资源池。
可选:覆盖 vSphere 中的默认 DHCP 网络。启用静态 IP 网络:
设置静态 IP 配置:
示例命令
$ export IPCFG="ip=<ip>::<gateway>:<netmask>:<hostname>:<iface>:none nameserver=srv1 [nameserver=srv2 [nameserver=srv3 [...]]]"
示例命令
$ export IPCFG="ip=192.168.100.101::192.168.100.254:255.255.255.0:::none nameserver=8.8.8.8"
在从 vSphere 中的 OVA 引导虚拟机前,设置
guestinfo.afterburn.initrd.network-kargs
属性:示例命令
$ govc vm.change -vm "<vm_name>" -e "guestinfo.afterburn.initrd.network-kargs=${IPCFG}"
通过在 Attribute 和 Values 字段中指定数据来添加以下配置参数名称和值。确保为您创建的每个参数选择 Add 按钮。
-
guestinfo.ignition.config.data
:找到您在此流程中创建的 base-64 编码文件,并粘贴此机器类型的 base64 编码 Ignition 配置文件的内容。 -
guestinfo.ignition.config.data.encoding
:指定base64
。 -
disk.EnableUUID
:指定TRUE
。 -
stealclock.enable
:如果没有定义此参数,请添加它并指定TRUE
。 - 从集群的 root 资源池创建子资源池。执行此子资源池中的资源分配。
-
- 在 Customize hardware 选项卡的 Virtual Hardware 面板中,根据需要修改指定的值。确保 RAM、CPU 和磁盘存储的数量满足机器类型的最低要求。
- 完成剩余的配置步骤。点 Finish 按钮,您已完成克隆操作。
-
在 Virtual Machines 选项卡中,右键点您的虚拟机,然后选择 Power
Power On。 检查控制台输出,以验证 Ignition 是否运行。
示例命令
Ignition: ran on 2022/03/14 14:48:33 UTC (this boot) Ignition: user-provided config was applied
-
右键点击模板名称,再点击 Clone
后续步骤
对每台机器执行前面的步骤,为集群创建其余机器。
重要此时您必须创建 bootstrap 和 control plane 机器。由于计算机器上已默认部署了一些 Pod,因此还要在安装集群前至少创建两台计算机器。