19.5. 在受限网络中的 OpenStack 上安装集群


在 OpenShift Container Platform 4.16 中,您可以通过创建安装发行内容的内部镜像在受限网络中的 Red Hat OpenStack Platform(RHOSP)上安装集群。

19.5.1. 先决条件

19.5.2. 关于在受限网络中安装

在 OpenShift Container Platform 4.16 中,可以执行不需要有效的互联网连接来获取软件组件的安装。受限网络安装可以使用安装程序置备的基础架构或用户置备的基础架构完成,具体取决于您要安装集群的云平台。

如果您选择在云平台中执行受限网络安装,您仍需要访问其云 API。有些云功能,比如 Amazon Web Service 的 Route 53 DNS 和 IAM 服务,需要访问互联网。根据您的网络,在裸机硬件、Nutanix 或 VMware vSphere 上安装可能需要较少的互联网访问。

要完成受限网络安装,您必须创建一个 registry,以镜像 OpenShift 镜像 registry 的内容并包含安装介质。您可以在镜像主机上创建此 registry,该主机可同时访问互联网和您的封闭网络,也可以使用满足您的限制条件的其他方法。

19.5.2.1. 其他限制

受限网络中的集群有以下额外限制和限制:

  • ClusterVersion 状态包含一个 Unable to retrieve available updates 错误。
  • 默认情况下,您无法使用 Developer Catalog 的内容,因为您无法访问所需的镜像流标签。

19.5.3. 在 RHOSP 上安装 OpenShift Container Platform 的资源指南

为支持 OpenShift Container Platform 安装,您的 Red Hat OpenStack Platform(RHOSP)配额必须满足以下要求:

表 19.5. RHOSP 上默认 OpenShift Container Platform 集群的建议资源
resourcevalue

浮动 IP 地址

3

端口

15

路由器

1

子网

1

RAM

88 GB

VCPU

22

卷存储

275 GB

实例

7

安全组

3

安全组规则

60

服务器组

2 - 每个机器池中每个额外可用区加 1

集群或许能以少于推荐资源运行,但其性能无法保证。

重要

如果 RHOSP 对象存储(Swift)可用,并由具有 swiftoperator 角色的用户帐户执行,它将用作 OpenShift Container Platform 镜像 registry 的默认后端。在这种情况下,卷存储需要 175 GB。根据镜像 registry 的大小,Swift 空间要求会有所不同。

注意

默认情况下,您的安全组和安全组规则配额可能较低。如果遇到问题,请以管理员 身份运行 openstack quota set --secgroups 3 --secgroup-rules 60 <project> 来提高配额。

OpenShift Container Platform 部署包含 control plane 机器、计算机器和 bootstrap 机器。

19.5.3.1. control plane 机器

默认情况下,OpenShift Container Platform 安装过程会创建三台 control plane 机器。

每台机器都需要:

  • 来自 RHOSP 配额的实例
  • 来自 RHOSP 配额的端口
  • 至少有 16 GB 内存和 4 个 vCPU 的类别
  • RHOSP 配额中至少有 100 GB 存储空间

19.5.3.2. 计算机器

默认情况下,OpenShift Container Platform 安装过程会创建三台计算机器。

每台机器都需要:

  • 来自 RHOSP 配额的实例
  • 来自 RHOSP 配额的端口
  • 至少有 8 GB 内存和 2 个 vCPU 的类别
  • RHOSP 配额中至少有 100 GB 存储空间
提示

计算机器托管您在 OpenShift Container Platform 上运行的应用程序;运行数量应尽可能多。

19.5.3.3. bootstrap 机器

在安装过程中,会临时置备 bootstrap 机器来支持 control plane。生产 control plane 就绪后,bootstrap 机器会被取消置备。

bootstrap 机器需要:

  • 来自 RHOSP 配额的实例
  • 来自 RHOSP 配额的端口
  • 至少有 16 GB 内存和 4 个 vCPU 的类别
  • RHOSP 配额中至少有 100 GB 存储空间

