12.6.7. 创建安装配置文件

您可以自定义在 Red Hat OpenStack Platform(RHOSP)上安装的 OpenShift Container Platform 集群。

先决条件

  • 获取 OpenShift Container Platform 安装程序以及集群的 pull secret。对于受限网络安装,这些文件位于您的堡垒主机上。
  • 具有创建镜像容器镜像仓库(registry)时生成的 imageContentSources 值。
  • 获取您的镜像 registry 的证书内容。
  • 检索 Red Hat Enterprise Linux CoreOS(RHCOS)镜像,并将其上传到可访问的位置。
  • 在订阅级别获取服务主体权限。

流程

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

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

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

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

    2. 在提示符处,提供您的云的配置详情:

      1. 可选:选择用来访问集群机器的 SSH 密钥。

        注意

        对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请指定 ssh-agent 进程使用的 SSH 密钥。

      2. 选择 openstack 作为目标平台。
      3. 指定用于安装集群的 Red Hat OpenStack Platform (RHOSP) 外部网络名称。
      4. 指定用于从外部访问 OpenShift API 的浮动 IP 地址。
      5. 指定至少有 16 GB RAM 用于 control plane 节点,以及计算节点的 8 GB RAM。
      6. 选择集群要部署到的基域。所有 DNS 记录都将是这个基域的子域,并包含集群名称。
      7. 为集群输入一个名称。名称不能多于 14 个字符。
      8. 粘贴 Red Hat OpenShift Cluster Manager 中的 pull secret
  2. install-config.yaml 文件中,将 platform.openstack.clusterOSImage 的值设置为镜像位置或名称。例如:

    platform:
      openstack:
          clusterOSImage: http://mirror.example.com/images/rhcos-43.81.201912131630.0-openstack.x86_64.qcow2.gz?sha256=ffebbd68e8a1f2a245ca19522c16c86f67f9ac8e4e0c1f0a812b068b16f7265d
  3. 编辑 install-config.yaml 文件,以提供在受限网络中安装所需的其他信息。

    1. 更新 pullSecret 值,使其包含 registry 的身份验证信息:

      pullSecret: '{"auths":{"<mirror_host_name>:5000": {"auth": "<credentials>","email": "you@example.com"}}}'

      对于 <mirror_host_name>,请指定您在镜像 registry 证书中指定的 registry 域名;对于 <credentials>,请指定您的镜像 registry 的 base64 编码用户名和密码。

    2. 添加 additionalTrustBundle 参数和值。

      additionalTrustBundle: |
        -----BEGIN CERTIFICATE-----
        ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
        -----END CERTIFICATE-----

      该值必须是您用于镜像 registry 的证书文件内容,可以是现有的可信证书颁发机构或您为镜像 registry 生成的自签名证书。

    3. 添加镜像内容资源,如下例所示:

      imageContentSources:
      - mirrors:
        - <mirror_host_name>:5000/<repo_name>/release
        source: quay.example.com/openshift-release-dev/ocp-release
      - mirrors:
        - <mirror_host_name>:5000/<repo_name>/release
        source: registry.example.com/ocp/release

      要完成这些值,请使用您在创建镜像容器镜像仓库(registry)时记录的 imageContentSources

  4. 对需要的 install-config.yaml 文件做任何其他修改。您可以在安装配置参数部分中找到有关可用参数的更多信息。
  5. 备份 install-config.yaml 文件,以便用于安装多个集群。

    重要

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

12.6.7.1. 在安装过程中配置集群范围代理

生产环境可能会拒绝直接访问互联网,而是提供 HTTP 或 HTTPS 代理。您可以通过在 install-config.yaml 文件中配置代理设置,将新的 OpenShift Container Platform 集群配置为使用代理。

先决条件

  • 您有一个现有的 install-config.yaml 文件。
  • 您检查了集群需要访问的站点,并决定是否需要绕过代理。默认情况下代理所有集群出口流量,包括对托管云供应商 API 的调用。您需要将站点添加到 Proxy 对象的 spec.noProxy 字段来绕过代理。

    注意

    Proxy 对象 status.noProxy 字段使用安装配置中的 networking.machineNetwork[].cidrnetworking.clusterNetwork[].cidrnetworking.serviceNetwork[] 字段的值填充。

    对于在 Amazon Web Services(AWS)、Google Cloud Platform(GCP)、Microsoft Azure 和 Red Hat OpenStack Platform(RHOSP)上安装, Proxy 对象 status.noProxy 字段也会使用实例元数据端点填充(169.254.169.254)。

流程

  1. 编辑 install-config.yaml 文件并添加代理设置。例如:

    apiVersion: v1
    baseDomain: my.domain.com
    proxy:
      httpProxy: http://<username>:<pswd>@<ip>:<port> 1
      httpsProxy: https://<username>:<pswd>@<ip>:<port> 2
      noProxy: example.com 3
    additionalTrustBundle: | 4
        -----BEGIN CERTIFICATE-----
        <MY_TRUSTED_CA_CERT>
        -----END CERTIFICATE-----
    ...
    1
    用于创建集群外 HTTP 连接的代理 URL。URL 必须是 http
    2
    用于创建集群外 HTTPS 连接的代理 URL。
    3
    要排除在代理中的目标域名、IP 地址或其他网络 CIDR 的逗号分隔列表。在域前面加 . 来仅匹配子域。例如: .y.com 匹配 x.y.com,但不匹配 y.com。使用 * 绕过所有目的地的代理。
    4
    如果提供,安装程序会在 openshift-config 命名空间中生成名为 user-ca- bundle 的配置映射来保存额外的 CA 证书。如果您提供 additionalTrustBundle 和至少一个代理设置,则 Proxy 对象会被配置为引用 trustedCA 字段中的 user-ca-bundle 配置映射。然后,Cluster Network Operator 会创建一个 trusted-ca-bundle 配置映射,该配置映射将为 trustedCA 参数指定的内容与 RHCOS 信任捆绑包合并。additionalTrustBundle 字段是必需的,除非代理的身份证书由来自 RHCOS 信任捆绑包的颁发机构签名。
    注意

    安装程序不支持代理的 readinessEndpoints 字段。

  2. 保存该文件,并在安装 OpenShift Container Platform 时引用。

安装程序会创建一个名为 cluster 的集群范围代理,该代理使用提供的 install-config.yaml 文件中的代理设置。如果没有提供代理设置,仍然会创建一个 cluster Proxy 对象,但它会有一个空 spec

注意

只支持名为 clusterProxy 对象,且无法创建额外的代理。