第 1 章 在 RHV 上安装
1.1. 在 RHV 中创建自定义虚拟机模板
在 Red Hat Virtualization (RHV) 环境上安装 OpenShift Container Platform 集群前,您需要创建一个自定义虚拟机模板并配置您的环境,以便安装程序使用该模板。
为 RHV 创建自定义虚拟机模板是为了解决已知问题(BZ#1818577)。如果没有创建自定义虚拟机,则安装 OpenShift Container Platform 集群将失败。
先决条件
- 查看有关 OpenShift Container Platform 安装和更新流程的详细信息。
- 如果使用防火墙,则必须将其配置为允许集群需要访问的站点。
1.1.1. 将特定 RHCOS 镜像下载到 RHV Manager 机器
将特定的 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像下载到 Red Hat Virtualization (RHV) Manager 机器。
不要将这些指令中指定的 RHCOS 镜像替换为其他镜像。
流程
打开一个 RHV Manager 机器的终端会话。例如,如果您作为自承载引擎运行 Manager:
-
进入 RHV 管理门户,然后进入 Compute
Virtual Machines 页面。 - 选择 HostedEngine 虚拟机并点击 。
-
进入 RHV 管理门户,然后进入 Compute
在 Manager 的命令行中,创建一个工作目录并进行修改。
$ mkdir rhcos $ cd rhcos
- 在一个浏览器中,访问 https://github.com/openshift/installer/blob/release-4.4/data/data/rhcos.json。
-
在
rhcos.json
中,找到baseURI
并复制它的值。 在 Manager 中,启动一个
wget
命令并粘贴baseURI
的值,但不要按Enter。例如:$ wget https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.4/44.81.202003062006-0/x86_64/
-
在
rhcos.json
文档中,找到openstack
并复制path
值。 在 Manager 中粘贴
path
值。例如:$ wget https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.4/44.81.202003062006-0/x86_64/rhcos-44.81.202003062006-0-openstack.x86_64.qcow2.gz
-
按 Enter 并等待
wget
完成下载 RHCOS 镜像。 解压 RHCOS 镜像。例如:
$ gunzip rhcos*
1.1.2. 使用 Ansible playbook 将 RHCOS 镜像上传到数据存储域
使用 Ansible playbook 将 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像上传到数据存储域。
先决条件
流程
在 Red Hat Virtualization (RHV) Manager 上创建 Ansible playbook 文件
upload_rhcos_disk.yaml
。例如:$ vi upload_rhcos_disk.yaml
- 访问红帽客户门户网站中的这个文件。
- 将它的内容粘贴到您的 playbook 中。
在 playbook 中,更新带有 callouts 的参数值。
- hosts: localhost gather_facts: no tasks: - name: Authenticate with engine ovirt_auth: url: https://<virtlab.example.com>/ovirt-engine/api 1 username: <username@profile> 2 password: <password> 3 insecure: yes - name: Upload RHCOS image ovirt_disk: auth: "{{ ovirt_auth }}" name: <rhcos_44-81_img-diskname> 4 size: 120GiB 5 interface: virtio_scsi storage_domain: <SSD_RAID_10> 6 bootable: yes timeout: 3600 7 upload_image_path: </custom/rhcos-44.81.202003110027-0-openstack.x86_64.qcow2> 8 wait: yes
- 1
- 对于
<virtlab.example.com>
,请指定 RHV Manager 的完全限定域名(FQDN)。 - 2
- 对于
<username@profile>
,请指定 admin 用户名和档案。 - 3
- 对于
<password>
,请指定管理员密码。 - 4
- 对于
<rhcos_44-81_img-diskname>
,请指定一个磁盘名称。 - 5
- 对于生产环境,指定
120GiB
或更多。对于有资源限制或非生产环境,请指定32GiB
或更多。 - 6
- 对于
<SSD_RAID_10>
,请指定数据存储域名。 - 7
- 以秒为单位指定超时时间,以使您的 RHV 环境有足够的时间将 2.4 GB 镜像上传到存储中。默认值为
3600
秒(一小时)。 - 8
- 对于
</custom/rhcos-44.81.202003110027-0-openstack.x86_64.qcow2>
,请指定镜像路径和文件名。
在 Manager 上,运行 Ansible playbook。例如:
$ ansible-playbook rhcos_image.yaml -vvv
-
在管理门户中,进入 Storage
Disks 页面,找到您在 playbook 中指定的磁盘名称。例如: rhcos_44-81_img-diskname
。 - 当磁盘状态是 OK时,代表 playbook 已完成将 RHCOS 镜像上传到存储域的操作。
1.1.3. 确定用于自定义虚拟机模板的资源
如果您计划 使用默认配置选项在 RHV 上快速安装集群,请跳至下一任务 ,将带有 RHCOS 镜像的虚拟磁盘附加到虚拟机。
或者,如果您计划使用自定义配置在 RHV 上安装集群,请参考以下信息。
您可以自定义安装程序用来在 OpenShift Container Platform 集群中创建 control 和 compute 机器的虚拟机模板。您可以自定义模板,以便包括除默认虚拟 CPU、内存和存储资源以外的配置。您的自定义配置会同时用于 control 和 compute 机器,它们不能以不同的方式进行自定义。
过度分配资源可能会导致集群安装或操作失败。要避免资源过量分配,您必须确定每个虚拟机有多少资源可用: 请检查 Red Hat Virtualization (RHV) 集群中的资源并根据虚拟机的数量来划分这些资源。结果是您可以为每个资源分配的最大值。
流程
检查 RHV 集群中的可用资源。
- 访问 验证 RHV 环境的要求
- 记录存储的 Free Space、Logical CPU Cores 和 Max free Memory for scheduling new VMs 的值。
记录在 OpenShift Container Platform 集群中的虚拟机数量。
- 默认情况下,集群包含七台机器。
- 您还可以自定义机器数量,如 RHV 的安装配置参数中所述。为了考虑 bootstrap 机器,需要把配置文件中的机器数量加一。
- 根据虚拟机数量来划分每个资源。
- 记录这些值以便稍后使用。
1.1.4. 将虚拟磁盘与 RHCOS 镜像附加到虚拟机
将虚拟磁盘与 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像附加到虚拟机。
流程
-
进入 Compute
Virtual Machines 页面,然后点击 。 -
在打开的 New Virtual Machine
General 窗口中,使用 Cluster 选择要创建 OpenShift Container Platform 集群的 RHV 集群。 - 不要更改 Template,选择 Blank。
- 将 Operating System 设置为 Red Hat Enterprise Linux CoreOS。
- 不要修改 Optimized for,选择 Desktop 。
-
在 Name 中指定虚拟机的名称。例如,
vmname
。 - 对于 Instance Images,点 。
-
在打开的 Attach Virtual Disks 窗口中,找到您在 playbook 中指定的磁盘。例如:
rhcos_44-81_img-diskname
。 - 点击这个磁盘的单选按钮。
- 为这个磁盘选择 OS。使这个磁盘可引导。
- 点 Attach Virtual Disks 窗口。 保存并关闭
1.1.5. 配置并创建虚拟机
继续配置虚拟机,然后创建它。
流程
-
在 New Virtual Machine
General 窗口中,为 Instantiate VM network interfaces by picking a vNIC profile 下的每个 NIC 选择一个 vNIC 配置集。 -
进入 New Virtual Machine
System 窗口。 - 将 Memory Size 设置为16384 MB 或更大的值。这个默认值等于 16 GiB。您可以根据计算机器上预期的工作负载和可用的内存资源量来调整这个值。
- 因为一个已知问题 (bz#1821215),把 Physical Memory Guaranteed 设置为 8192 MB。这个值相当于 8 GiB。
- 将 Total Virtual CPUs 设置为 4 或更大值。您可以根据计算机器上预期的工作负载以及可用的资源来调整这个值。
- 展开 Advanced Parameters。
- 把 Cores per Virtual Socket 的值设为 4 或一个更大的值,以使它和 Total Virtual CPUs 设置匹配。
点 New Virtual Machine。
保存并关闭新的虚拟机会出现在 Compute
Virtual Machines 窗口中。因为虚拟机没有启动,因此它会很快出现。
1.1.6. 创建虚拟机模板
创建虚拟机模板。
流程
- 选择新虚拟机。
- 在管理门户窗口右上角,点击 More actions 菜单,然后选择 Make Template。
-
在 新建模板 窗口中,为 Name指定值。例如:
vm-tmpltname
。 - 验证 Target 和其他参数值是否正确,并反映了您之前的选择。
- 确认 Seal Template (Linux only)没有被选择。
- 点击 。
-
前往 Compute
Templates 页面并等待模板的创建。
1.1.7. 导出一些环境变量
使用这些环境变量来自定义安装是临时解决已知问题(BZ#1818577)的方法。以后的发行版本中可能会删除这部分内容。
- 决定在虚拟机设置中的 Memory 和 Total Virtual CPUs 的值。
- 在安装机器的命令行中运行以下环境变量。
$ export OPENSHIFT_INSTALL_OS_IMAGE_OVERRIDE=<vm-tmpltname> 1 $ export TF_VAR_ovirt_template_mem=<mem-value> 2 $ export TF_VAR_ovirt_template_cpu=<cpu-value> 3 $ export TF_VAR_ovirt_master_mem=<mem-value> 4 $ export TF_VAR_ovirt_master_cpu=<cpu-value> 5
- 1
- 对于
<vm-tmpltname>
,请指定您创建的模板的名称。 - 2 4
- 对于
<mem-value>
,请指定虚拟机的内存值(单位为 MB)。例如,16384
。 - 3 5
- 对于
<cpu-value>
,请指定虚拟机中 总计虚拟 CPU 的值。例如,4
。例如:
$ export OPENSHIFT_INSTALL_OS_IMAGE_OVERRIDE=vm-tmpltname $ export TF_VAR_ovirt_template_mem=16384 $ export TF_VAR_ovirt_template_cpu=4 $ export TF_VAR_ovirt_master_mem=16384 $ export TF_VAR_ovirt_master_cpu=4