19.5.4. OpenShift Container Platform 互联网访问

在 OpenShift Container Platform 4.16 中,您需要访问互联网来获得用来安装集群的镜像。

您必须具有以下互联网访问权限:

  • 访问 OpenShift Cluster Manager 以下载安装程序并执行订阅管理。如果集群可以访问互联网,并且没有禁用 Telemetry,该服务会自动授权您的集群。
  • 访问 Quay.io,以获取安装集群所需的软件包。
  • 获取执行集群更新所需的软件包。

19.5.5. 在 RHOSP 上启用 Swift

Swift 由具有 swiftoperator 角色的用户帐户操控。在运行安装程序前,将该角色添加到帐户。

重要

如果 Red Hat OpenStack Platform(RHOSP)对象存储服务(通常称为 Swift)可用,OpenShift Container Platform 会使用它作为镜像 registry 存储。如果无法使用,安装程序会依赖于 RHOSP 块存储服务,通常称为 Cinder。

如果 Swift 存在并且您想要使用 Swift,您必须启用对其的访问。如果不存在,或者您不想使用它,请跳过这个部分。

重要

RHOSP 17 将 Ceph RGW 的 rgw_max_attr_size 参数设置为 256 个字符。此设置会导致将容器镜像上传到 OpenShift Container Platform registry 的问题。您必须将 rgw_max_attr_size 的值设置为至少 1024 个字符。

在安装前,检查您的 RHOSP 部署是否会受到此问题的影响。如果是,请重新配置 Ceph RGW。

先决条件

  • 在目标环境中有一个 RHOSP 管理员帐户。
  • 已安装 Swift 服务。
  • Ceph RGW 上,启用了 account in url 选项。

流程

在 RHOSP 上启用 Swift:

  1. 在 RHOSP CLI 中以管理员身份,将 swiftoperator 角色添加到将要访问 Swift 的帐户中:

    $ openstack role add --user <user> --project <project> swiftoperator

您的 RHOSP 部署现在可以将 Swift 用于镜像 registry。

19.5.6. 为安装程序定义参数

OpenShift Container Platform 安装程序依赖于一个名为 clouds.yaml 的文件。该文件描述了 Red Hat OpenStack Platform(RHOSP)配置参数,包括项目名称、登录信息和授权服务 URL。

流程

  1. 创建 clouds.yaml 文件:

    • 如果您的 RHOSP 发行版包含 Horizon Web UI,请在该 UI 中生成 clouds.yaml 文件。

      重要

      记得在 auth 字段中添加密码。您还可以将 secret 保存在 clouds.yaml 以外的 一个独立的文件中

    • 如果您的 RHOSP 发行版不包含 Horizon Web UI,或者您不想使用 Horizon,请自行创建该文件。如需有关 clouds.yaml 的详细信息,请参阅 RHOSP 文档中的 配置文件

      clouds:
        shiftstack:
          auth:
            auth_url: http://10.10.14.42:5000/v3
            project_name: shiftstack
            username: <username>
            password: <password>
            user_domain_name: Default
            project_domain_name: Default
        dev-env:
          region_name: RegionOne
          auth:
            username: <username>
            password: <password>
            project_name: 'devonly'
            auth_url: 'https://10.10.14.22:5001/v2.0'
  2. 如果您的 RHOSP 安装使用自签名证书颁发机构(CA)证书进行端点身份验证:

    1. 将证书颁发机构文件复制到您的机器中。
    2. cacerts 键添加到 clouds.yaml 文件。该值必须是到 CA 证书的绝对、不可 root 访问的路径:

      clouds:
        shiftstack:
          ...
          cacert: "/etc/pki/ca-trust/source/anchors/ca.crt.pem"
      提示

      使用自定义 CA 证书运行安装程序后,您可以通过编辑 cloud-provider-config keymap 中的 ca-cert.pem 键的值来更新证书。在命令行中运行:

      $ oc edit configmap -n openshift-config cloud-provider-config
  3. clouds.yaml 文件放在以下位置之一:

    1. OS_CLIENT_CONFIG_FILE 环境变量的值
    2. 当前目录
    3. 特定于 Unix 的用户配置目录,如 ~/.config/openstack/clouds.yaml
    4. 特定于 Unix 的站点配置目录,如 /etc/openstack/clouds.yaml

      安装程序会按顺序搜索 clouds.yaml

