Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

使用用户托管网络进行安装

使用此过程启动具有用户托管网络的群集。用户托管网络是指您为安装显式提供外部负载平衡器的部署。

图 1 显示了用户托管的网络设置(包括外部负载平衡器)中,由 3 个控制平面节点和 2 个工作节点运行的群集。群集中的节点之间以及节点与外部站点之间的所有通信均通过单个 172.16.0.0/24 交换矩阵虚拟网络进行。

图 1:采用用户托管网络的裸机服务器(或虚拟机)上的 Contrail OpenShift 群集 Contrail OpenShift Cluster on Bare Metal Servers (or VMs) with User-Managed Networking

另一台机器充当辅助安装客户端。您可以在辅助安装器客户端中使用 curl 命令对辅助安装服务发出 API 调用来创建群集。在此过程中的示例中,我们还使用辅助安装客户端计算机为子网托管 DNS/DHCP 服务器。

将显示本地管理员连接到可通过网关访问的单独网络。这是许多安装的典型情况,本地管理员通过企业 LAN 管理交换矩阵和群集。在随后的过程中,我们将本地管理员站点称为您的本地计算机。

注意:

将所有节点连接在一起的是数据中心交换矩阵,这在示例中显示为单个子网。在实际安装中,数据中心交换矩阵是一个由脊叶式交换机所构建的网络,可为群集提供物理连接。

在 Apstra 托管的数据中心中,您需要通过跨底层交换矩阵交换机创建的叠加虚拟网络指定此连接。

