15.6.9. 创建安装配置文件

您可以自定义在 Google Cloud Platform (GCP) 上安装的 OpenShift Container Platform 集群。Red Hat Virtualization(RHV)。

先决条件

  • 获取 OpenShift Container Platform 安装程序以及集群的 pull secret。

流程

  1. 创建 install-config.yaml 文件。

    1. 更改到包含安装程序的目录,再运行以下命令:

      $ ./openshift-install create install-config --dir=<installation_directory> 1
      1
      对于 <installation_directory>,请指定用于保存安装程序所创建的文件的目录名称。
      重要

      指定一个空目录。一些安装信息,如 bootstrap X.509 证书,有较短的过期间隔,因此不要重复使用安装目录。如果要重复使用另一个集群安装中的个别文件,可以将其复制到您的目录中。但是,一些安装数据的文件名可能会在发行版本之间有所改变。从 OpenShift Container Platform 老版本中复制安装文件时要格外小心。

      1. 选择 gcp 作为目标平台。
      2. 如果您没有为计算机上的 GCP 帐户配置服务帐户密钥,则必须从 GCP 获取,并粘贴文件的内容或输入文件的绝对路径。
      3. 选择要在其中置备集群的项目 ID。默认值由您配置的服务帐户指定。
      4. 选择要在其中部署集群的区域。
      5. 选择集群要部署到的基域。基域与您为集群创建的公共 DNS 区对应。
    2. 根据安装程序提示输入相关的值。

      1. 对于 SSH 公钥,请选择免密码公钥,如 ~/.ssh/id_rsa.pub。这个密钥被用来验证与新的 OpenShift Container Platform 集群的连接。

        注意

        如果您要在生产环境中执行安装调试或灾难恢复,请指定 ssh-agent 进程需要使用的 SSH 密钥。

      2. 对于 Platform,选择 ovirt
      3. 对于 Enter oVirt’s API endpoint 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
      4. 对于 Is the oVirt CA local?,请输入 Yes,因为您已经设置了 CA 证书。否则,请输入 No
      5. 对于 oVirt 的 CA bundle,如果您为前一个问题输入的是 Yes,请从 /etc/pki/ca-trust/source/anchors/ca.pem 中复制证书内容并粘贴到这里。然后按两次 Enter 键。如果您就前一个问题输入 No,则不会出现这个问题。
      6. 对于 oVirt engine username,请使用以下格式输入 RHV 管理员的用户名和配置文件:

        <username>@<profile> 1
        1
        对于 <username>,请指定 RHV 管理员的用户名。对于 <profile>,请指定登录配置集,您可以登陆到 RHV 管理门户查看 Profile 下拉列表。用户名和配置集应与以下示例相似:
        ocpadmin@internal
      7. 对于 oVirt engine password,请输入 RHV admin 密码。
      8. 对于 oVirt cluster,请选择用于安装 OpenShift Container Platform 的集群。
      9. 对于 oVirt storage domain,请选择安装 OpenShift Container Platform 的存储域。
      10. 对于 oVirt network,请选择可访问 RHV Manager REST API 的虚拟网络。
      11. 对于 Internal API Virtual IP,请为集群的 REST API 输入您设置的静态 IP 地址。
      12. 对于 Ingress virtual IP,请为通配符应用程序域输入您保留的静态 IP 地址。
      13. 对于 Base Domain,请输入 OpenShift Container Platform 集群的基域。如果这个群集暴露于外部世界,这必须是 DNS 基础结构可识别的有效域。例如: 输入 virtlab.example.com
      14. 对于 Cluster Name,请输入集群名称。例如: my-cluster。使用您为 OpenShift Container Platform REST API 创建的外部注册/可解析 DNS 条目的集群名称,以及应用域名。安装程序也将此名称提供给 RHV 环境中的集群。
      15. 对于 Pull Secret,请从之前下载并粘贴的 pull-secret.txt 文件中复制 pull secret。您还可以从 Red Hat OpenShift Cluster Manager 站点的 Pull Secret 页面中获取同一 pull secret 的副本。
  2. 修改 install-config.yaml 文件。您可以在"安装配置参数"部分找到有关可用参数的更多信息。

    注意

    如果您在 Manager 上有任何中间 CA 证书,请验证证书是否出现在 ovirt-config.yaml 文件中以及 install-config.yaml 文件中。如果没有存在,请按如下所示添加:

    1. ~/.ovirt/ovirt-config.yaml 文件中:

      [ovirt_ca_bundle]: |
           -----BEGIN CERTIFICATE-----
           <MY_TRUSTED_CA>
           -----END CERTIFICATE-----
           -----BEGIN CERTIFICATE-----
           <INTERMEDIATE_CA>
           -----END CERTIFICATE-----
    2. install-config.yaml 文件中:

      [additionalTrustBundle]: |
           -----BEGIN CERTIFICATE-----
           <MY_TRUSTED_CA>
           -----END CERTIFICATE-----
           -----BEGIN CERTIFICATE-----
           <INTERMEDIATE_CA>
           -----END CERTIFICATE-----
  3. 备份 install-config.yaml 文件,以便用于安装多个集群。

    重要

    install-config.yaml 文件会在安装过程中消耗掉。如果要重复使用此文件,必须现在备份。

15.6.9.1. Red Hat Virtualization(RHV)的 install-config.yaml 文件示例

您可以通过更改 install-config.yaml 文件中的参数和参数值来自定义安装程序创建的 OpenShift Container Platform 集群。

以下示例专用于在 RHV 上安装 OpenShift Container Platform。

该文件位于您运行以下命令时指定的 <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: {}
  replicas: 3
controlPlane:
  architecture: amd64
  hyperthreading: Enabled
  name: master
  platform: {}
  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: OpenShiftSDN
  serviceNetwork:
  - 172.30.0.0/16
platform:
  ovirt:
    api_vip: 10.46.8.230
    ingress_vip: 192.168.1.5
    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...

示例:最小 install-config.yaml 文件

apiVersion: v1
baseDomain: example.com
metadata:
  name: test-cluster
platform:
  ovirt:
    api_vip: 10.46.8.230
    ingress_vip: 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...

示例: 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_vip: 10.46.8.230
    ingress_vip: 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...