19.5.7. 设置 OpenStack Cloud Controller Manager 选项

另外,您可以编辑集群的 OpenStack Cloud Controller Manager (CCM) 配置。此配置控制 OpenShift Container Platform 与 Red Hat OpenStack Platform (RHOSP) 的交互方式。

有关配置参数的完整列表,请参阅"安装 OpenStack"文档中的"OpenStack Cloud Controller Manager 参考指南"页面。

流程

  1. 如果您还没有为集群生成清单文件,请运行以下命令生成这些文件:

    $ openshift-install --dir <destination_directory> create manifests
  2. 在文本编辑器中,打开 cloud-provider 配置清单文件。例如:

    $ vi openshift/manifests/cloud-provider-config.yaml
  3. 根据 CCM 参考指南修改选项。

    针对负载均衡配置 Octavia 的情况比较常见。例如:

    #...
    [LoadBalancer]
    lb-provider = "amphora" 1
    floating-network-id="d3deb660-4190-40a3-91f1-37326fe6ec4a" 2
    create-monitor = True 3
    monitor-delay = 10s 4
    monitor-timeout = 10s 5
    monitor-max-retries = 1 6
    #...
    1
    此属性设置负载均衡器使用的 Octavia 供应商。它接受 "ovn""amphora" 作为值。如果您选择使用 OVN,还必须将 lb-method 设置为 SOURCE_IP_PORT
    2
    如果要将多个外部网络用于集群,则需要此属性。云提供商在网络上创建此处指定的浮动 IP 地址。
    3
    此属性控制云供应商是否为 Octavia 负载均衡器创建运行状况监控器。将值设为 True 来创建运行状况监视器。从 RHOSP 16.2 开始,这个功能仅适用于 Amphora 供应商。
    4
    此属性设定监控端点的频率。该值必须采用 time.ParseDuration() 格式。如果 create-monitor 属性的值为 True,则需要此属性。
    5
    此属性设定监控请求在超时前打开的时间。该值必须采用 time.ParseDuration() 格式。如果 create-monitor 属性的值为 True,则需要此属性。
    6
    此属性定义在负载均衡器被标记为在线前需要成功完成监控请求。该值必须是整数。如果 create-monitor 属性的值为 True,则需要此属性。
    重要

    在保存更改之前,请验证该文件的结构是否正确。如果属性没有放入相应的部分,集群可能会失败。

    重要

    如果使用将 .spec.externalTrafficPolicy 属性的值设置为 Local 的服务,则必须将 create-monitor 属性的值设置为 True。RHOSP 16.2 中的 OVN Octavia 供应商不支持健康监控器。因此,当 lb-provider 值设为 "ovn" 时,将 ETP 参数值设置为 Local 的服务可能无法响应。

  4. 保存对文件的更改并开始安装。

    提示

    您可以在运行安装程序后更新云供应商配置。在命令行中运行:

    $ oc edit configmap -n openshift-config cloud-provider-config

    保存更改后,您的集群将需要一些时间重新配置其自身。如果您的任一节点都没有 SchedulingDisabled 状态,则此过程已完成。

19.5.8. 为受限网络安装创建 RHCOS 镜像

下载 Red Hat Enterprise Linux CoreOS(RHCOS)镜像,以在受限网络 Red Hat OpenStack Platform(RHOSP)环境中安装 OpenShift Container Platform。

先决条件

  • 获取 OpenShift Container Platform 安装程序。对于受限网络安装,该程序位于您的镜像 registry 主机上。