此过程使用红帽托管的辅助安装服务,并涵盖在启动主机之前注册群集的更常见的早期绑定用例。

  1. 登录辅助安装器客户端计算机。辅助安装客户端计算机是向辅助安装服务发出辅助安装 API 调用的位置。
  2. 通过设置在后续步骤中使用的环境变量来准备部署。
    1. 创建一个 SSH 密钥,用于访问群集中的节点。将密钥保存到环境变量。
      在此示例中,我们将 SSH 密钥存储在其默认位置 ~/.ssh/id_rsa.pub
    2. 将红帽帐户中的图像提取密钥下载到本地计算机。您的安装程序可以利用 pull secret 访问为 OpenShift 组件提供容器映像的服务和注册表。

      如果您使用红帽托管的辅助安装程序,则可以从 https://console.redhat.com/openshift/downloads 页面下载密钥文件(拉密钥)。将提取密钥文件复制到辅助安装客户端计算机。在此示例中,我们将提取密钥存储在名为 pull-secret.txt 的文件中。

      去除任何空格,将内容转换为 JSON 字符串格式,然后存储为环境变量,如下所示:

    3. 从 Red Hat 帐户复制离线访问令牌。OpenShift 群集管理器 API 令牌允许您(在辅助安装客户端机器上)与红帽托管的辅助安装 API 服务进行交互。
      该令牌是一个字符串,您可以将其复制并粘贴到本地环境变量中。如果您使用 Red Hat 托管辅助安装程序,则可以从 https://console.redhat.com/openshift/downloads 复制 API 令牌。
    4. 从OFFLINE_ACCESS_TOKEN生成(刷新)令牌。每当发出 API 命令时,您都将使用此生成的令牌。
      注意:

      此令牌会定期到期。此令牌到期后,每当发出 API 命令时,您都会收到 HTTP 4xx 响应。在令牌到期时刷新,或者,在令牌到期之前定期刷新。令牌未过期时升级没有坏处。

    5. 设置剩余环境变量。
      表 1 列出了在此过程中需要设置的所有环境变量,包括之前步骤中描述的环境变量。
      表 1:环境变量
      变量 说明 示例
      CLUSTER_SSHKEY 您生成的(公共)ssh 密钥。此密钥将安装在所有群集节点上。
      PULL_SECRET 下载、去除并转换为 JSON 字符串格式的映像提取密钥。
      OFFLINE_ACCESS_TOKEN 复制的 OpenShift 群集管理器 API 令牌。
      令 牌 从OFFLINE_ACCESS_TOKEN生成(刷新)的令牌。
      CLUSTER_NAME 要调用群集的名称。这是将在 Red Hat 混合云控制台 UI 中出现的名称。
      注意:

      此名称必须为小写。

      我的群集
      CLUSTER_DOMAIN 要分配给群集的基本域。群集对象将被分配在此域中的名称。 contrail.lan
      CLUSTER_NET 叠加群集网络。Pod 将在此网络上分配 IP 地址。 10.128.0.0/14
      CLUSTER_SVC_NET 叠加服务网络。在此网络上为服务分配 IP 地址。 172.31.0.0/16
      CLUSTER_HOST_PFX 用于从CLUSTER_NET分配 IP 地址的子网前缀长度。这将定义用于 Pod IP 地址分配的 CLUSTER_NET IP 地址子集。 23
      AI_URL 辅助安装服务的 URL。此示例使用 Red Hat 托管的辅助安装程序。 https://api.openshift.com
  3. 使用辅助安装服务注册群集。通过注册,您可以向辅助安装人员服务告知要创建的群集的属性。作为响应,辅助安装服务会创建一个群集资源,并返回一个可唯一标识该群集资源的群集标识符。
    1. 创建描述您要创建的群集的文件。在本例中,我们将文件命名为 deployment.json
    2. 注册群集并将CLUSTER_ID保存到环境变量中。参考刚刚创建的 deployment.json 文件。
    3. 更新群集属性以指定您希望群集使用 Contrail 作为网络技术。
    4. 查看更改。
    注册群集后,您可以将浏览器指向 Red Hat 混合云控制台 ( https://console.redhat.com/openshift),查看安装进度。您可以按群集名称或群集 ID 搜索群集。
  4. 生成发现启动 ISO。您将使用此 ISO 启动群集中的节点。
    根据您将设置的基础架构环境,ISO 会根据您的基础架构进行定制。
    1. 创建描述基础架构环境的文件。在本例中,我们将它命名为 infra-envs.json
      借助早期绑定,基础架构环境会包含群集详细信息。
    2. 注册 InfraEnv。作为响应,辅助安装服务会分配一个 InfraEnv ID,并根据指定的基础架构环境构建发现启动 ISO。参考刚刚创建的 infra-envs.json 文件。将 InfraEnv ID 存储在变量中。
    3. 使用扩展 API 服务器的正确证书修补 ISO。
      你通过应用点火文件来做到这一点。将以下内容复制到 infra-点火.json 文件中。内容包含一个编码脚本,用于使用适当的证书配置扩展 API 服务器。
      应用您刚刚创建的点火文件。
    4. 下载 ISO。在此示例中,我们称之为 ai-liveiso-iso$CLUSTER_ID,引用名称中的群集标识符。
  5. 使用发现 boot ISO 启动 3 个控制平面节点。
    1. 选择适合您的基础架构的启动方法。确保机器启动连接到可以访问 Red Hat 托管辅助安装服务的网络。
      图 1 所示的示例网络中,节点具有单个接口,并且该接口连接到了 172.16.0.0/24 网络,而 172.16.0.0/24 网络与辅助安装服务具有外部连接。
    2. 检查群集状态:
      当节点成功启动时,状态应表示 已就绪
    3. 检查验证状态:
      验证状态显示是否已正确定义群集。输出中应没有错误。
    4. 检查主机:
      输出显示已启动的所有节点的详细信息。
      您可以过滤特定信息,例如主机 ID:
      和主机角色:
    5. 确认角色已分配。

      在浏览器上,转至 Red Hat 混合云控制台 (https://console.redhat.com/openshift),然后单击您的群集以查看群集的详细信息。您可以按群集名称或群集 ID 搜索群集。

      只有当节点(主机)出现且角色已成功分配为控制平面节点时,才继续下一步。由于我们仅启动 3 个控制平面节点,因此您将看到在 UI 中分配的角色,即 控制平面,辅助角色

  6. 重复步骤 5 以启动工作节点。
    查询主机角色时,您将看到工作节点处于 自动分配 状态。这是意料之中的。辅助安装安装服务稍后在安装群集时为这些节点分配角色。
  7. 将 Contrail 清单(在安装前下载)上传到辅助安装服务。

    为方便,您可以使用以下 bash 脚本。脚本假定您已将清单放置在 清单 目录中。如果您使用此脚本,请确保:

    • 您将所有要使用的清单放在此目录中,包括要从子目录使用的所有清单
    • 您不会在此目录中放置任何其他 YAML 文件

    该脚本会遍历清单目录中的所有 *.yaml 文件,将其编码在 base64 中,并应用于群集。

    尽管下载的清单包已包含 base64 编码的版本,但我们仍然要运行此脚本来重新创建它们。
  8. 开始安装群集。

    辅助安装服务会基于您定义的群集资源创建群集。首先,辅助安装器将其中一个控制平面节点分配为自举节点,进而准备其他节点。您将看到,非自举程序节点一个接一个地重新启动到群集中,非自举控制平面节点先重新启动,再重新启动工作节点,最后重新启动自举节点。

    安装可能需要一小时或更多时间。您可以在 Red Hat 混合云控制台 (https://console.redhat.com/openshift) 上观看安装进度。

    如果 Red Hat 混合云控制台显示安装停滞,请使用用户名 core 登录每个节点,并确保主机可以解析域名,尤其是您在 DNS/DHCP 服务器中配置的域名,以及 Red Hat 辅助安装服务和瞻博网络存储库域名。最常见的安装问题可以追溯到网络配置错误,如错误的 DNS 配置。此外,在某些环境中,节点可能会关闭而不是重新启动。在这种情况下,手动启动已关闭的节点。

  9. 下载群集的 kubeconfig。
    1. 将 kubeconfig 下载到本地 kubeconfig 文件中。
    2. 将 kubeconfig 复制到 ~/.kube/config。kubeconfig 必须处于默认的 ~/.kube/config 位置,因为contrailstatus稍后使用的命令预期 kubeconfig 会位于其默认位置。
  10. 验证安装。
    1. 检查所有 Pod 的状态。确认所有 Pod 均处于“正在运行”或“已完成”状态。
    2. 对于未处于“运行”或“已完成”状态的 Pod,请使用 kubectl 描述命令进一步调查。

      一个常见问题是无法下载映像。如果是这种情况:

      • 检查您的网络是否可以访问瞻博网络存储库
      • 检查故障 Pod 所在的节点是否配置为访问 DNS 服务器
      • 检查故障 Pod 所在的节点是否可以按主机名对存储库执行 ping 操作
  11. (可选)登录到 OpenShift Web 控制台以监控您的群集。
    Web 控制台 URL 的形式为: https://console-openshift-console.apps.<cluster-name><cluster-domain>
    1. 确保要访问 Web 控制台的浏览器位于可以访问 Web 控制台 URL 的机器上。您可能需要将用于该控制台主机名的条目添加到该机器上的 /etc/host 文件中。请记住,此映射是在安装前的 DNS 服务器中配置的 *.apps.mycluster.contrail.lan 映射。
    2. 下载 kubeadmin 密码。
    3. 使用用户名 kubeadmin 和下载的密码登录 OpenShift Web 控制台。
您已成功安装使用 Contrail 网络的 OpenShift。