第 14 章 可选:在 vSphere 上安装

如果在 vSphere 上安装 OpenShift Container Platform,辅助安装程序可以将 OpenShift Container Platform 集群与 vSphere 平台集成,这会将 Machine API 公开给 vSphere 并启用自动扩展。

14.1. 在 vSphere 中添加主机

您可以使用在线 vSphere 客户端或 govc vSphere CLI 工具将主机添加到 Assisted Installer 集群。以下流程演示了使用 govc CLI 工具添加主机。要使用在线 vSphere 客户端,请参阅 vSphere 的文档。

要使用 vSphere govc CLI 在 vSphere 中添加主机,请从 Assisted Installer 生成发现镜像 ISO。最小发现镜像 ISO 是默认设置。此镜像仅包含使用网络引导主机所需的内容。在引导时会下载大多数内容。ISO 镜像大小为 100MB。

完成后,您必须为 vSphere 平台创建镜像并创建 vSphere 虚拟机。

先决条件

  • 您使用 vSphere 7.0.2 或更高版本。
  • 已安装并配置了 vSphere govc CLI 工具。
  • 在 vSphere 中,已将 clusterSet disk.enableUUID 设置为 true
  • 您已在 Assisted Installer UI 中创建了一个集群,或者
  • 您有:

    • 使用 API 创建辅助安装程序集群配置集和基础架构环境。
    • 在 shell 中导出您的基础架构环境 ID 作为 $INFRA_ENV_ID
    • 完成配置。

流程

  1. 如果要使用 ignition 文件引导,请配置发现镜像。
  2. 从 Assisted Installer UI 生成并下载 ISO。

    1. 主机发现 中,单击 添加主机 按钮并选择安装介质。
    2. 选择 Minimal image file: Provision with virtual media 以下载一个较小的镜像,该镜像会获取引导所需的数据。
    3. 添加 SSH 公钥,以便您可以以 core 用户身份连接到 vSphere 虚拟机。登录到集群主机可在安装过程中为您提供调试信息。
    4. 可选: 如果集群主机位于需要使用代理的防火墙后面,请选择 Configure cluster-wide proxy settings。输入代理服务器的 HTTP 和 HTTPS URL 的用户名、密码、IP 地址和端口。
    5. 可选: 如果集群主机位于带有重新加密 man-in-the-middle (MITM)代理的网络中,或者集群需要信任证书用于容器镜像 registry,请选择 Configure cluster-wide trusted certificate 并添加额外的证书。
    6. 可选:如果要使用 ignition 文件引导它,请配置发现镜像。如需了解更多详细信息 ,请参阅配置 发现镜像。
    7. Generate Discovery ISO
    8. 复制 发现 ISO URL
    9. 下载发现 ISO:

      $ wget - O vsphere-discovery-image.iso <discovery_url>

      <discovery_url > 替换为上一步中的 URL。

  3. 在命令行中,关闭并销毁任何预先存在的虚拟机:

    $ for VM in $(/usr/local/bin/govc ls /<datacenter>/vm/<folder_name>)
    do
     	/usr/local/bin/govc vm.power -off $VM
     	/usr/local/bin/govc vm.destroy $VM
    done

    <datacenter > 替换为数据中心的名称。将 <folder_name > 替换为虚拟机清单文件夹的名称。

  4. 从数据存储中删除预先存在的 ISO 镜像(如果存在):

    $ govc datastore.rm -ds <iso_datastore> <image>

    <iso_datastore > 替换为数据存储的名称。使用 ISO 镜像 的名称替换 image。

  5. 上传辅助安装程序发现 ISO:

    $ govc datastore.upload -ds <iso_datastore>  vsphere-discovery-image.iso

    <iso_datastore > 替换为数据存储的名称。

    注意

    集群中的所有节点都必须从发现镜像引导。

  6. 引导三个 control plane (master)节点:

    $ govc vm.create -net.adapter <network_adapter_type> \
                     -disk.controller <disk_controller_type> \
                     -pool=<resource_pool> \
                     -c=16 \
                     -m=32768 \
                     -disk=120GB \
                     -disk-datastore=<datastore_file> \
                     -net.address="<nic_mac_address>" \
                     -iso-datastore=<iso_datastore> \
                     -iso="vsphere-discovery-image.iso" \
                     -folder="<inventory_folder>" \
                     <hostname>.<cluster_name>.example.com

    详情请参阅 vm.create

    注意

    示例中演示了 control plane 节点所需的最小所需资源。

  7. 至少引导两个 worker 节点:

    $ govc vm.create -net.adapter <network_adapter_type> \
                     -disk.controller <disk_controller_type> \
                     -pool=<resource_pool> \
                     -c=4 \
                     -m=8192 \
                     -disk=120GB \
                     -disk-datastore=<datastore_file> \
                     -net.address="<nic_mac_address>" \
                     -iso-datastore=<iso_datastore> \
                     -iso="vsphere-discovery-image.iso" \
                     -folder="<inventory_folder>" \
                     <hostname>.<cluster_name>.example.com

    详情请参阅 vm.create

    注意

    示例中演示了 worker 节点所需的最小所需资源。

  8. 确保虚拟机正在运行:

    $  govc ls /<datacenter>/vm/<folder_name>

    <datacenter > 替换为数据中心的名称。将 <folder_name > 替换为虚拟机清单文件夹的名称。

  9. 2 分钟后,关闭虚拟机:

    $ for VM in $(govc ls /<datacenter>/vm/<folder_name>)
    do
         govc vm.power -s=true $VM
    done

    <datacenter > 替换为数据中心的名称。将 <folder_name > 替换为虚拟机清单文件夹的名称。

  10. disk.enableUUID 设置为 TRUE

    $ for VM in $(govc ls /<datacenter>/vm/<folder_name>)
    do
         govc vm.change -vm $VM -e disk.enableUUID=TRUE
    done

    <datacenter > 替换为数据中心的名称。将 <folder_name > 替换为虚拟机清单文件夹的名称。

    注意

    您必须在所有节点上将 disk.enableUUID 设置为 TRUE,才能使用 vSphere 启用自动扩展。

  11. 重启虚拟机:

    $  for VM in $(govc ls /<datacenter>/vm/<folder_name>)
    do
         govc vm.power -on=true $VM
    done

    <datacenter > 替换为数据中心的名称。将 <folder_name > 替换为虚拟机清单文件夹的名称。

  12. 返回到 Assisted Installer 用户界面,并等待 Assisted Installer 发现主机,每个都处于 Ready 状态。
  13. 移动 与虚拟化平台的集成,以启用与 vSphere 集成。
  14. 如果需要,选择角色。
  15. Networking 中,取消选中通过 DHCP 服务器分配 IP。
  16. 设置 API VIP 地址。
  17. 设置 Ingress VIP 地址。
  18. 继续安装过程。