流程

  1. 登录到红帽客户门户网站的产品 下载页面
  2. Version 下,为 RHEL 8 选择 OpenShift Container Platform 4.16 的最新发行版本。

    重要

    RHCOS 镜像可能不会随着 OpenShift Container Platform 的每个发行版本而改变。您必须下载最高版本的镜像,其版本号应小于或等于您安装的 OpenShift Container Platform 版本。如果可用,请使用与 OpenShift Container Platform 版本匹配的镜像版本。

  3. 下载 Red Hat Enterprise Linux CoreOS(RHCOS)- OpenStack Image(QCOW) 镜像。
  4. 解压缩镜像。

    注意

    您必须解压镜像,然后集群才能使用它。下载的文件的名称可能不包含压缩扩展名,如 .gz 或. tgz。要查找是否或者如何压缩文件,请在命令行中输入:

    $ file <name_of_downloaded_file>
  5. 将您解压缩的镜像上传到堡垒服务器可访问的位置,如 Glance。例如:

    $ openstack image create --file rhcos-44.81.202003110027-0-openstack.x86_64.qcow2 --disk-format qcow2 rhcos-${RHCOS_VERSION}
    重要

    根据您的 RHOSP 环境,您可能能够以. raw.qcow2 格式 上传镜像。如果使用 Ceph,则必须使用 .raw 格式。

    警告

    如果安装程序发现多个同名的镜像,它会随机选择其中之一。为避免这种行为,请在 RHOSP 中为资源创建唯一名称。

该镜像现在可用于受限安装。记录 OpenShift Container Platform 部署中使用的镜像名称或位置。

19.5.9. 创建安装配置文件

您可以自定义在 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>,请指定要存储安装程序创建的文件的目录名称。

      在指定目录时:

      • 验证该目录是否具有执行权限。在安装目录中运行 Terraform 二进制文件需要这个权限。
      • 使用空目录。有些安装资产,如 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 个或更少字符。
  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. 添加镜像内容资源,类似于以下 YAML 摘录:

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

      对于这些值,请使用您在创建镜像 registry 时记录的 imageContentSources

    4. 可选:将发布策略设置为 Internal

      publish: Internal

      通过设置这个选项,您可以创建一个内部 Ingress Controller 和一个私有负载均衡器。

  4. 对您需要的 install-config.yaml 文件进行任何其他修改。

    有关参数的更多信息,请参阅"安装配置参数"。

  5. 备份 install-config.yaml 文件,以便您可以使用它安装多个集群。

    重要

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

19.5.9.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-----
    additionalTrustBundlePolicy: <policy_to_add_additionalTrustBundle> 5
    1
    用于创建集群外 HTTP 连接的代理 URL。URL 方案必须是 http
    2
    用于创建集群外 HTTPS 连接的代理 URL。
    3
    要从代理中排除的目标域名、IP 地址或其他网络 CIDR 的逗号分隔列表。在域前面加上 . 以仅匹配子域。例如,.y.com 匹配 x.y.com,但不匹配 y.com。使用 * 绕过所有目的地的代理。
    4
    如果提供,安装程序会在 openshift-config 命名空间中生成名为 user-ca-bundle 的配置映射,其包含代理 HTTPS 连接所需的一个或多个额外 CA 证书。然后,Cluster Network Operator 会创建 trusted-ca-bundle 配置映射,将这些内容与 Red Hat Enterprise Linux CoreOS(RHCOS)信任捆绑包合并, Proxy 对象的 trustedCA 字段中也会引用此配置映射。additionalTrustBundle 字段是必需的,除非代理的身份证书由来自 RHCOS 信任捆绑包的颁发机构签名。
    5
    可选:决定 Proxy 对象的配置以引用 trustedCA 字段中 user-ca-bundle 配置映射的策略。允许的值是 ProxyonlyAlways。仅在配置了 http/https 代理时,使用 Proxyonly 引用 user-ca-bundle 配置映射。使用 Always 始终引用 user-ca-bundle 配置映射。默认值为 Proxyonly
    注意

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

    注意

    如果安装程序超时,重启并使用安装程序的 wait-for 命令完成部署。例如:

    $ ./openshift-install wait-for install-complete --log-level debug
  2. 保存该文件并在安装 OpenShift Container Platform 时引用。

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

