22.3. 使用自定义在 RHV 上安装集群
您可以在 Red Hat Virtualization(RHV)上自定义并安装 OpenShift Container Platform 集群,如下图所示类似。
安装程序使用安装程序置备的基础架构自动创建和部署集群。
要安装自定义集群,请准备环境并执行以下步骤:
-
通过运行安装程序并根据提示,创建安装配置文件
install-config.yaml
。 -
检查和修改
install-config.yaml
文件中的参数。 -
生成
install-config.yaml
文件的一个工作副本。 -
使用
install-config.yaml
文件的副本来运行安装程序。
然后,安装程序会创建 OpenShift Container Platform 集群。
有关安装自定义集群的其他方法,请参阅 安装默认集群。
这个安装程序只适用于 Linux 和 macOS。
22.3.1. 先决条件
- 您可以参阅有关 OpenShift Container Platform 安装和更新 流程的详细信息。
- 在 Red Hat Virtualization(RHV)上的 OpenShift Container Platform Support Matrix 中支持的版本组合。
- 您可以阅读有关 选择集群安装方法的文档,并为用户准备它。
- 如果使用防火墙,则会 将其配置为允许集群需要访问的站点。
22.3.2. OpenShift Container Platform 互联网访问
在 OpenShift Container Platform 4.12 中,您需要访问互联网来安装集群。
您必须具有以下互联网访问权限:
- 访问 OpenShift Cluster Manager Hybrid Cloud Console 以下载安装程序并执行订阅管理。如果集群可以访问互联网,并且没有禁用 Telemetry,该服务会自动授权您的集群。
- 访问 Quay.io,以获取安装集群所需的软件包。
- 获取执行集群更新所需的软件包。
如果您的集群无法直接访问互联网,则可以在置备的某些类型的基础架构上执行受限网络安装。在此过程中,您可以下载所需的内容,并使用它为镜像 registry 填充安装软件包。对于某些安装类型,集群要安装到的环境不需要访问互联网。在更新集群前,您要更新镜像 registry 的内容。
22.3.3. RHV 环境的要求
要安装并运行 OpenShift Container Platform 版本 4.12 集群,RHV 环境必须满足以下要求。
不满足这些要求可能会导致安装或进程失败。另外,无法满足这些要求可能会导致 OpenShift Container Platform 集群在安装后几天或几星期后失败。
对 CPU、内存和存储资源的以下要求是基于 默认值 乘以安装程序创建的默认虚拟机数。除了 RHV 环境用于非 OpenShift Container Platform 操作的资源外,这些资源还必须可用。
默认情况下,安装程序会在安装过程中创建七台虚拟机。首先,它会创建一个 bootstrap 虚拟机来提供临时服务和 control plane,同时创建 OpenShift Container Platform 集群的其余部分。当安装程序完成集群创建后,删除 bootstrap 机器会释放其资源。
如果在 RHV 环境中增加虚拟机数量,则必须相应地增加资源。
要求
- RHV 版本为 4.4。
- RHV 环境有一个数据中心,其状态为 Up。
- RHV 数据中心包含一个 RHV 集群。
RHV 集群具有专门用于 OpenShift Container Platform 集群的以下资源:
- 最小 28 个 vCPU:在安装过程中创建的七台虚拟机中每个都需要 4 个.
112 GiB RAM 或更多,包括:
- 16 GiB 或更多用于提供临时 control plane 的 bootstrap 机器。
- 每个提供 control plane 机器的 control plane 机器都需要 16 GiB 或以上。
- 每个运行应用程序工作负载的三台计算机器都需要 16 GiB 或以上。
- RHV 存储域必须满足 etcd 后端性能要求。
对于关联性组支持:
每个 worker 或 control plane 一台物理机器。worker 和 control plane 可以位于同一台物理机上。例如,如果您有三个 worker 和三个 control plane,则需要三台物理机器。如果您有四个 worker 和三个 control plane,则需要四台物理机器。
- 对于硬反关联性(默认):至少三台物理计算机.对于多个 worker 节点,每个 worker 或 control plane 一台物理机器。worker 和 control plane 可以位于同一台物理机上。
- 对于自定义关联性组:确保资源适合您定义的关联性组规则。
- 在生产环境中,每个虚拟机必须具有 120 GiB 或更多存储。因此,存储域必须为默认的 OpenShift Container Platform 集群提供 840 GiB 或更多存储。在资源受限或非生产环境中,每个虚拟机必须具有 32 GiB 或更多存储,因此对于默认的 OpenShift Container Platform 集群,存储域必须具有 230 GiB 或更多存储。
- 要在安装和更新过程中从红帽生态系统目录下载镜像,RHV 集群必须可以访问互联网。Telemetry 服务还需要互联网连接来简化订阅和权利流程。
- RHV 集群必须具有一个虚拟网络,可访问 RHV Manager 上的 REST API。确保在这个网络中启用了 DHCP,因为安装程序创建的虚拟机会使用 DHCP 获取其 IP 地址。
具有以下最低权限的用户帐户和组,用于在目标 RHV 集群上安装和管理 OpenShift Container Platform 集群:
-
DiskOperator
-
DiskCreator
-
UserTemplateBasedVm
-
TemplateOwner
-
TemplateCreator
-
目标集群中的
ClusterAdmin
-
应用最小权限原则:避免在安装过程中使用带有 RHV SuperUser
权限的管理员帐户。安装程序会将您提供的凭证保存到一个临时的 ovirt-config.yaml
文件中,该文件可能会被破坏。
22.3.4. 验证 RHV 环境的要求
验证 RHV 环境是否满足安装和运行 OpenShift Container Platform 集群的要求。不满足这些要求可能会导致失败。
这些要求基于安装程序用来创建 control plane 和计算机器的默认资源。这些资源包括 vCPU、内存和存储。如果更改这些资源或增加 OpenShift Container Platform 机器的数量,请相应地调整这些要求。
流程
检查 RHV 版本是否支持安装 OpenShift Container Platform 版本 4.12。
- 在 RHV 管理门户中,单击右上角的 ? 帮助图标,然后选择 About。
- 在打开的窗口中,记下 RHV 软件版本。
- 确认 RHV 版本为 4.4。如需有关支持的版本组合的更多信息,请参阅 RHV 上的 OpenShift Container Platform 支持列表。
检查数据中心、集群和存储。
-
在 RHV 管理门户中,点击 Compute
Data Centers。 - 确认可以访问您要安装 OpenShift Container Platform 的数据中心。
- 单击该数据中心的名称。
- 在数据中心详情中,Storage 选项卡中确认您要安装 OpenShift Container Platform 的存储域是 Active。
- 记录下 域名 以供稍后使用。
- 确认 Free Space 至少为 230 GiB。
- 确认存储域满足 etcd 后端性能要求,您可以使用 fio 性能基准工具进行测量。
- 在数据中心详情中点击 Clusters 选项卡。
- 找到您要安装 OpenShift Container Platform 的 RHV 集群。记录集群名称以供稍后使用。
-
在 RHV 管理门户中,点击 Compute
检查 RHV 主机资源。
- 在 RHV 管理门户中,点击 Compute > Clusters。
- 点击您要安装 OpenShift Container Platform 的集群。
- 在集群详情中点击 Hosts 选项卡。
- 检查主机,并确认它们有至少 28 个 逻辑 CPU 内核, 专门用于 OpenShift Container Platform 集群。
- 记录 逻辑 CPU 内核数 以便稍后使用。
- 确认这些 CPU 内核被分配,在安装过程中创建的七台虚拟机中的每一台都可以有四个内核。
确认主机总共有 112 GiB 的 Max free Memory for scheduling new virtual machines,以满足以下每个 OpenShift Container Platform 机器的要求:
- bootstrap 机器需要 16 GiB
- 三个 control plane 机器都需要 16 GiB
- 三个计算机器各自都需要 16 GiB
- 记录下 Max free Memory for scheduling new virtual machine 的数量, 以便稍后使用。
验证安装 OpenShift Container Platform 的虚拟网络是否可以访问 RHV Manager 的 REST API。在这个网络上的虚拟机中,使用 curl 访问 RHV Manager 的 REST API:
$ curl -k -u <username>@<profile>:<password> \ 1 https://<engine-fqdn>/ovirt-engine/api 2
例如:
$ curl -k -u ocpadmin@internal:pw123 \ https://rhv-env.virtlab.example.com/ovirt-engine/api
22.3.5. 在 RHV 上准备网络环境
为 OpenShift Container Platform 集群配置两个静态 IP 地址,并使用这些地址创建 DNS 条目。
流程
保留两个静态 IP 地址
- 在您要安装 OpenShift Container Platform 的网络上,标识 DHCP 租期池之外的两个静态 IP 地址。
连接到此网络上的主机,并验证每个 IP 地址都没有被使用。例如,使用地址解析协议(ARP)检查 IP 地址是否有条目:
$ arp 10.35.1.19
输出示例
10.35.1.19 (10.35.1.19) -- no entry
- 为您的网络环境保留两个静态 IP 地址。
- 记录这些 IP 地址以备将来参考。
为 OpenShift Container Platform REST API 创建 DNS 条目,并使用以下格式应用域名:
api.<cluster-name>.<base-domain> <ip-address> 1 *.apps.<cluster-name>.<base-domain> <ip-address> 2
例如:
api.my-cluster.virtlab.example.com 10.35.1.19 *.apps.my-cluster.virtlab.example.com 10.35.1.20
22.3.6. 以不安全的模式在 RHV 上安装 OpenShift Container Platform
默认情况下,安装程序会创建一个 CA 证书,提示您确认并保存在安装过程中要使用的证书。您不需要手动创建或安装。
虽然不建议您这样做,但您可以覆盖此功能并在不验证证书的情况下安装 OpenShift Container Platform,方法是以 不安全的 模式在 RHV 上安装 OpenShift Container Platform。
不 建议使用不安全 模式安装,因为它可让潜在的攻击者执行 Man-in-the-Middle 攻击并在网络中捕获敏感凭证。
流程
-
创建名为
~/.ovirt/ovirt-config.yaml
的文件。 在
ovirt-config.yaml
中添加以下内容:ovirt_url: https://ovirt.example.com/ovirt-engine/api 1 ovirt_fqdn: ovirt.example.com 2 ovirt_pem_url: "" ovirt_username: ocpadmin@internal ovirt_password: super-secret-password 3 ovirt_insecure: true
- 运行安装程序。
22.3.7. 为集群节点 SSH 访问生成密钥对
在 OpenShift Container Platform 安装过程中,您可以为安装程序提供 SSH 公钥。密钥通过它们的 Ignition 配置文件传递给 Red Hat Enterprise Linux CoreOS(RHCOS)节点,用于验证对节点的 SSH 访问。密钥添加到每个节点上 core
用户的 ~/.ssh/authorized_keys
列表中,这将启用免密码身份验证。
将密钥传递给节点后,您可以使用密钥对作为用户 核心
通过 SSH 连接到 RHCOS 节点。若要通过 SSH 访问节点,必须由 SSH 为您的本地用户管理私钥身份。
如果要通过 SSH 连接到集群节点来执行安装调试或灾难恢复,则必须在安装过程中提供 SSH 公钥。./openshift-install gather
命令还需要在集群节点上设置 SSH 公钥。
不要在生产环境中跳过这个过程,在生产环境中需要灾难恢复和调试。
流程
如果您在本地计算机上没有可用于在集群节点上进行身份验证的现有 SSH 密钥对,请创建一个。例如,在使用 Linux 操作系统的计算机上运行以下命令:
$ ssh-keygen -t ed25519 -N '' -f <path>/<file_name> 1
- 1
- 指定新 SSH 密钥的路径和文件名,如
~/.ssh/id_ed25519
。如果您已有密钥对,请确保您的公钥位于~/.ssh
目录中。
注意如果您计划在
x86_64
、ppc64le
和s390x
架构上安装使用 FIPS 验证或 Modules In Process 加密库的 OpenShift Container Platform 集群。请不要创建使用ed25519
算法的密钥。相反,创建一个使用rsa
或ecdsa
算法的密钥。查看公共 SSH 密钥:
$ cat <path>/<file_name>.pub
例如,运行以下命令来查看
~/.ssh/id_ed25519.pub
公钥:$ cat ~/.ssh/id_ed25519.pub
将 SSH 私钥身份添加到本地用户的 SSH 代理(如果尚未添加)。在集群节点上,或者要使用
./openshift-install gather
命令,需要对该密钥进行 SSH 代理管理,才能在集群节点上进行免密码 SSH 身份验证。注意在某些发行版中,自动管理默认 SSH 私钥身份,如
~/.ssh/id_rsa
和~/.ssh/id_dsa
。如果
ssh-agent
进程尚未为您的本地用户运行,请将其作为后台任务启动:$ eval "$(ssh-agent -s)"
输出示例
Agent pid 31874
注意如果集群处于 FIPS 模式,则只使用 FIPS 兼容算法来生成 SSH 密钥。密钥必须是 RSA 或 ECDSA。
将 SSH 私钥添加到
ssh-agent
:$ ssh-add <path>/<file_name> 1
- 1
- 指定 SSH 私钥的路径和文件名,如
~/.ssh/id_ed25519.pub
输出示例
Identity added: /home/<you>/<path>/<file_name> (<computer_name>)
后续步骤
- 安装 OpenShift Container Platform 时,为安装程序提供 SSH 公钥。
22.3.8. 获取安装程序
在安装 OpenShift Container Platform 前,将安装文件下载到您用于安装的主机上。
先决条件
- 您有一台运行 Linux 或 macOS 的计算机,本地磁盘空间为 500 MB。
流程
- 访问 OpenShift Cluster Manager 站点的 Infrastructure Provider 页面。如果您有红帽帐户,请使用您的凭证登录。如果没有,请创建一个帐户。
- 选择您的基础架构供应商。
进入到安装类型的页面,下载与您的主机操作系统和架构对应的安装程序,并将该文件放在您要存储安装配置文件的目录中。
重要安装程序会在用来安装集群的计算机上创建几个文件。在完成集群安装后,您必须保留安装程序和安装程序所创建的文件。这两个文件都需要删除集群。
重要删除安装程序创建的文件不会删除您的集群,即使集群在安装过程中失败也是如此。要删除集群,请为特定云供应商完成 OpenShift Container Platform 卸载流程。
提取安装程序。例如,在使用 Linux 操作系统的计算机上运行以下命令:
$ tar -xvf openshift-install-linux.tar.gz
- 从 Red Hat OpenShift Cluster Manager 下载安装 pull secret。此 pull secret 允许您与所含授权机构提供的服务进行身份验证,这些服务包括为 OpenShift Container Platform 组件提供容器镜像的 Quay.io。
22.3.9. 创建安装配置文件
您可以自定义在 Red Hat Virtualization(RHV)上安装的 OpenShift Container Platform 集群。
先决条件
- 获取 OpenShift Container Platform 安装程序和集群的 pull secret。
- 在订阅级别获取服务主体权限。
流程
创建
install-config.yaml
文件。进入包含安装程序的目录并运行以下命令:
$ ./openshift-install create install-config --dir <installation_directory> 1
- 1
- 对于
<installation_directory>
,请指定要存储安装程序创建的文件的目录名称。
在指定目录时:
-
验证该目录是否具有
执行
权限。在安装目录中运行 Terraform 二进制文件需要这个权限。 - 使用空目录。有些安装资产,如 bootstrap X.509 证书的过期间隔较短,因此不得重复使用安装目录。如果要重复使用另一个集群安装中的单个文件,您可以将它们复制到您的目录中。但是,安装资产的文件名可能会在发行版本间有所变化。从以前的 OpenShift Container Platform 版本中复制安装文件时请小心。
根据安装程序提示。
对于
SSH 公钥
,请选择免密码公钥,如~/.ssh/id_rsa.pub
。此密钥验证与新 OpenShift Container Platform 集群的连接。注意对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请选择
ssh-agent
进程使用的 SSH 密钥。-
对于
Platform
,选择ovirt
。 对于
Enter oVirt's API 端点 URL
,请使用以下格式输入 RHV API 的 URL:https://<engine-fqdn>/ovirt-engine/api 1
- 1
- 对于
<engine-fqdn>
,请指定 RHV 环境的完全限定域名。
例如:
$ curl -k -u ocpadmin@internal:pw123 \ https://rhv-env.virtlab.example.com/ovirt-engine/api
-
对于
Is the oVirt CA local?
,请输入Yes
,因为您已经设置了 CA 证书。否则,请输入No
。 -
对于
oVirt 的 CA 捆绑包
,如果您为之前的问题输入的是Yes
,请从/etc/pki/ca-trust/source/anchors/ca.pem
中复制证书内容并将其粘贴到此处。然后,按Enter 键
两次。如果您对前一个问题输入No
,则不会出现这个问题。 对于
oVirt engine username
,请使用以下格式输入 RHV 管理员的用户名和配置文件:<username>@<profile> 1
- 1
- 对于
<username>
,请指定 RHV 管理员的用户名。对于<profile>,
请指定登录配置集,您可以进入 RHV 管理门户登录页面并查看 Profile 下拉列表。用户名和配置集应类似以下示例:
ocpadmin@internal
-
对于
oVirt engine password
,请输入 RHV admin 密码。 -
对于
oVirt cluster
,请选择用于安装 OpenShift Container Platform 的集群。 -
对于
oVirt 存储域
,请选择安装 OpenShift Container Platform 的存储域。 -
对于
oVirt network
,请选择可访问 RHV Manager REST API 的虚拟网络。 -
对于
Internal API Virtual IP
,请为集群的 REST API 输入您设置的静态 IP 地址。 -
对于
Ingress 虚拟 IP
,请为通配符应用程序域输入您保留的静态 IP 地址。 -
对于
Base Domain
,请输入 OpenShift Container Platform 集群的基域。如果这个集群暴露于外部世界,这必须是 DNS 基础架构识别的有效域。例如: 输入virtlab.example.com
-
对于
Cluster Name
,请输入集群名称。例如:my-cluster
。使用您为 OpenShift Container Platform REST API 创建的外部注册/可解析 DNS 条目的集群名称,并应用域名。安装程序也将此名称提供给 RHV 环境中的集群。 -
对于
Pull Secret
,请从之前下载并粘贴的 pull-secret.txt
文件中复制 pull secret。您还可以从 Red Hat OpenShift Cluster Manager 获取同一 pull secret 的副本。
修改
install-config.yaml
文件。您可以在"安装配置参数"部分找到有关可用参数的更多信息。注意如果您在 Manager 上有任何中间 CA 证书,请验证证书是否出现在
ovirt-config.yaml
文件中以及install-config.yaml
文件中。如果没有显示它们,请按如下所示添加:在
~/.ovirt/ovirt-config.yaml
文件中:[ovirt_ca_bundle]: | -----BEGIN CERTIFICATE----- <MY_TRUSTED_CA> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <INTERMEDIATE_CA> -----END CERTIFICATE-----
在
install-config.yaml
文件中:[additionalTrustBundle]: | -----BEGIN CERTIFICATE----- <MY_TRUSTED_CA> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <INTERMEDIATE_CA> -----END CERTIFICATE-----
备份
install-config.yaml
文件,以便您可以使用它安装多个集群。重要install-config.yaml
文件会在安装过程中消耗掉。如果要重复使用该文件,您必须立即备份该文件。
22.3.9.1. Red Hat Virtualization(RHV)的 install-config.yaml
文件示例
您可以通过更改 install-config.yaml
文件中的参数和参数值来自定义安装程序创建的 OpenShift Container Platform 集群。
以下示例专用于在 RHV 上安装 OpenShift Container Platform。
install-config.yaml
位于 <installation_directory>
中,您在运行以下命令时指定的。
$ ./openshift-install create install-config --dir <installation_directory>
-
这些示例文件仅供参考。您必须使用安装程序来获取
install-config.yaml
文件。 -
更改
install-config.yaml
文件可以增加集群所需的资源。验证您的 RHV 环境是否具有这些其他资源。否则,安装或集群将失败。
默认 install-config.yaml
文件示例
apiVersion: v1 baseDomain: example.com compute: - architecture: amd64 hyperthreading: Enabled name: worker platform: ovirt: sparse: false 1 format: raw 2 replicas: 3 controlPlane: architecture: amd64 hyperthreading: Enabled name: master platform: ovirt: sparse: false 3 format: raw 4 replicas: 3 metadata: creationTimestamp: null name: my-cluster networking: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 machineNetwork: - cidr: 10.0.0.0/16 networkType: OVNKubernetes 5 serviceNetwork: - 172.30.0.0/16 platform: ovirt: api_vips: - 10.0.0.10 ingress_vips: - 10.0.0.11 ovirt_cluster_id: 68833f9f-e89c-4891-b768-e2ba0815b76b ovirt_storage_domain_id: ed7b0f4e-0e96-492a-8fff-279213ee1468 ovirt_network_name: ovirtmgmt vnicProfileID: 3fa86930-0be5-4052-b667-b79f0a729692 publish: External pullSecret: '{"auths": ...}' sshKey: ssh-ed12345 AAAA...
在 OpenShift Container Platform 4.12 及更新的版本中,api_vip
和 ingress_vip
配置设置已弃用。反之,使用列表格式在 api_vips
和 ingress_vips
配置设置中输入值。
最小 install-config.yaml
文件示例
apiVersion: v1 baseDomain: example.com metadata: name: test-cluster platform: ovirt: api_vips: - 10.46.8.230 ingress_vips: - 10.46.8.232 ovirt_cluster_id: 68833f9f-e89c-4891-b768-e2ba0815b76b ovirt_storage_domain_id: ed7b0f4e-0e96-492a-8fff-279213ee1468 ovirt_network_name: ovirtmgmt vnicProfileID: 3fa86930-0be5-4052-b667-b79f0a729692 pullSecret: '{"auths": ...}' sshKey: ssh-ed12345 AAAA...
在 OpenShift Container Platform 4.12 及更新的版本中,api_vip
和 ingress_vip
配置设置已弃用。反之,使用列表格式在 api_vips
和 ingress_vips
配置设置中输入值。
install-config.yaml
文件中的自定义机器池示例
apiVersion: v1 baseDomain: example.com controlPlane: name: master platform: ovirt: cpu: cores: 4 sockets: 2 memoryMB: 65536 osDisk: sizeGB: 100 vmType: server replicas: 3 compute: - name: worker platform: ovirt: cpu: cores: 4 sockets: 4 memoryMB: 65536 osDisk: sizeGB: 200 vmType: server replicas: 5 metadata: name: test-cluster platform: ovirt: api_vips: - 10.46.8.230 ingress_vips: - 10.46.8.232 ovirt_cluster_id: 68833f9f-e89c-4891-b768-e2ba0815b76b ovirt_storage_domain_id: ed7b0f4e-0e96-492a-8fff-279213ee1468 ovirt_network_name: ovirtmgmt vnicProfileID: 3fa86930-0be5-4052-b667-b79f0a729692 pullSecret: '{"auths": ...}' sshKey: ssh-ed25519 AAAA...
在 OpenShift Container Platform 4.12 及更新的版本中,api_vip
和 ingress_vip
配置设置已弃用。反之,使用列表格式在 api_vips
和 ingress_vips
配置设置中输入值。
非强制关联性组示例
建议添加一个非强制关联性组来分发 control plane 和 worker(如果可能),以便尽可能多地使用集群。
platform: ovirt: affinityGroups: - description: AffinityGroup to place each compute machine on a separate host enforcing: true name: compute priority: 3 - description: AffinityGroup to place each control plane machine on a separate host enforcing: true name: controlplane priority: 5 - description: AffinityGroup to place worker nodes and control plane nodes on separate hosts enforcing: false name: openshift priority: 5 compute: - architecture: amd64 hyperthreading: Enabled name: worker platform: ovirt: affinityGroupsNames: - compute - openshift replicas: 3 controlPlane: architecture: amd64 hyperthreading: Enabled name: master platform: ovirt: affinityGroupsNames: - controlplane - openshift replicas: 3
为非生产实验设置删除所有关联性组示例
对于非生产实验设置,您必须删除所有关联性组,才能将 OpenShift 容器平台集群集中到您拥有的几个主机上。
platform: ovirt: affinityGroups: [] compute: - architecture: amd64 hyperthreading: Enabled name: worker platform: ovirt: affinityGroupsNames: [] replicas: 3 controlPlane: architecture: amd64 hyperthreading: Enabled name: master platform: ovirt: affinityGroupsNames: [] replicas: 3
22.3.9.2. 安装配置参数
在部署 OpenShift Container Platform 集群前,您可以提供参数值来描述托管集群的云平台中的帐户,并选择性地自定义集群平台。在创建 install-config.yaml
安装配置文件时,您可以通过命令行为所需参数提供值。如果自定义集群,您可以修改 install-config.yaml
文件以提供有关平台的更多详情。
安装后,您无法在 install-config.yaml
文件中修改这些参数。
22.3.9.2.1. 所需的配置参数
下表描述了所需的安装配置参数:
参数 | 描述 | 值 |
---|---|---|
|
| 字符串 |
|
云供应商的基域。基域用于创建到 OpenShift Container Platform 集群组件的路由。集群的完整 DNS 名称是 |
完全限定域名或子域名,如 |
|
Kubernetes 资源 | 对象 |
|
集群的名称。集群的 DNS 记录是 |
小写字母、连字符( |
|
要执行安装的具体平台配置: | 对象 |
| 从 Red Hat OpenShift Cluster Manager 获取 pull secret,验证从 Quay.io 等服务中下载 OpenShift Container Platform 组件的容器镜像。 |
{ "auths":{ "cloud.openshift.com":{ "auth":"b3Blb=", "email":"you@example.com" }, "quay.io":{ "auth":"b3Blb=", "email":"you@example.com" } } } |
22.3.9.2.2. 网络配置参数
您可以根据现有网络基础架构的要求自定义安装配置。例如,您可以扩展集群网络的 IP 地址块,或者提供不同于默认值的不同 IP 地址块。
仅支持 IPv4 地址。
Red Hat OpenShift Data Foundation 灾难恢复解决方案不支持 Globalnet。对于区域灾难恢复场景,请确保为每个集群中的集群和服务网络使用非重叠的专用 IP 地址。
参数 | 描述 | 值 |
---|---|---|
| 集群网络的配置。 | 对象 注意
您无法在安装后修改 |
| 要安装的 Red Hat OpenShift Networking 网络插件。 |
|
| pod 的 IP 地址块。
默认值为 如果您指定了多个 IP 地址块,块不得重叠。 | 对象数组。例如: networking: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 |
|
使用 IPv4 网络。 |
无类别域间路由(CIDR)表示法中的 IP 地址块。IPv4 块的前缀长度介于 |
|
分配给每个节点的子网前缀长度。例如,如果 | 子网前缀。
默认值为 |
|
服务的 IP 地址块。默认值为 OpenShift SDN 和 OVN-Kubernetes 网络插件只支持服务网络的一个 IP 地址块。 | CIDR 格式具有 IP 地址块的数组。例如: networking: serviceNetwork: - 172.30.0.0/16 |
| 机器的 IP 地址块。 如果您指定了多个 IP 地址块,块不得重叠。 | 对象数组。例如: networking: machineNetwork: - cidr: 10.0.0.0/16 |
|
使用 | CIDR 表示法中的 IP 网络块。
例如: 注意
将 |
22.3.9.2.3. 可选的配置参数
下表描述了可选的安装配置参数:
参数 | 描述 | 值 |
---|---|---|
| 添加到节点可信证书存储中的 PEM 编码 X.509 证书捆绑包。配置了代理时,也可以使用此信任捆绑包。 | 字符串 |
| 控制可选核心组件的安装。您可以通过禁用可选组件来减少 OpenShift Container Platform 集群的空间。如需更多信息,请参阅安装中的"集群功能"页面。 | 字符串数组 |
|
选择要启用的一组初始可选功能。有效值为 | 字符串 |
|
将可选功能集合扩展到您在 | 字符串数组 |
| 组成计算节点的机器的配置。 |
|
|
决定池中机器的指令集合架构。目前,不支持具有不同架构的集群。所有池都必须指定相同的架构。有效值为 | 字符串 |
|
是否在计算机器上启用或禁用并发多 重要 如果您禁用并发多线程,请确保您的容量规划考虑机器性能显著降低的情况。 |
|
|
使用 |
|
|
使用 |
|
| 要置备的计算机器数量,也称为 worker 机器。 |
大于或等于 |
| 为功能集启用集群。功能集是 OpenShift Container Platform 功能的集合,默认情况下不启用。有关在安装过程中启用功能集的更多信息,请参阅"使用功能门启用功能"。 |
字符串.要启用的功能集的名称,如 |
| 组成 control plane 的机器的配置。 |
|
|
决定池中机器的指令集合架构。目前,不支持具有不同架构的集群。所有池都必须指定相同的架构。有效值为 | 字符串 |
|
是否在 control plane 机器上启用或禁用并发多 重要 如果您禁用并发多线程,请确保您的容量规划考虑机器性能显著降低的情况。 |
|
|
使用 |
|
|
使用 |
|
| 要置备的 control plane 机器数量。 |
唯一支持的值是 |
| Cloud Credential Operator(CCO)模式。如果没有指定模式,CCO 会动态尝试决定提供的凭证的功能,在支持多个模式的平台上首选 mint 模式。 注意 不是所有 CCO 模式都支持所有云供应商。如需有关 CCO 模式的更多信息,请参阅集群 Operator 参考内容中的 Cloud Credential Operator 条目。 注意
如果您的 AWS 帐户启用了服务控制策略 (SCP),您必须将 |
|
|
启用或禁用 FIPS 模式。默认值为 重要
要为集群启用 FIPS 模式,您必须从配置为以 FIPS 模式操作的 Red Hat Enterprise Linux (RHEL) 计算机运行安装程序。有关在 RHEL 中配置 FIPS 模式的更多信息,请参阅在 FIPS 模式中安装该系统。只有在 注意 如果使用 Azure File 存储,则无法启用 FIPS 模式。 |
|
| release-image 内容的源和存储库。 |
对象数组。包括一个 |
|
使用 | 字符串 |
| 指定可能还包含同一镜像的一个或多个仓库。 | 字符串数组 |
| 如何发布或公开集群的面向用户的端点,如 Kubernetes API、OpenShift 路由。 |
在非云平台上不支持将此字段设置为 重要
如果将字段的值设为 |
| 用于验证对集群机器的访问的 SSH 密钥。 注意
对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请指定 |
例如, |
22.3.9.2.4. 其他 Red Hat Virtualization(RHV)配置参数
下表中描述了其他 RHV 配置参数:
参数 | 描述 | 值 |
---|---|---|
| 必需。创建虚拟机的群集。 |
字符串.例如: |
| 必需。创建虚拟机磁盘的存储域 ID。 |
字符串.例如: |
| 必需。创建 VM nics 的网络名称。 |
字符串.例如: |
| 必需。VM 网络接口的 vNIC 配置集 ID。如果集群网络只有一个配置集,则可以推断出这个值。 |
字符串.例如: |
| 必需。分配给 API 虚拟 IP(VIP)的机器网络上的 IP 地址。您可以在此端点访问 OpenShift API。对于双栈网络,最多分配两个 IP 地址。主 IP 地址必须来自 IPv4 网络。 注意
在 OpenShift Container Platform 4.12 及更新的版本中, |
字符串.示例: |
| 必需。分配给 Ingress 虚拟 IP(VIP)的机器网络上的 IP 地址。对于双栈网络,最多分配两个 IP 地址。主 IP 地址必须来自 IPv4 网络。 注意
在 OpenShift Container Platform 4.12 及更新的版本中, |
字符串.示例: |
| 可选。要在安装过程中创建的关联性组列表。 | 对象列表. |
|
如果您包含 |
字符串.示例: |
|
如果您包含 |
字符串.示例: |
|
如果您包含 |
字符串.示例: |
|
如果您包含 |
整数.示例: |
22.3.9.2.5. 机器池的其他 RHV 参数
下表描述了机器池的其他 RHV 配置参数:
参数 | 描述 | 值 |
---|---|---|
| 可选。定义虚拟机的 CPU。 | 对象 |
|
如果使用 | 整数 |
|
如果使用 | 整数 |
| 可选。MiB 中虚拟机的内存. | 整数 |
| 可选。定义虚拟机的第一个可引导磁盘。 | 字符串 |
|
如果使用 | 数字 |
|
可选。虚拟机工作负载类型,如 注意
| 字符串 |
| 可选。应应用于虚拟机的关联性组名称列表。关联性组必须存在于 RHV 中,或者在安装过程中创建,如本主题中 集群的额外 RHV 参数 中所述。此条目可以为空。
本例定义了两个关联性组,名为 <machine-pool>: platform: ovirt: affinityGroupNames: - compute - clusterWideNonEnforcing 这个示例定义了 no affinity 组: <machine-pool>: platform: ovirt: affinityGroupNames: [] | 字符串 |
|
可选。AutoPinningPolicy 定义自动设置 CPU 和 NUMA 设置的策略,包括固定到实例的主机。当省略该字段时,默认值为 | 字符串 |
|
可选。hugepages 是用于在虚拟机中定义大页的 KiB 大小。支持的值: | 整数 |
您可以将 <machine-pool>
替换为 controlPlane
或 compute
。
22.3.10. 部署集群
您可以在兼容云平台上安装 OpenShift Container Platform。
在初始安装过程中,您只能运行安装程序的 create cluster
命令一次。
先决条件
-
从运行安装程序的机器中打开
ovirt-imageio
端口到 Manager。默认情况下,端口为54322
。 - 获取 OpenShift Container Platform 安装程序和集群的 pull secret。
- 验证主机上的云供应商帐户是否有部署集群的正确权限。权限不正确的帐户会导致安装过程失败,并显示包括缺失权限的错误消息。
流程
验证
当集群部署成功完成时:
-
终端会显示用于访问集群的说明,包括指向 Web 控制台和
kubeadmin
用户的凭证的链接。 -
凭证信息还会输出到
<installation_directory>/.openshift_install.log
.
不要删除安装程序或安装程序所创建的文件。需要这两者才能删除集群。
输出示例
... INFO Install complete! INFO To access the cluster as the system:admin user when using 'oc', run 'export KUBECONFIG=/home/myuser/install_dir/auth/kubeconfig' INFO Access the OpenShift web-console here: https://console-openshift-console.apps.mycluster.example.com INFO Login to the console with user: "kubeadmin", and password: "password" INFO Time elapsed: 36m22s
-
安装程序生成的 Ignition 配置文件包含在 24 小时后过期的证书,然后在过期时进行续订。如果在更新证书前关闭集群,且集群在 24 小时后重启,集群会自动恢复过期的证书。一个例外是,您必须手动批准待处理的
node-bootstrapper
证书签名请求(CSR)来恢复 kubelet 证书。如需更多信息,请参阅从过期的 control plane 证书 中恢复的文档。 - 建议您在 Ignition 配置文件生成后的 12 小时内使用它们,因为 24 小时的证书会在集群安装后的 16 小时到 22 小时间进行轮转。通过在 12 小时内使用 Ignition 配置文件,您可以避免在安装过程中因为执行了证书更新而导致安装失败的问题。
您已完成了安装集群所需的步骤。剩余的步骤演示了如何验证集群并对安装进行故障排除。
22.3.11. 通过下载二进制文件安装 OpenShift CLI
您可以安装 OpenShift CLI(oc
)来使用命令行界面与 OpenShift Container Platform 进行交互。您可以在 Linux、Windows 或 macOS 上安装 oc
。
如果安装了旧版本的 oc
,则无法使用 OpenShift Container Platform 4.12 中的所有命令。下载并安装新版本的 oc
。
在 Linux 上安装 OpenShift CLI
您可以按照以下流程在 Linux 上安装 OpenShift CLI(oc
)二进制文件。
流程
- 导航到红帽客户门户网站上的 OpenShift Container Platform 下载页面。
- 从 产品变体 下拉列表中选择架构。
- 从 版本 下拉列表中选择适当的版本。
- 点 OpenShift v4.12 Linux Client 条目旁的 Download Now 来保存文件。
解包存档:
$ tar xvf <file>
将
oc
二进制文件放到PATH 中的目录中
。要查看您的
PATH
,请执行以下命令:$ echo $PATH
验证
安装 OpenShift CLI 后,可以使用
oc
命令:$ oc <command>
在 Windows 上安装 OpenShift CLI
您可以按照以下流程在 Windows 上安装 OpenShift CLI(oc
)二进制文件。
流程
- 导航到红帽客户门户网站上的 OpenShift Container Platform 下载页面。
- 从 版本 下拉列表中选择适当的版本。
- 点 OpenShift v4.12 Windows Client 条目旁的 Download Now 来保存文件。
- 使用 ZIP 程序解压存档。
将
oc
二进制文件移到PATH 中的目录中
。要查看您的
PATH
,请打开命令提示并执行以下命令:C:\> path
验证
安装 OpenShift CLI 后,可以使用
oc
命令:C:\> oc <command>
在 macOS 上安装 OpenShift CLI
您可以按照以下流程在 macOS 上安装 OpenShift CLI(oc
)二进制文件。
流程
- 导航到红帽客户门户网站上的 OpenShift Container Platform 下载页面。
- 从 版本 下拉列表中选择适当的版本。
点 OpenShift v4.12 macOS Client 条目旁的 Download Now 来保存文件。
注意对于 macOS arm64,请选择 OpenShift v4.12 macOS arm64 Client 条目。
- 解包和解压存档。
将
oc
二进制文件移到 PATH 的目录中。要查看您的
PATH
,请打开终端并执行以下命令:$ echo $PATH
验证
安装 OpenShift CLI 后,可以使用
oc
命令:$ oc <command>
22.3.12. 使用 CLI 登录集群
您可以通过导出集群 kubeconfig
文件,以默认系统用户身份登录集群。kubeconfig
文件包含有关集群的信息,供 CLI 用于将客户端连接到正确的集群和 API 服务器。该文件特定于集群,在 OpenShift Container Platform 安装过程中创建。
先决条件
- 已部署 OpenShift Container Platform 集群。
-
已安装
oc
CLI。
流程
导出
kubeadmin
凭证:$ export KUBECONFIG=<installation_directory>/auth/kubeconfig 1
- 1
- 对于
<installation_directory>
,请指定安装文件保存到的目录的路径。
验证您可以使用导出的配置成功运行
oc
命令:$ oc whoami
输出示例
system:admin
如需更多信息,请参阅 OpenShift CLI 入门。
22.3.13. 验证集群状态
您可以在安装过程中或安装后验证 OpenShift Container Platform 集群的状态。
流程
在集群环境中,导出管理员的 kubeconfig 文件:
$ export KUBECONFIG=<installation_directory>/auth/kubeconfig 1
- 1
- 对于
<installation_directory>
,请指定安装文件保存到的目录的路径。
kubeconfig
文件包含有关集群的信息,供 CLI 用于将客户端连接到正确的集群和 API 服务器。查看部署后创建的 control plane 和计算机器:
$ oc get nodes
查看集群的版本:
$ oc get clusterversion
查看 Operator 的状态:
$ oc get clusteroperator
查看集群中的所有正在运行的 pod:
$ oc get pods -A
故障排除
如果安装失败,安装程序会超时并显示错误消息。如需更多信息,请参阅 故障排除安装问题。
22.3.14. 访问 RHV 上的 OpenShift Container Platform Web 控制台
OpenShift Container Platform 集群初始化后,您可以登录到 OpenShift Container Platform Web 控制台。
流程
-
可选: 在 Red Hat Virtualization(RHV)管理门户中,打开 Compute
Cluster。 - 验证安装程序是否创建了虚拟机。
- 返回到安装程序正在运行的命令行。安装程序完成后,它会显示登录 OpenShift Container Platform Web 控制台的用户名和临时密码。
在一个浏览器中,打开 OpenShift Container Platform Web 控制台的 URL。URL 使用以下格式:
console-openshift-console.apps.<clustername>.<basedomain> 1
- 1
- 对于
<clustername>.<basedomain>
,请指定集群名称和基域。
例如:
console-openshift-console.apps.my-cluster.virtlab.example.com
22.3.15. OpenShift Container Platform 的 Telemetry 访问
在 OpenShift Container Platform 4.12 中,默认运行的 Telemetry 服务提供有关集群健康状况和成功更新的指标,需要访问互联网。如果您的集群连接到互联网,Telemetry 会自动运行,并且集群会注册到 OpenShift Cluster Manager Hybrid Cloud Console。
确认 OpenShift Cluster Manager Hybrid Cloud Console 清单正确后,可以由 Telemetry 自动维护,也可以使用 OpenShift Cluster Manager 手动维护,使用订阅监控来跟踪帐户或多集群级别的 OpenShift Container Platform 订阅。
其他资源
- 有关 Telemetry 服务的更多信息,请参阅关于 远程健康监控
22.3.16. 在 Red Hat Virtualization(RHV)上安装时的常见问题
以下是您可能遇到的一些常见问题,以及推荐的原因和解决方案。
22.3.16.1. CPU 负载增加和节点进入非 就绪
状态
-
症状:CPU 负载显著增加,节点开始处于非
Ready 状态
。 - 原因 :存储域延迟可能太大,特别是 control plane 节点。
解决方案 :
通过重启 kubelet 服务使节点再次就绪:
$ systemctl restart kubelet
检查 OpenShift Container Platform 指标服务,该服务会自动收集并报告一些有价值的数据,如 etcd 磁盘同步持续时间。如果集群是可操作的,请使用这些数据来帮助确定存储延迟或吞吐量是否为根本问题。如果是这样,请考虑使用一个较低延迟和更高吞吐量的存储资源。
要获取原始指标,请以 kubeadmin 或具有 cluster-admin 权限的用户身份输入以下命令:
$ oc get --insecure-skip-tls-verify --server=https://localhost:<port> --raw=/metrics
如需更多信息,请参阅 使用 OpenShift 4.x 调试应用程序端点。
22.3.16.2. 连接 OpenShift Container Platform 集群 API 存在问题
症状 :安装程序完成,但无法使用 OpenShift Container Platform 集群 API。bootstrap 虚拟机在 bootstrap 过程完成后仍然会保留。当您输入以下命令时,响应会超时。
$ oc login -u kubeadmin -p *** <apiurl>
- 原因 : 安装程序没有删除 bootstrap 虚拟机,且没有释放集群的 API IP 地址。
解决方案 :
使用 wait-for
子命令在 bootstrap 过程完成后获得通知:$ ./openshift-install wait-for bootstrap-complete
bootstrap 过程完成后,删除 bootstrap 虚拟机:
$ ./openshift-install destroy bootstrap
22.3.17. 安装后的任务
OpenShift Container Platform 集群初始化后,您可以执行以下任务。
- 可选:部署后,使用 OpenShift Container Platform 中的 Machine Config Operator(MCO)添加或替换 SSH 密钥。
-
可选:删除
kubeadmin
用户。取而代之,使用身份验证提供程序来创建具有 cluster-admin 特权的用户。