×

先决条件

关于受限网络中的安装

在 OpenShift Container Platform 4.17 中,您可以执行无需活动连接到互联网即可获取软件组件的安装。受限网络安装可以使用安装程序配置的基础设施或用户配置的基础设施来完成,具体取决于您要安装集群的云平台。

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

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

其他限制

受限网络中的集群具有以下其他限制。

  • ClusterVersion状态包含无法检索可用更新错误。

  • 默认情况下,您无法使用开发者目录的内容,因为您无法访问所需的镜像流标签。

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

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

表 1. RHOSP 上默认 OpenShift Container Platform 集群的推荐资源
资源

浮动 IP 地址

3

端口

15

路由器

1

子网

1

RAM

88 GB

vCPU

22

卷存储

275 GB

实例

7

安全组

3

安全组规则

60

服务器组

2 个 - 每个机器池中每个附加可用区再加 1 个

集群可能在低于推荐资源的情况下运行,但其性能无法得到保证。

如果 RHOSP 对象存储 (Swift) 可用且由具有swiftoperator角色的用户帐户操作,则它将用作 OpenShift Container Platform 镜像注册表的默认后端。在这种情况下,卷存储需求为 175 GB。Swift 空间需求因镜像注册表的大小而异。

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

OpenShift Container Platform 部署包含控制平面机器、计算机器和引导机器。

控制平面机器

默认情况下,OpenShift Container Platform 安装过程会创建三个控制平面机器。

每台机器都需要

  • 来自 RHOSP 配额的实例

  • 来自 RHOSP 配额的端口

  • 至少具有 16 GB 内存和 4 个 vCPU 的规格

  • 来自 RHOSP 配额的至少 100 GB 存储空间

计算机器

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

每台机器都需要

  • 来自 RHOSP 配额的实例

  • 来自 RHOSP 配额的端口

  • 至少具有 8 GB 内存和 2 个 vCPU 的规格

  • 来自 RHOSP 配额的至少 100 GB 存储空间

计算机器承载您在 OpenShift Container Platform 上运行的应用程序;目标是尽可能多地运行。

引导机器

在安装过程中,会临时配置引导机器以启动控制平面。生产控制平面准备就绪后,引导机器将被取消配置。

引导机器需要

  • 来自 RHOSP 配额的实例

  • 来自 RHOSP 配额的端口

  • 至少具有 16 GB 内存和 4 个 vCPU 的规格

  • 来自 RHOSP 配额的至少 100 GB 存储空间

OpenShift Container Platform 的互联网访问

在 OpenShift Container Platform 4.17 中,您需要访问互联网才能获取安装集群所需的镜像。

您必须具有互联网访问权限才能

  • 访问OpenShift 集群管理器以下载安装程序并执行订阅管理。如果集群具有互联网访问权限并且您未禁用遥测,则该服务会自动授权您的集群。

  • 访问Quay.io以获取安装集群所需的软件包。

  • 获取执行集群更新所需的软件包。

在 RHOSP 上启用 Swift

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

如果Red Hat OpenStack Platform (RHOSP) 对象存储服务(通常称为 Swift)可用,OpenShift Container Platform 将其用作镜像注册表存储。如果不可用,安装程序将依赖于 RHOSP 块存储服务(通常称为 Cinder)。

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

RHOSP 17 将 Ceph RGW 的rgw_max_attr_size参数设置为 256 个字符。此设置会导致将容器镜像上传到 OpenShift Container Platform 注册表的问题。您必须将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 作为镜像注册表。

定义安装程序的参数

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

步骤
  1. 创建clouds.yaml文件

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

      请记住向auth字段添加密码。您也可以将密钥保存在与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密钥映射中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

设置 OpenStack 云控制器管理器选项

您可以选择编辑集群的 OpenStack 云控制器管理器 (CCM) 配置。此配置控制 OpenShift Container Platform 如何与 Red Hat OpenStack Platform (RHOSP) 交互。