注意

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

19.5.9.2. 受限 OpenStack 安装的自定义 install-config.yaml 文件示例

这个示例 install-config.yaml 演示了所有可能的 Red Hat OpenStack Platform(RHOSP)自定义选项。

重要

此示例文件仅供参考。您必须使用安装程序来获取 install-config.yaml 文件。

apiVersion: v1
baseDomain: example.com
controlPlane:
  name: master
  platform: {}
  replicas: 3
compute:
- name: worker
  platform:
    openstack:
      type: ml.large
  replicas: 3
metadata:
  name: example
networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  machineNetwork:
  - cidr: 10.0.0.0/16
  serviceNetwork:
  - 172.30.0.0/16
  networkType: OVNKubernetes
platform:
  openstack:
    region: region1
    cloud: mycloud
    externalNetwork: external
    computeFlavor: m1.xlarge
    apiFloatingIP: 128.0.0.1
fips: false
pullSecret: '{"auths": ...}'
sshKey: ssh-ed25519 AAAA...
additionalTrustBundle: |

  -----BEGIN CERTIFICATE-----

  ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

  -----END CERTIFICATE-----

imageContentSources:
- mirrors:
  - <mirror_registry>/<repo_name>/release
  source: quay.io/openshift-release-dev/ocp-release
- mirrors:
  - <mirror_registry>/<repo_name>/release
  source: quay.io/openshift-release-dev/ocp-v4.0-art-dev

19.5.10. 为集群节点 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 公钥。

重要

不要在生产环境中跳过这个过程,在生产环境中需要灾难恢复和调试。

注意

您必须使用本地密钥,而不是使用特定平台方法配置 的密钥,如 AWS 密钥对

流程

  1. 如果您在本地计算机上没有可用于在集群节点上进行身份验证的现有 SSH 密钥对,请创建一个。例如,在使用 Linux 操作系统的计算机上运行以下命令:

    $ ssh-keygen -t ed25519 -N '' -f <path>/<file_name> 1
    1
    指定新 SSH 密钥的路径和文件名,如 ~/.ssh/id_ed25519。如果您已有密钥对,请确保您的公钥位于 ~/.ssh 目录中。
    注意

    如果您计划在 x86_64ppc64les390x 架构上安装使用 RHEL 加密库(这些加密库已提交给 NIST 用于 FIPS 140-2/140-3 验证)的 OpenShift Container Platform 集群,则不要创建使用 ed25519 算法的密钥。相反,创建一个使用 rsaecdsa 算法的密钥。

  2. 查看公共 SSH 密钥:

    $ cat <path>/<file_name>.pub

    例如,运行以下命令来查看 ~/.ssh/id_ed25519.pub 公钥:

    $ cat ~/.ssh/id_ed25519.pub
  3. 将 SSH 私钥身份添加到本地用户的 SSH 代理(如果尚未添加)。在集群节点上,或者要使用 ./openshift-install gather 命令,需要对该密钥进行 SSH 代理管理,才能在集群节点上进行免密码 SSH 身份验证。

    注意

    在某些发行版中,自动管理默认 SSH 私钥身份,如 ~/.ssh/id_rsa~/.ssh/id_dsa

    1. 如果 ssh-agent 进程尚未为您的本地用户运行,请将其作为后台任务启动:

      $ eval "$(ssh-agent -s)"

      输出示例

      Agent pid 31874

      注意

      如果集群处于 FIPS 模式,则只使用 FIPS 兼容算法来生成 SSH 密钥。密钥必须是 RSA 或 ECDSA。

  4. 将 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 公钥。

19.5.11. 启用对环境的访问

在部署时,所有 OpenShift Container Platform 机器都是在 Red Hat OpenStack Platform(RHOSP)租户网络中创建的。因此,大多数 RHOSP 部署中都无法直接访问它们。

