Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

替换控制平面节点

总结 了解如何识别和替换 OpenShift 集群中运行状况不佳的节点。

替换控制平面节点需要您首先识别并删除运行状况不佳的节点。删除不正常的节点后,可以添加新的替换节点。

我们提供这些示例过程纯粹仅供参考。有关正式程序,请参阅 Red Hat OpenShift 文档 (https://docs.openshift.com/)。

删除运行状况不佳的控制平面节点

此程序用于识别和删除运行状况不佳的控制平面节点。
  1. 检查控制平面节点的状态以识别运行状况不佳的成员。
    在此示例中,ocp3 是不正常的节点。
  2. 按照备份 etcd 数据库中的过程备份其中一个健康节点上的 etcd 数据库。
  3. 列出 etcd 成员。
  4. 打开一个远程 shell,指向健康节点上的 etcd pod(例如 ocp1)。
  5. 列出 etcd 成员。
  6. 删除不正常节点上的 etcd 成员。
  7. 再次查看成员列表。
  8. 键入exit以退出远程外壳程序。
  9. 返回 AI 客户端节点,删除运行状况不佳的 etcd 成员的旧密钥。
    1. 列出不正常(已删除)成员的机密。
    2. 删除对等机密。
    3. 删除指标机密。
    4. 删除服务机密。
  10. 最后,删除不正常的节点。
    1. 封锁不正常的节点。
    2. 清空不正常的节点。
    3. 删除不正常的节点。
    4. 列出节点。
    您现在已经识别并删除了不正常的节点。

添加替换控制平面节点

此程序用于将替换控制平面节点添加到现有 OpenShift 群集。OpenShift 集群正好有 3 个控制平面节点。您无法使用此过程将节点添加到已有 3 个控制平面节点的集群。

此过程显示延迟绑定的示例。在后期绑定中,生成 ISO 并使用该 ISO 引导节点。节点启动后,将节点绑定到现有群集。

这会导致一个或多个证书签名请求 (CSR) 从新节点发送到现有群集。CSR 只是获取(现有)群集的客户端证书的请求。您需要明确批准这些请求。获得批准后,现有群集将向新节点提供客户端证书,并允许新节点加入现有群集。

  1. 登录到用作辅助安装程序客户端的计算机(VM 或 BMS)。在辅助安装程序客户端计算机上,您可以向红帽托管的辅助安装程序服务器发出辅助安装程序 API 调用。
  2. 通过设置将在后续步骤中使用的环境变量来准备部署。
    1. 设置用于现有群集的相同 SSH 密钥。
      在此示例中,我们从其默认位置 ~/.ssh/id_rsa.pub 检索该 SSH 密钥并存储到变量中。
    2. 如果您不再拥有映像拉取密钥,请将映像提取密钥从您的红帽帐户下载到本地计算机上。拉取密钥允许您的安装访问为 OpenShift 组件提供容器映像的服务和注册表。

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

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

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

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

    5. 获取现有集群的 OpenShift 集群 ID。
      例如:将其保存到变量:
    6. 设置其余的环境变量。
      表 1 列出了在此过程中需要设置的所有环境变量,包括前面步骤中描述的环境变量。
      表 1:环境变量
      变量 描述 示例
      CLUSTER_SSHKEY 用于现有群集的(公共)SSH 密钥。您必须对要添加的新节点使用相同的密钥。
      PULL_SECRET 已下载、剥离并转换为 JSON 字符串格式的映像拉取机密。
      OFFLINE_ACCESS_TOKEN 您复制的 OpenShift 集群管理器 API 令牌。
      令 牌 从OFFLINE_ACCESS_TOKEN生成(刷新)的令牌。
      CLUSTER_NAME 现有群集的名称。 我的集群
      CLUSTER_DOMAIN 现有群集的基本域。 Contrail.lan
      OS_CLUSTER_ID 现有集群的 OpenShift 集群 ID。 1777102A-1FE1-407A-9441-9D0BAD4F5968
      AI_URL 辅助安装程序服务的 URL。此示例使用 Red Hat 托管的辅助安装程序。 https://api.openshift.com
  3. 生成发现启动 ISO。您将使用此 ISO 启动要添加到群集的节点。
    ISO 会根据您将设置的基础架构环境针对您的基础架构进行自定义。
    1. 创建描述基础结构环境的文件。在此示例中,我们将其命名为 infra-envs-addhost.json
      其中:
      • InfraEnv Name 是您想要称为 InfraEnv 的名称。
      • user_managed_networkingvip_dhcp_allocation 设置为与现有集群相同的值。
    2. 注册红外线。作为响应,辅助安装程序服务分配一个 InfraEnv ID,并根据指定的基础结构环境构建发现引导 ISO。

      注册 InfraEnv 时,辅助安装程序服务会返回 InfraEnv ID。请仔细查找响应中嵌入的 InfraEnv ID。例如:

      将 InfraEnv ID 存储到变量中。例如:

    3. 获取图像下载 URL。
      辅助安装程序服务返回图像 URL。
    4. 下载 ISO 并将其保存到文件中。在此示例中,我们将其保存到ai-liveiso-addhosts.iso
  4. 使用发现引导 ISO 引导新节点。选择最适合您的基础架构的引导方法。确保新节点启动时连接到可以访问红帽托管的辅助安装程序的网络。
    检查主机的状态: 将主机 ID 存储到变量中。
  5. 将新节点配置为控制平面节点。
    检查响应中是否嵌入了以下内容:
  6. 导入现有群集。

    导入群集时,辅助安装程序服务将返回 AddHosts群集的群集 ID。仔细查看响应中嵌入的群集 ID。例如:

  7. 将新主机绑定到群集,引用 AddHosts群集的群集 ID。
    定期检查主机的状态: 看到以下输出时,请继续执行下一步:
  8. 安装新节点。
    检查节点的状态: 查找以下状态,表示节点已重新启动:
  9. 新节点重新启动后,它将尝试加入现有群集。这会导致一个或多个证书签名请求 (CSR) 从新节点发送到现有群集。您需要批准 CSR。
    1. 检查 CSR。
      例如:

      您可能需要定期重复此命令,直到看到挂起的 CSR。

    2. 批准 CSR。
      例如:
  10. 验证新节点是否已在现有群集中启动并正在运行。