有关配置参数的完整列表,请参阅“在 OpenStack 上安装”文档中的“OpenStack 云控制器管理器参考指南”页面。

步骤
  1. 如果您尚未为集群生成清单文件,请运行以下命令生成它们:

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

    $ 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状态,则表示该过程已完成。

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

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

先决条件
  • 获取 OpenShift Container Platform 安装程序。对于受限网络安装,该程序位于镜像注册表主机上。

步骤
  1. 登录 Red Hat 客户门户网站的产品下载页面

  2. 在“版本”下,选择适用于 RHEL 8 的最新 OpenShift Container Platform 4.17 版本。

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

  3. 下载**Red Hat Enterprise Linux CoreOS (RHCOS) - OpenStack 镜像 (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 部署中使用。

创建安装配置文

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

先决条件
  • 您拥有 OpenShift Container Platform 安装程序和集群的拉取密钥。对于受限网络安装,这些文件位于镜像主机上。

  • 您拥有在镜像注册表创建期间生成的imageContentSources值。

  • 您已获得镜像注册表证书的内容。

  • 您已检索 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像并将其上传到可访问的位置。

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

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

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

      指定目录时:

      • 验证该目录是否具有execute权限。此权限是在安装目录下运行 Terraform 二进制文件所必需的。

      • 使用空目录。某些安装资产(例如引导 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. 指定一个 RHOSP 实例规格,控制平面节点至少具有 16 GB RAM,计算节点具有 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值以包含您的注册表的身份验证信息

      pullSecret: '{"auths":{"<mirror_host_name>:5000": {"auth": "<credentials>","email": "[email protected]"}}}'

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

    2. 添加additionalTrustBundle参数和值。

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

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

    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

      对于这些值,请使用您在镜像注册表创建期间记录的imageContentSources

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

      publish: Internal

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

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

    有关参数的更多信息,请参见“安装配置参数”。

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

    install-config.yaml文件在安装过程中被使用。如果您想重用该文件,则必须立即备份。

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

生产环境可能会拒绝直接访问互联网,而是提供 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 如果提供,安装程序将生成一个名为user-ca-bundle的 config map,位于openshift-config命名空间中,其中包含代理 HTTPS 连接所需的额外 CA 证书。然后,集群网络操作员将创建一个trusted-ca-bundle config map,并将这些内容与 Red Hat Enterprise Linux CoreOS (RHCOS) 信任捆绑包合并,并且此 config map 在Proxy对象的trustedCA字段中被引用。除非代理的身份证书由 RHCOS 信任捆绑包中的机构签名,否则需要additionalTrustBundle字段。
    5 可选:确定Proxy对象的配置以在trustedCA字段中引用user-ca-bundle config map 的策略。允许的值为ProxyonlyAlways。使用Proxyonly仅在配置http/https代理时引用user-ca-bundle config map。使用Always始终引用user-ca-bundle config map。默认值为Proxyonly

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

    如果安装程序超时,请重新启动,然后使用安装程序的wait-for命令完成部署。例如

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

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

仅支持名为clusterProxy对象,并且无法创建其他代理。

受限 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

生成用于集群节点 SSH 访问的密钥对

在 OpenShift Container Platform 安装过程中,您可以向安装程序提供 SSH 公钥。该密钥通过 Ignition 配置文件传递给 Red Hat Enterprise Linux CoreOS (RHCOS) 节点,并用于验证对节点的 SSH 访问。该密钥将添加到每个节点上core用户的~/.ssh/authorized_keys列表中,从而启用无密码身份验证。

将密钥传递给节点后,您可以使用密钥对以core用户身份通过 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目录中。

    如果您计划安装一个使用已提交给 NIST 进行 FIPS 140-2/140-3 验证的 RHEL 加密库的 OpenShift Container Platform 集群(仅限于x86_64ppc64les390x架构),请不要创建使用ed25519算法的密钥。而是创建使用rsaecdsa算法的密钥。

  2. 查看公钥 SSH 密钥

    $ cat <path>/<file_name>.pub

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

    $ cat ~/.ssh/id_ed25519.pub
  3. 如果尚未添加,请将 SSH 私钥身份添加到本地用户的 SSH 代理。密钥的 SSH 代理管理对于对集群节点进行无密码 SSH 身份验证是必需的,或者如果您想使用./openshift-install gather命令。

    在某些发行版中,默认的 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
    示例输出
    Identity added: /home/<you>/<path>/<file_name> (<computer_name>)
后续步骤
  • 安装 OpenShift Container Platform 时,请将 SSH 公钥提供给安装程序。

启用对环境的访问

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

您可以在安装过程中使用浮动 IP 地址 (FIP) 配置 OpenShift Container Platform API 和应用程序访问。您也可以完成安装而无需配置 FIP,但安装程序不会配置外部访问 API 或应用程序的方法。

使用浮动 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. 将遵循以下模式的记录添加到您的 DNS 服务器,用于 API 和 Ingress FIP:

    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 资源在集群外部可用。

在没有浮动 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 检索镜像。您必须自行配置外部连接。

如果您从无法访问集群 API 的系统(由于缺少浮动 IP 地址或名称解析)运行安装程序,则安装将失败。为了防止在这些情况下安装失败,您可以使用代理网络或从与您的机器位于同一网络的系统运行安装程序。

您可以通过为 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,这对于生产部署不适用,但允许进行开发和测试安装。

部署集群

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

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

先决条件
  • 您拥有 OpenShift Container Platform 安装程序和集群的拉取密钥。

  • 您已验证主机上的云提供商帐户是否具有部署集群的正确权限。权限不正确的帐户会导致安装过程失败,并显示一条错误消息,其中显示缺少的权限。

步骤
  • 更改到包含安装程序的目录并初始化集群部署:

    $ ./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 证书。有关更多信息,请参阅从过期的控制平面证书中恢复的相关文档。

  • 建议您在生成 Ignition 配置文件后 12 小时内使用它们,因为在集群安装后 16 到 22 小时之间,24 小时的证书会轮换。在 12 小时内使用 Ignition 配置文件,可以避免在安装期间证书更新导致安装失败。

验证集群状态

您可以在安装期间或安装后验证您的 OpenShift Container Platform 集群的状态。

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

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

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

  2. 查看部署后创建的控制平面和计算机器

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

    $ oc get clusterversion
  4. 查看您的 Operators 状态

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

    $ oc get pods -A

使用 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
其他资源
  • 有关访问和了解 OpenShift Container Platform Web 控制台的更多详细信息,请参阅访问 Web 控制台

禁用默认 OperatorHub 目录源

在 OpenShift Container Platform 安装期间,默认情况下会为 OperatorHub 配置从 Red Hat 和社区项目提供的內容获取源的 Operator 目录。在受限网络环境中,您必须以集群管理员身份禁用默认目录。

步骤
  • 通过将 disableAllDefaultSources: true 添加到 OperatorHub 对象来禁用默认目录的源

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

或者,您可以使用 Web 控制台来管理目录源。在**管理** → **集群设置** → **配置** → **OperatorHub** 页面中,单击**源**选项卡,您可以在其中创建、更新、删除、禁用和启用单个源。

OpenShift Container Platform 的遥测访问

在 OpenShift Container Platform 4.17 中,默认运行的遥测服务用于提供有关集群健康状况和更新成功情况的指标,需要访问互联网。如果您的集群连接到互联网,则遥测会自动运行,并且您的集群会注册到OpenShift 集群管理器

确认您的OpenShift 集群管理器清单正确后(由遥测自动维护或使用 OpenShift 集群管理器手动维护),使用订阅监控来跟踪您在帐户或多集群级别上的 OpenShift Container Platform 订阅。

其他资源

后续步骤