您可以在安装过程中使用浮动 IP 地址(FIP)来配置 OpenShift Container Platform API 和应用程序访问。您还可以在没有配置 FIP 的情况下完成安装,但安装程序不会配置一种从外部访问 API 或应用程序的方法。

19.5.11.1. 启用通过浮动 IP 地址进行访问

创建浮动 IP(FIP)地址,以便从外部访问 OpenShift Container Platform API 和集群应用程序。

流程

  1. 使用 Red Hat OpenStack Platform(RHOSP)CLI 创建 API FIP:

    $ openstack floating ip create --description "API <cluster_name>.<base_domain>" <external_network>
  2. 使用 Red Hat OpenStack Platform(RHOSP)CLI,创建应用程序或 Ingress,FIP:

    $ openstack floating ip create --description "Ingress <cluster_name>.<base_domain>" <external_network>
  3. 在 API 和 Ingress FIP 的 DNS 服务器中添加符合这些模式的记录:

    api.<cluster_name>.<base_domain>.  IN  A  <API_FIP>
    *.apps.<cluster_name>.<base_domain>. IN  A <apps_FIP>
    注意

    如果您不控制 DNS 服务器,可以通过将集群域名(如以下内容)添加到 /etc/hosts 文件中来访问集群:

    • <api_floating_ip> api.<cluster_name>.<base_domain>
    • <application_floating_ip> grafana-openshift-monitoring.apps.<cluster_name>.<base_domain>
    • <application_floating_ip> prometheus-k8s-openshift-monitoring.apps.<cluster_name>.<base_domain>
    • <application_floating_ip> oauth-openshift.apps.<cluster_name>.<base_domain>
    • <application_floating_ip> console-openshift-console.apps.<cluster_name>.<base_domain>
    • application_floating_ip integrated-oauth-server-openshift-authentication.apps.<cluster_name>.<base_domain>

    /etc/hosts 文件中的集群域名授予对本地集群的 Web 控制台和监控界面的访问权限。您还可以使用 kubectloc。您可以使用指向 <application_floating_ip> 的额外条目来访问用户应用程序。此操作使 API 和应用程序可供您访问,不适合于生产部署,但允许对开发和测试进行安装。

  4. 将 FIP 添加到 install-config.yaml 文件中,作为以下参数的值:

    • platform.openstack.ingressFloatingIP
    • platform.openstack.apiFloatingIP

如果使用这些值,还必须在 install-config.yaml 文件中输入一个外部网络作为 platform.openstack.externalNetwork 参数的值。

提示

您可以通过分配浮动 IP 地址并更新防火墙配置,使 OpenShift Container Platform 资源在集群外可用。

19.5.11.2. 完成没有浮动 IP 地址的安装

您可以在 Red Hat OpenStack Platform(RHOSP)上安装 OpenShift Container Platform,而无需提供浮动 IP 地址。

install-config.yaml 文件中,不要定义以下参数:

  • platform.openstack.ingressFloatingIP
  • platform.openstack.apiFloatingIP

如果无法提供外部网络,也可以将 platform.openstack.externalNetwork 留 空。如果没有为 platform.openstack.externalNetwork 提供值,则不会为您创建路由器,如果没有额外的操作,安装程序将无法从 Glance 检索镜像。您必须自行配置外部连接。

如果您在因为缺少浮动 IP 地址或名称解析而无法访问集群 API 的系统中运行安装程序,安装会失败。在这些情况下,您可以使用代理网络或者从与机器位于相同网络的系统中运行安装程序。

注意

您可以通过为 API 和 Ingress 端口创建 DNS 记录来启用名称解析。例如:

api.<cluster_name>.<base_domain>.  IN  A  <api_port_IP>
*.apps.<cluster_name>.<base_domain>. IN  A <ingress_port_IP>

如果您不控制 DNS 服务器,您可以将记录添加到 /etc/hosts 文件中。此操作使 API 可供您自己访问,不适合于生产部署,而是允许安装以进行开发和测试。

19.5.12. 部署集群

您可以在兼容云平台上安装 OpenShift Container Platform。

重要

在初始安装过程中,您只能运行安装程序的 create cluster 命令一次。

先决条件

  • 您有 OpenShift Container Platform 安装程序和集群的 pull secret。
  • 已确认主机上的云供应商帐户具有部署集群的正确权限。权限不正确的帐户会导致安装过程失败,并显示包括缺失权限的错误消息。

流程

  • 进入包含安装程序的目录并初始化集群部署:

    $ ./openshift-install create cluster --dir <installation_directory> \ 1
        --log-level=info 2
    1
    对于 <installation_directory>,请指定自定义 ./install-config.yaml 文件的位置。
    2
    要查看不同的安装详情,请指定 warndebugerror,而不是 info

验证

当集群部署成功完成时:

  • 终端会显示用于访问集群的说明,包括指向 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 配置文件,您可以避免在安装过程中因为执行了证书更新而导致安装失败的问题。

19.5.13. 验证集群状态

您可以在安装过程中或安装后验证 OpenShift Container Platform 集群的状态。

流程

  1. 在集群环境中,导出管理员的 kubeconfig 文件:

    $ export KUBECONFIG=<installation_directory>/auth/kubeconfig 1
    1
    对于 <installation_directory>,请指定安装文件保存到的目录的路径。

    kubeconfig 文件包含有关集群的信息,供 CLI 用于将客户端连接到正确的集群和 API 服务器。

  2. 查看部署后创建的 control plane 和计算机器:

    $ oc get nodes
  3. 查看集群的版本:

    $ oc get clusterversion
  4. 查看 Operator 的状态:

    $ oc get clusteroperator
  5. 查看集群中的所有正在运行的 pod:

    $ oc get pods -A

19.5.14. 使用 CLI 登录集群

您可以通过导出集群 kubeconfig 文件,以默认系统用户身份登录集群。kubeconfig 文件包含有关集群的信息,供 CLI 用于将客户端连接到正确的集群和 API 服务器。该文件特定于集群,在 OpenShift Container Platform 安装过程中创建。

先决条件

  • 已部署 OpenShift Container Platform 集群。
  • 已安装 oc CLI。

流程

  1. 导出 kubeadmin 凭证:

    $ export KUBECONFIG=<installation_directory>/auth/kubeconfig 1
    1
    对于 <installation_directory>,请指定安装文件保存到的目录的路径。
  2. 验证您可以使用导出的配置成功运行 oc 命令:

    $ oc whoami

    输出示例

    system:admin

19.5.15. 禁用默认的 OperatorHub 目录源

在 OpenShift Container Platform 安装过程中,默认为 OperatorHub 配置由红帽和社区项目提供的源内容的 operator 目录。在受限网络环境中,必须以集群管理员身份禁用默认目录。

流程

  • 通过在 OperatorHub 对象中添加 disableAllDefaultSources: true 来 禁用默认目录的源:

    $ oc patch OperatorHub cluster --type json \
        -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'
提示

或者,您可以使用 Web 控制台管理目录源。在 Administration Cluster Settings Configuration OperatorHub 页面中,点 Sources 选项卡,您可以在其中创建、更新、删除、禁用和启用单独的源。

19.5.16. OpenShift Container Platform 的 Telemetry 访问

在 OpenShift Container Platform 4.16 中,默认运行的 Telemetry 服务提供有关集群健康状况和成功更新的指标,需要访问互联网。如果您的集群连接到互联网,Telemetry 会自动运行,而且集群会注册到 OpenShift Cluster Manager

确认 OpenShift Cluster Manager 清单正确后,可以由 Telemetry 自动维护,也可以使用 OpenShift Cluster Manager 手动维护,使用订阅监控来跟踪帐户或多集群级别的 OpenShift Container Platform 订阅。

其他资源

19.5.17. 后续步骤

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.