集群管理

OpenShift Dedicated 4

配置 OpenShift Dedicated 集群

Red Hat OpenShift Documentation Team

摘要

本文档提供有关配置 OpenShift Dedicated 集群的信息。

第 1 章 配置私有连接

1.1. 为 AWS 配置私有连接

1.1.1. 了解 AWS 云基础架构访问

注意

AWS 云基础架构访问不适用于创建集群时选择的客户云订阅(CCS) 基础架构类型,因为 CCS 集群部署到您的帐户中。

Amazon Web Services (AWS) 基础架构访问权限允许 客户门户网站机构管理员 和集群所有者启用 AWS Identity and Access Management (IAM) 用户为其 OpenShift Dedicated 集群具有对 AWS 管理控制台的联邦访问权限。可以为客户 AWS 用户授予 AWS 访问权限,并且可以实施私有集群访问权限来满足 OpenShift Dedicated 环境的需求。

  1. 开始为 OpenShift Dedicated 集群配置 AWS 基础架构访问权限。通过创建 AWS 用户和帐户,并为该用户提供对 OpenShift Dedicated AWS 帐户的访问权限。
  2. 访问 OpenShift Dedicated AWS 帐户后,使用以下一个或多个方法建立到集群的私有连接:

    • 配置 AWS VPC 对等 :启用 VPC 对等路由两个私有 IP 地址之间的网络流量。
    • 配置 AWS VPN :建立虚拟专用网络,将私有网络安全地连接到您的 Amazon 虚拟私有云。
    • 配置 AWS Direct Connect :配置 AWS Direct Connect 以在您的私有网络和 AWS Direct Connect 位置之间建立专用网络连接。

配置云基础架构访问后,了解更多有关配置私有集群的信息。

1.1.2. 配置 AWS 基础架构访问

Amazon Web Services (AWS) 基础架构访问权限允许 客户门户网站机构管理员 和集群所有者启用 AWS Identity and Access Management (IAM) 用户为其 OpenShift Dedicated 集群具有对 AWS 管理控制台的联邦访问权限。管理员可以选择 Network ManagementRead-only 访问选项。

先决条件

  • 具有 IAM 权限的 AWS 帐户。

流程

  1. 登录到 AWS 帐户。如果需要,您可以按照 AWS 文档创建新 AWS 帐户。
  2. 在 AWS 帐户中创建带有 STS:AllowAssumeRole 权限的 IAM 用户。

    1. 打开 AWS 管理控制台的 IAM 仪表板
    2. Policies 部分中,点 Create Policy
    3. 选择 JSON 选项卡,并将现有文本替换为以下内容:

      {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "sts:AssumeRole",
                "Resource": "*"
            }
        ]
      }
    4. Next:Tags
    5. 可选:添加标签。点 Next:Review
    6. 提供适当的名称和描述,然后点 Create Policy
    7. Users 部分中,点 Add user
    8. 提供适当的用户名。
    9. 选择 AWS Management Console access 作为 AWS 访问类型。
    10. 根据您的机构需要调整密码要求,然后点 Next:Permissions
    11. Attach existing policies directly 选项。搜索并检查在前面的步骤中创建的策略。

      注意

      不建议设置权限边界。

    12. Next: Tags,然后点 Next: Review。确认配置正确。
    13. Create user,会出现一个成功页面。
    14. 收集 IAM 用户的 Amazon 资源名称 (ARN)。ARN 将具有以下格式:arn:aws:iam::000111222333:user/username。单击 Close
  3. 在浏览器中打开 OpenShift Cluster Manager,然后选择您要允许 AWS 基础架构访问的集群。
  4. 选择 Access control 选项卡,并滚动到 AWS Infrastructure Access 部分。
  5. 粘贴 AWS IAM ARN 并选择 Network ManagementRead-only 权限,然后点 Grant role
  6. AWS OSD 控制台 URL 复制到您的剪贴板。
  7. 使用您的帐户 ID 或别名、IAM 用户名和密码登录到 AWS 帐户。
  8. 在新浏览器选项卡中,粘贴用于路由到 AWS Switch Role 页面的 AWS OSD 控制台 URL。
  9. 您的帐户号和角色已填写。如果需要,选择显示名称,然后点 Switch Role

验证

  • 现在,您会在 最近访问的服务中看到 VPC

1.1.3. 配置 AWS VPC 对等

虚拟私有云(VPC)对等连接是两个 VPC 之间的网络连接,可让您使用私有 IPv4 地址或 IPv6 地址路由它们之间的流量。您可以将包含 OpenShift Dedicated 集群的 Amazon Web Services (AWS) VPC 配置为与其他 AWS VPC 网络对等。

警告

在尝试卸载集群前,您必须从集群的 VPC 中删除任何 VPC 对等连接。如果不这样做,可能会导致集群无法完成卸载过程。

AWS 支持 除中国 以外的所有商业区域间的 inter-region VPC 对等点。

先决条件

  • 收集启动对等请求所需的客户 VPC 的以下信息:

    • 客户 AWS 帐号
    • 客户 VPC ID
    • 客户 VPC 区域
    • 客户 VPC CIDR
  • 检查 OpenShift Dedicated Cluster VPC 使用的 CIDR 块。如果与客户 VPC 的 CIDR 块重叠或匹配,则无法在这两个 VPC 之间对等。有关详细信息,请参阅 Amazon VPC 不支持的 VPC 仪表板配置文档。如果 CIDR 块没有重叠,您可以使用这个流程处理。

其他资源

  • 如需更多信息和故障排除帮助,请参阅 AWS VPC 指南。

1.1.4. 配置 AWS VPN

您可以配置 Amazon Web Services (AWS) OpenShift Dedicated 集群,以使用客户的现场硬件虚拟专用网络 (VPN)设备。默认情况下,启动到 AWS Virtual Private Cloud (VPC) 的实例无法与您自己的(远程)网络通信。您可以通过创建 AWS Site-to-Site VPN 连接来启用从 VPC 访问远程网络,并配置路由以通过连接传递流量。

注意

AWS VPN 目前不提供将 NAT 应用到 VPN 流量的受管选项。如需了解更多详细信息,请参阅 AWS 知识库

不支持通过私有连接路由所有流量,如 0.0.0.0/0。这需要删除互联网网关,它将禁用 SRE 管理流量。

先决条件

  • 硬件 VPN 网关设备模型和软件版本,例如 Cisco ASA 运行版本 8.3。请参阅 AWS 文档,以确认 AWS 是否支持您的网关设备。
  • VPN 网关设备的公共、静态 IP 地址。
  • BGP 或静态路由:如果需要 BGP,则需要 ASN。如果静态路由,必须至少配置一个静态路由。
  • 可选:可访问服务的 IP 和端口/协议来测试 VPN 连接。

流程

  1. 创建客户网关来配置 VPN 连接。
  2. 如果您还没有附加到预期的 VPC 的虚拟私有网关,创建并附加虚拟专用网关。
  3. 配置路由并启用 VPN 路由传播
  4. 更新您的安全组
  5. 建立 Site-to-Site VPN 连接

    注意

    请注意,VPC 子网信息,您必须作为远程网络添加到配置中。

其他资源

  • 如需更多信息和故障排除帮助,请参阅 AWS VPN 指南。

1.1.5. 配置 AWS Direct Connect

Amazon Web Services (AWS) Direct Connect 需要一个托管的虚拟接口(VIF)连接到直接连接网关(DXGateway),后者与虚拟网关(VGW)或一个 Transit 网关相关联,以便访问同一或另一个帐户中的远程虚拟私有云(VPC)。

如果您没有现有的 DXGateway,则典型的进程涉及创建托管的 VIF,在 AWS 帐户中创建 DXGateway 和 VGW。

如果您有一个现有的 DXGateway 连接到一个或多个现有 VGW,该过程涉及 AWS 帐户将 Association Proposal 发送到 DXGateway 所有者。DXGateway 所有者必须确保所提议的 CIDR 不会与他们关联的任何其他 VGW 冲突。

先决条件

  • 确认 OpenShift Dedicated VPC 的 CIDR 范围不会与您关联的任何其他 VGW 冲突。
  • 收集以下信息:

    • 直接连接网关 ID。
    • 与虚拟接口关联的 AWS 帐户 ID。
    • 为 DXGateway 分配的 BGP ASN。可选:也可以使用 Amazon 默认 ASN。

流程

  1. 创建 VIF查看您现有的 VIFs,以确定您需要创建的直接连接类型。
  2. 创建网关。

    1. 如果直接连接 VIF 类型是 Private创建一个虚拟专用网关
    2. 如果直接连接 VIF 是公共的创建一个直接连接网关
  3. 如果您有一个要使用的现有网关,创建一个关联提议,并将提议发送到 DXGateway 所有者以进行批准。

    警告

    当连接到现有的 DXGateway 时,您需要负责相关的成本

其他资源

1.2. 配置私有集群

OpenShift Dedicated 集群可以私有,以便内部应用程序可以托管在公司网络中。另外,私有集群只能配置为只具有内部 API 端点来提高安全性。

OpenShift Dedicated 管理员可以从 OpenShift Cluster Manager 内选择公共和私有集群配置。可在集群创建期间或建立集群后配置隐私设置。

1.2.1. 在集群创建过程中启用私有集群

您可以在创建新集群时启用私有集群设置。

先决条件

  • 以下私有连接必须配置为允许私有访问:

    • VPC Peering
    • 云 VPN
    • DirectConnect (仅限 AWS)
    • TransitGateway (仅限 AWS)
    • Cloud Interconnect (仅限 GCP)

流程

  1. 登录到 OpenShift Cluster Manager
  2. Create clusterOpenShift DedicatedCreate cluster
  3. 配置集群详情。
  4. 选择您首选的网络配置时,请选择 Advanced
  5. 选择 Private

    警告

    当设置为 Private 时,除非您在云供应商中配置了私有连接,如先决条件中所述,否则无法访问集群。

  6. Create cluster。集群创建过程开始,需要大约 30-40 分钟才能完成。

验证

  • Installing cluster 标题在 Overview 选项卡下,表示集群安装,您可以从此标题查看安装日志。Details 标题下的 Status 用于指示集群的状态为 Ready

1.2.2. 启用现有集群为私有集群

创建集群后,您可以稍后启用集群为私有集群。

先决条件

  • 以下私有连接必须配置为允许私有访问:

    • VPC Peering
    • 云 VPN
    • DirectConnect (仅限 AWS)
    • TransitGateway (仅限 AWS)
    • Cloud Interconnect (仅限 GCP)

流程

  1. 登录到 OpenShift Cluster Manager
  2. 选择您要进行私有的公共集群。
  3. Networking 选项卡中,选择 Control Plane API 端点下的 Make API private

    警告

    当设置为 Private 时,除非您在云供应商中配置了私有连接,如先决条件中所述,否则无法访问集群。

  4. Change settings

    注意

    在私有和公共间迁移集群可能需要几分钟来完成。

1.2.3. 使现有的私有集群变为公共集群

创建私有集群后,您可以稍后启用集群为公共集群。

流程

  1. 登录到 OpenShift Cluster Manager
  2. 选择您要公开的私有集群。
  3. Networking 选项卡中,在 Control Plane API endpoint 下取消选择 Make API private
  4. Change settings

    注意

    在私有和公共间迁移集群可能需要几分钟来完成。

第 2 章 集群自动扩展

将自动扩展应用到 OpenShift Dedicated 集群涉及配置集群自动扩展,然后为集群中的至少一个机器池配置机器自动扩展。

重要

您只能在机器 API 正常工作的集群中配置集群自动扩展。

每个集群只能创建一个集群自动扩展。

2.1. 关于集群自动扩展

集群自动扩展会调整 OpenShift Dedicated 集群的大小,以满足其当前的部署需求。它使用 Kubernetes 样式的声明性参数来提供基础架构管理,而且这种管理不依赖于特定云提供商的对象。集群自动控制会在集群范围内有效,不与特定的命名空间相关联。

当由于资源不足而无法在任何当前 worker 节点上调度 pod 时,或者在需要另一个节点来满足部署需求时,集群自动扩展会增加集群的大小。集群自动扩展不会将集群资源增加到超过您指定的限制。

集群自动扩展会计算集群所有节点上的内存和 CPU 总量,即使它不管理 control plane 节点。这些值不是单计算机导向型。它们是整个集群中所有资源的聚合。例如,如果您设置最大内存资源限制,集群自动扩展在计算当前内存用量时包括集群中的所有节点。然后,该计算用于确定集群自动扩展是否具有添加更多 worker 资源的容量。

重要

确保您所创建的 ClusterAutoscaler 资源定义中的 maxNodesTotal 值足够大,足以满足计算集群中可能的机器总数。此值必须包含 control plane 机器的数量以及可扩展至的机器数量。

每隔 10 秒,集群自动扩展会检查集群中不需要哪些节点,并移除它们。如果满足以下条件,集群自动扩展会考虑要删除的节点:

  • 节点使用率低于集群的节点 利用率级别 阈值。节点使用率级别是请求的资源的总和,由分配给节点的资源划分。如果您没有在 ClusterAutoscaler 自定义资源中指定值,集群自动扩展会使用默认值 0.5,它对应于 50% 的利用率。
  • 集群自动扩展可以将节点上运行的所有 pod 移到其他节点。Kubernetes 调度程序负责在节点上调度 pod。
  • 集群自动扩展没有缩减禁用注解。

如果节点上存在以下类型的 pod,集群自动扩展不会删除该节点:

  • 具有限制性 pod 中断预算(PDB)的 Pod。
  • 默认不在节点上运行的 Kube 系统 Pod。
  • 没有 PDB 或 PDB 限制性太强的 Kube 系统 pod。
  • 不受控制器对象支持的 Pod,如部署、副本集或有状态集。
  • 具有本地存储的 Pod。
  • 因为缺乏资源、节点选择器或关联性不兼容或有匹配的反关联性等原因而无法移至其他位置的 Pod。
  • 具有 "cluster-autoscaler.kubernetes.io/safe-to-evict": "false" 注解的 Pod,除非同时也具有 "cluster-autoscaler.kubernetes.io/safe-to-evict": "true” 注解。

例如,您可以将最大 CPU 限值设置为 64 个内核,并将集群自动扩展配置为每个创建具有 8 个内核的机器。如果您的集群从 30 个内核开始,集群自动扩展可最多添加具有 32 个内核的 4 个节点,共 62 个。

如果配置集群自动扩展,则需要额外的使用限制:

  • 不要直接修改位于自动扩展节点组中的节点。同一节点组中的所有节点具有相同的容量和标签,并且运行相同的系统 Pod。
  • 指定适合您的 Pod 的请求。
  • 如果需要防止 Pod 被过快删除,请配置适当的 PDB。
  • 确认您的云提供商配额足够大,能够支持您配置的最大节点池。
  • 不要运行其他节点组自动扩展器,特别是云提供商提供的自动扩展器。

pod 横向自动扩展(HPA)和集群自动扩展以不同的方式修改集群资源。HPA 根据当前的 CPU 负载更改部署或副本集的副本数。如果负载增加,HPA 会创建新的副本,不论集群可用的资源量如何。如果没有足够的资源,集群自动扩展会添加资源,以便 HPA 创建的 pod 可以运行。如果负载减少,HPA 会停止一些副本。如果此操作导致某些节点利用率低下或完全为空,集群自动扩展会删除不必要的节点。

集群自动扩展会考虑 pod 优先级。如果集群没有足够的资源,则“Pod 优先级和抢占”功能可根据优先级调度 Pod,但集群自动扩展会确保集群具有运行所有 Pod 需要的资源。为满足这两个功能,集群自动扩展包含一个优先级截止函数。您可以使用此截止函数来调度“尽力而为”的 Pod,它们不会使集群自动扩展增加资源,而是仅在有可用备用资源时运行。

优先级低于截止值的 Pod 不会导致集群扩展或阻止集群缩减。系统不会添加新节点来运行 Pod,并且可能会删除运行这些 Pod 的节点来释放资源。

集群自动扩展支持在其上有机器 API 的平台。

2.2. 使用 OpenShift Cluster Manager 在集群创建过程中启用自动扩展

您可以在集群创建过程中使用 OpenShift Cluster Manager 来自动扩展。

流程

  1. 在集群创建过程中,选中 Enable autoscaling 复选框。Edit cluster autoscaling settings 按钮变为可选择。

    1. 您还可以选择自动扩展的最小或最大节点数量。
  2. Edit cluster autoscaling settings
  3. 编辑您想要的任何设置,然后点 Close

2.3. 使用 OpenShift Cluster Manager 在集群创建后启用自动扩展

您可以使用 OpenShift Cluster Manager 在集群创建后自动扩展。

流程

  1. 在 OpenShift Cluster Manager 中,点您要自动扩展的集群的名称。集群的 Overview 页面有一个 自动扩展项,它指示这个功能是否被启用或被禁用。
  2. Machine Pools 选项卡。
  3. Edit cluster autoscaling 按钮。此时会显示 Edit cluster autoscaling 设置窗口。
  4. 点窗口顶部的 Autoscale 集群 切换。现在,所有设置都可以编辑。
  5. 编辑您想要的任何设置,然后点 Save
  6. 点屏幕右上角的 x,以关闭设置窗口。

要将所有自动扩展设置恢复到默认值(如果已更改),请点 Revert all 为 defaults 按钮。

2.4. 使用 OpenShift Cluster Manager 的集群自动扩展设置

表解释了在使用带有 OpenShift Cluster Manager 的集群自动扩展时,所有可配置的 UI 设置。

2.4.1. 常规设置

表 2.1. 使用 OpenShift Cluster Manager 时为集群自动扩展配置常规设置

设置描述类型或范围Default(默认)

log-verbosity

设置自动扩展日志级别。默认值为 1。建议在进行调试时使用级别 4。级别 6 可显示几乎所有的一切。

整数

1

skip-nodes-with-local-storage

如果为 true,集群自动扩展永远不会删除带有本地存储的 pod 的节点,如 EmptyDir 或 HostPath。

布尔值

true

max-pod-grace-period

为 pod 提供安全终止时间(以秒为单位)。

整数

600

max-node-provision-time

集群自动扩展等待置备节点的最长时间。

字符串

15m

pod-priority-threshold

允许用户调度 "best-effort" pod,这些 pod 不应该触发集群自动扩展操作。这些 pod 仅在备用资源可用时运行。

整数

-10

ignore-daemonsets-utilization

决定集群自动扩展在计算资源利用率时是否忽略守护进程集 pod。

布尔值

false

balance-similar-node-groups

如果为 true,则此设置会自动识别具有相同实例类型和同一组标签的节点组,并尝试保持这些节点组的相应大小平衡。

布尔值

false

balancing-ignored-labels

这个选项指定集群自动扩展在考虑节点组相似时应该忽略的标签。例如,如果您有带有 "topology.ebs.csi.aws.com/zone" 标签的节点,您可以添加此标签的名称,以防止集群自动扩展根据其值将节点拆分到不同的节点组中。这个选项不能包含空格。

数组(字符串)

格式应该是以逗号分隔的标签列表。

2.4.2. 资源限值

表 2.2. 使用 OpenShift Cluster Manager 时,为集群自动扩展配置资源限制设置

设置描述类型或范围Default(默认)

cores-total-min

集群中的最低内核数。集群自动扩展不会扩展集群小于这个数字。

object

0

cores-total-max

集群中内核的最大数量。集群自动扩展不会将集群扩展到大于这个数值。

object

180 * 64 (11520)

memory-total-min

集群中最少的内存(GB)。集群自动扩展不会扩展集群小于这个数字。

object

0

memory-total-max

集群中内存的最大数量。集群自动扩展不会将集群扩展到大于这个数值。

object

180 * 64 * 20 (230400)

max-nodes-total

所有节点组中的节点数。包括所有节点,而不只是自动扩展节点。集群自动扩展不会增加大于这个数字的集群。

整数

180

GPU

集群中不同 GPU 的最小和最大数量。集群自动扩展不会将集群缩减到小于这些数值。

数组

格式应是一个用逗号分开的 "{p>:<min>:<max>"。

2.4.3. 缩减配置

表 2.3. 使用 OpenShift Cluster Manager 时配置集群自动扩展设置

设置描述类型或范围Default(默认)

scale-down-enabled

集群自动扩展程序是否应该缩减集群。

布尔值

true

scale-down-utilization-threshold

节点使用率级别,它被定义为请求的资源的总和(根据容量划分),如果低于这些数值可考虑对节点进行缩减。

浮点值

0.5

scale-down-unneeded-time

在节点处于不需要的状态多长时间后才有资格对节点进行缩减。

字符串

10m

scale-down-delay-after-add

在对系统扩展后多长时间后才恢复对缩减的评估。

字符串

10m

scale-down-delay-after-delete

在删除节点后多长时间后才恢复对缩减的评估。

字符串

0s

scale-down-delay-after-failure

在缩减失败后多长时间后才恢复缩减评估。

字符串

3m

第 3 章 节点

3.1. 关于机器池

OpenShift Dedicated 使用机器池作为云基础架构之上的弹性动态置备方法。

主要资源包括机器、机器集和机器池。

重要

从 OpenShift Dedicated 4.11 开始,默认的每个 pod PID 的限制为 4096。如果要启用此 PID 限制,您必须将 OpenShift Dedicated 集群升级到这些版本或更新版本。在早期版本上运行的 OpenShift Dedicated 集群中,默认的 PID 限制为 1024

您无法在任何 OpenShift Dedicated 集群中配置每个 pod PID 限制。

3.1.1. Machines

机器是描述 worker 节点主机的基本单元。

3.1.2. 机器集

MachineSet 资源是计算机器组。如果需要更多机器或必须缩减机器,请更改计算机器集所属的机器池中的副本数量。

3.1.3. 机器池

机器池是计算机器集的更高级别构造。

机器池创建计算机器集,它们是跨可用性区域相同的配置克隆。机器池在 worker 节点上执行所有主机节点置备管理操作。如果需要更多机器或必须缩减机器,请更改机器池中的副本数量以满足您的计算需求。您可以手动配置扩展或设置自动扩展。

默认情况下,会创建一个集群和一个机器池。您可以将额外的机器池添加到现有集群中,修改默认机器池,并删除机器池。

单个集群中可以存在多个机器池,它们可以分别有不同的类型或不同的大小节点。

3.1.4. 多个区集群中的机器池

在多个可用区 (Multi-AZ) 集群中创建机器池时,一个机器池有 3 个区。机器池会创建 3 个计算机器集 - 集群中每个区一个。每个计算机器集各自管理其各自可用区中的一个或多个机器。

如果您创建新的 Multi-AZ 集群,机器池会自动复制到这些区域。如果您将机器池添加到现有的 Multi-AZ 中,则在这些区中会自动创建新的池。同样,删除机器池将从所有区中删除。由于这种多副本的效果,在多AZ 集群中使用机器池可以在创建机器池时为特定区域消耗更多项目的配额。

3.1.5. 其他资源

3.2. 管理计算节点

本文档论述了如何使用 OpenShift Dedicated 管理计算(也称为 worker)节点。

机器池中配置了计算节点的大部分更改。机器池是集群中有相同配置的计算节点的一组计算节点,提供轻松管理。

您可以编辑机器池配置选项,如扩展、添加节点标签和添加污点。

3.2.1. 创建机器池

安装 OpenShift Dedicated 集群时会创建一个机器池。安装后,您可以使用 OpenShift Cluster Manager 为集群创建额外的机器池。

重要

依赖于 OpenShift Dedicated 订阅、资源配额和部署场景的计算(也称为 worker)节点类型、自动扩展选项和节点数。如需更多信息,请联系您的销售代表或红帽支持。

先决条件

  • 您创建了 OpenShift Dedicated 集群。

流程

  1. 进入到 OpenShift Cluster Manager 并选择您的集群。
  2. Machine pool 选项卡下,点 Add machine pool
  3. 添加机器池名称
  4. 从下拉菜单中选择 Compute 节点实例类型。实例类型定义机器池中各个计算节点的 vCPU 和内存分配。

    注意

    在创建池后,您无法更改机器池的实例类型。

  5. 可选:为机器池配置自动扩展:

    1. 选择 Enable autoscaling 以自动扩展机器池中的机器数量,以满足部署需求。

      注意

      如果您有 capability.cluster.autoscale_clusters 订阅,则 Enable autoscaling 选项仅适用于 OpenShift Dedicated。如需更多信息,请联系您的销售代表或红帽支持。

    2. 设置自动扩展的最小和最大节点数限值。集群自动扩展不会减少或增加机器池节点数超过您指定的限制。

      • 如果您使用一个可用区部署集群,请设置最小和最大节点数。这会在可用区中定义最小和最大计算节点限值。
      • 如果您使用多个可用区部署集群,请为每个区设置 Minimum nodes per zoneMaximum nodes per zone。它定义每个区的最小和最大计算节点限值。

        注意

        另外,您可以在创建机器池后为机器池设置自动扩展首选项。

  6. 如果没有启用自动扩展,请选择计算节点计数:

    • 如果您使用一个可用区部署集群,请从下拉菜单中选择 Compute 节点数。这定义了置备到区域的机器池的计算节点数量。
    • 如果您使用多个可用区部署集群,请从下拉菜单中选择 Compute 节点数(每个区域)。这定义了每个区要置备到机器池的计算节点数量。
  7. 可选:为您的机器池添加节点标签和污点:

    1. 展开 Edit node labels and taints 菜单。
    2. Node labels 下,为您的节点标签添加 KeyValue 项。
    3. Taints 下,为您的污点添加 KeyValue 条目。

      注意

      只有集群已至少有一个没有污点的机器池时,才能创建带有污点的机器池。

    4. 对于每个污点,从下拉菜单中选择 Effect。可用选项包括 NoSchedulePreferNoScheduleNoExecute

      注意

      另外,您可以在创建机器池后添加节点标签和污点。

  8. 可选:选择用于此机器池中节点的附加自定义安全组。您必须已创建了安全组,并将其与您为这个集群选择的 VPC 关联。您无法在创建机器池后添加或编辑安全组。如需更多信息,请参阅"添加资源"部分中的安全组的要求。
  9. 可选:如果您使用客户云订阅(CCS)模型在 AWS 上部署 OpenShift Dedicated,如果要配置机器池将机器部署为非保障的 AWS Spot 实例,请使用 Amazon EC2 Spot 实例:

    1. 选择 使用 Amazon EC2 Spot 实例
    2. 选择 Use On-Demand 实例价格 即可使用按需实例价格。或者,选择 Set maximum price 来为 Spot 实例定义最大每小时价格。

      有关 Amazon EC2 Spot 实例的更多信息,请参阅 AWS 文档

      重要

      您的 Amazon EC2 Spot 实例可能随时中断。仅对可容许中断的工作负载使用 Amazon EC2 Spot 实例。

      注意

      如果为机器池选择了使用 Amazon EC2 Spot 实例,则在创建机器池后无法禁用该选项。

  10. Add machine pool 创建机器池。

验证

  • 验证机器池页面中是否存在 机器池,配置是如预期的。

3.2.2. 删除机器池

如果您的工作负载要求已更改,当前机器池已不再满足您的需要,则可以删除机器池。

您可以使用 OpenShift Cluster Manager 删除机器池。

先决条件

  • 您已创建了 OpenShift Dedicated 集群。
  • 集群处于 ready 状态。
  • 您有一个没有污点的现有机器池,以及 Single-AZ 集群至少有两个副本,或 Multi-AZ 集群的三个副本。

流程

  1. OpenShift Cluster Manager 中,进入到 Clusters 页面,再选择包含您要删除的机器池的集群。
  2. 在所选集群中,选择 Machine pool 选项卡。
  3. Machine pool 选项卡中,点您要删除的机器池的选项菜单 kebab
  4. 点击 Delete

所选机器池已删除。

3.2.3. 手动扩展计算节点

如果您还没有为机器池启用自动扩展,您可以手动扩展池中计算(也称为 worker)节点的数量来满足部署需求。

您必须单独扩展每个机器池。

先决条件

  • 您创建了 OpenShift Dedicated 集群。
  • 您有一个现有的机器池。

流程

  1. 进入到 OpenShift Cluster Manager 并选择您的集群。
  2. Machine pool 选项卡中,点您要扩展的机器池的选项菜单 kebab
  3. 选择 Scale
  4. 指定节点数:

    • 如果您使用一个可用区部署集群,请从下拉菜单中选择 Node count
    • 如果您使用多个可用区部署集群,在下拉菜单中指定 Node count per zone

      注意

      您的订阅决定了您可以选择的节点数量。

  5. Apply 以扩展机器池。

验证

  • Machine pool 选项卡下,验证机器池的 节点数 是否如预期。

3.2.4. 节点标签

标签是应用于 Node 对象的键值对。您可以使用标签来组织一组对象,并控制 pod 的调度。

您可以在集群创建过程中或之后添加标签。标签可以随时修改或更新。

其他资源

3.2.4.1. 在机器池中添加节点标签

随时为计算(也称为 worker)节点添加或编辑标签,以便以与您的相关方式管理节点。例如,您可以将工作负载的类型分配给特定的节点。

标签以一个键值对的形式进行分配。对于其分配到的对象,每个键需要是唯一的。

先决条件

  • 您创建了 OpenShift Dedicated 集群。
  • 您有一个现有的机器池。

流程

  1. 进入到 OpenShift Cluster Manager 并选择您的集群。
  2. Machine pool 选项卡中,点您要向其添加标签的机器池的选项菜单 kebab
  3. 选择 Edit labels
  4. 如果您在要删除的机器池中已有标签,请选择标签旁边的 x 来删除它。
  5. 使用 <key>=<value> 格式添加标签,然后按 enter 键。例如,添加 app=db,然后按 enter 键。如果格式正确,则突出显示了键值对。
  6. 如果要添加额外的标签,请重复上一步。
  7. Save 将标签应用到机器池。

验证

  1. Machine pool 选项卡中,选择机器池旁边的 > 来扩展视图。
  2. 验证您的标签是否在展开的视图中的 Labels 下列出。

3.2.5. 为机器池添加污点

您可以为机器池中的计算(也称为 worker)节点添加污点,以控制哪些 pod 调度到它们。将污点应用到机器池时,调度程序无法将 pod 放置到池中节点上,除非 pod 规格包含污点的容限。

注意

集群必须至少有一个不包含任何污点的机器池。

先决条件

  • 您创建了 OpenShift Dedicated 集群。
  • 您有一个机器池,它不包含任何污点,至少包含两个实例。

流程

  1. 进入到 OpenShift Cluster Manager 并选择您的集群。
  2. Machine pool 选项卡中,点您要向其添加污点的机器池的选项菜单 kebab
  3. 选择 Edit taint
  4. 为您的污点添加 KeyValue 条目。
  5. 从下拉菜单中选择污点的 Effect。可用选项包括 NoSchedulePreferNoScheduleNoExecute
  6. 如果要向机器池添加更多污点,请选择 Add taint
  7. Save 将污点应用到机器池。

验证

  1. Machine pool 选项卡中,选择机器池旁边的 > 来扩展视图。
  2. 验证您的污点是否在展开的视图中的 Taints 下列出。

3.2.6. 其他资源

3.3. 关于集群中的自动扩展节点

重要

自动扩展仅适用于通过 Google Cloud Marketplace 和 Red Hat Marketplace 购买的集群。

自动扩展器选项可以配置为自动扩展集群中的机器数量。

当由于资源不足而无法在任何当前节点上调度 Pod 时,或者在需要另一个节点来满足部署需求时,集群自动扩展会增加集群的大小。集群自动扩展不会将集群资源增加到超过您指定的限制。

另外,如果相当长的一段时间内都不需要某些节点,例如集群资源使用率较低并且所有重要 Pod 都可以安置在其他节点上时,集群自动扩展会减小集群的大小。

启用自动扩展时,还必须设置 worker 节点的最小和最大数量。

注意

只有集群所有者和机构管理员才可以扩展或删除集群。

3.3.1. 在集群中启用自动扩展节点

您可以通过编辑现有集群的机器池定义,在 worker 节点上启用自动扩展来增加或减少可用节点的数量。

使用 Red Hat OpenShift Cluster Manager 在现有集群中启用自动扩展节点

从 OpenShift Cluster Manager 控制台,为机器池定义中启用 worker 节点的自动扩展。

流程

  1. OpenShift Cluster Manager 中,进入到 Clusters 页面,再选择您要为其启用自动扩展的集群。
  2. 在所选集群中,选择 Machine pool 选项卡。
  3. 点您要为其启用自动扩展的机器池的末尾的 Options 菜单 kebab ,然后选择 Scale
  4. Edit node count 对话框中,选中 Enable autoscaling 复选框。
  5. 选择 Apply 以保存这些更改并为集群启用自动扩展。

3.3.2. 禁用集群中的自动扩展节点

您可以通过编辑现有集群的机器池定义,在 worker 节点上禁用自动扩展来增加或减少可用节点的数量。

您可以使用 OpenShift Cluster Manager 控制台在集群中禁用自动扩展。

使用 Red Hat OpenShift Cluster Manager 禁用现有集群中的自动扩展节点

从 OpenShift Cluster Manager 控制台,禁用机器池定义中的 worker 节点的自动扩展。

流程

  1. OpenShift Cluster Manager 中,进入到 Clusters 页面,再选择必须禁用自动扩展的集群。
  2. 在所选集群中,选择 Machine pool 选项卡。
  3. 点启动了自动扩展的机器池的末尾的 Options 菜单 kebab ,然后选择 Scale
  4. 在"编辑节点数"对话框中,取消选择启用自动扩展复选框。
  5. 选择 Apply 以保存这些更改并从集群中禁用自动扩展。

将自动扩展应用到 OpenShift Dedicated 集群涉及部署集群自动扩展,然后为集群中的每种机器类型部署机器自动扩展。

重要

您只能在 Machine API 操作的集群中配置集群自动扩展。

3.3.3. 关于集群自动扩展

集群自动扩展会调整 OpenShift Dedicated 集群的大小,以满足其当前的部署需求。它使用 Kubernetes 样式的声明性参数来提供基础架构管理,而且这种管理不依赖于特定云提供商的对象。集群自动控制会在集群范围内有效,不与特定的命名空间相关联。

当由于资源不足而无法在任何当前 worker 节点上调度 pod 时,或者在需要另一个节点来满足部署需求时,集群自动扩展会增加集群的大小。集群自动扩展不会将集群资源增加到超过您指定的限制。

集群自动扩展会计算集群所有节点上的内存和 CPU 总量,即使它不管理 control plane 节点。这些值不是单计算机导向型。它们是整个集群中所有资源的聚合。例如,如果您设置最大内存资源限制,集群自动扩展在计算当前内存用量时包括集群中的所有节点。然后,该计算用于确定集群自动扩展是否具有添加更多 worker 资源的容量。

重要

确保您所创建的 ClusterAutoscaler 资源定义中的 maxNodesTotal 值足够大,足以满足计算集群中可能的机器总数。此值必须包含 control plane 机器的数量以及可扩展至的机器数量。

每隔 10 秒,集群自动扩展会检查集群中不需要哪些节点,并移除它们。如果满足以下条件,集群自动扩展会考虑要删除的节点:

  • 节点使用率低于集群的节点 利用率级别 阈值。节点使用率级别是请求的资源的总和,由分配给节点的资源划分。如果您没有在 ClusterAutoscaler 自定义资源中指定值,集群自动扩展会使用默认值 0.5,它对应于 50% 的利用率。
  • 集群自动扩展可以将节点上运行的所有 pod 移到其他节点。Kubernetes 调度程序负责在节点上调度 pod。
  • 集群自动扩展没有缩减禁用注解。

如果节点上存在以下类型的 pod,集群自动扩展不会删除该节点:

  • 具有限制性 pod 中断预算(PDB)的 Pod。
  • 默认不在节点上运行的 Kube 系统 Pod。
  • 没有 PDB 或 PDB 限制性太强的 Kube 系统 pod。
  • 不受控制器对象支持的 Pod,如部署、副本集或有状态集。
  • 具有本地存储的 Pod。
  • 因为缺乏资源、节点选择器或关联性不兼容或有匹配的反关联性等原因而无法移至其他位置的 Pod。
  • 具有 "cluster-autoscaler.kubernetes.io/safe-to-evict": "false" 注解的 Pod,除非同时也具有 "cluster-autoscaler.kubernetes.io/safe-to-evict": "true” 注解。

例如,您可以将最大 CPU 限值设置为 64 个内核,并将集群自动扩展配置为每个创建具有 8 个内核的机器。如果您的集群从 30 个内核开始,集群自动扩展可最多添加具有 32 个内核的 4 个节点,共 62 个。

如果配置集群自动扩展,则需要额外的使用限制:

  • 不要直接修改位于自动扩展节点组中的节点。同一节点组中的所有节点具有相同的容量和标签,并且运行相同的系统 Pod。
  • 指定适合您的 Pod 的请求。
  • 如果需要防止 Pod 被过快删除,请配置适当的 PDB。
  • 确认您的云提供商配额足够大,能够支持您配置的最大节点池。
  • 不要运行其他节点组自动扩展器,特别是云提供商提供的自动扩展器。

pod 横向自动扩展(HPA)和集群自动扩展以不同的方式修改集群资源。HPA 根据当前的 CPU 负载更改部署或副本集的副本数。如果负载增加,HPA 会创建新的副本,不论集群可用的资源量如何。如果没有足够的资源,集群自动扩展会添加资源,以便 HPA 创建的 pod 可以运行。如果负载减少,HPA 会停止一些副本。如果此操作导致某些节点利用率低下或完全为空,集群自动扩展会删除不必要的节点。

集群自动扩展会考虑 pod 优先级。如果集群没有足够的资源,则“Pod 优先级和抢占”功能可根据优先级调度 Pod,但集群自动扩展会确保集群具有运行所有 Pod 需要的资源。为满足这两个功能,集群自动扩展包含一个优先级截止函数。您可以使用此截止函数来调度“尽力而为”的 Pod,它们不会使集群自动扩展增加资源,而是仅在有可用备用资源时运行。

优先级低于截止值的 Pod 不会导致集群扩展或阻止集群缩减。系统不会添加新节点来运行 Pod,并且可能会删除运行这些 Pod 的节点来释放资源。

集群自动扩展支持在其上有机器 API 的平台。

3.3.4. 其他资源

第 4 章 日志记录

4.1. 访问 OpenShift Dedicated 集群的服务日志

您可以使用 Red Hat OpenShift Cluster Manager 查看 OpenShift Dedicated 集群的服务日志。服务日志详细介绍了集群事件,如负载均衡器配额更新和调度的维护升级。日志还显示集群资源更改,如添加或删除用户、组和身份提供程序。

另外,您可以为 OpenShift Dedicated 集群添加通知联系人。订阅的用户会收到有关需要客户操作、已知集群事件、升级维护和其他主题的集群事件的电子邮件。

4.1.1. 使用 OpenShift Cluster Manager 查看服务日志

您可以使用 Red Hat OpenShift Cluster Manager 查看 OpenShift Dedicated 集群的服务日志。

先决条件

  • 已安装 OpenShift Dedicated 集群。

流程

  1. 进入到 OpenShift Cluster Manager 并选择您的集群。
  2. 在集群的 Overview 页面中,查看 Cluster history 部分中的服务日志。
  3. 可选:从下拉菜单中选择 DescriptionSeverity 来过滤集群服务日志。您可以通过在搜索栏中输入特定项目来进一步过滤。
  4. 可选:点 Download history 以 JSON 或 CSV 格式下载您的集群的服务日志。

4.1.2. 添加集群通知联系人

您可以为 OpenShift Dedicated 集群添加通知联系人。当事件触发集群通知电子邮件时,订阅的用户会收到通知。

流程

  1. 进入到 OpenShift Cluster Manager 并选择您的集群。
  2. Support 选项卡上的 Notification contacts 标题下,点 Add notification contact
  3. 输入您要添加的联系人的用户名或电子邮件。

    注意

    用户名或电子邮件地址必须与部署集群的红帽机构中的用户帐户相关。

  4. Add contact

验证

  • 当您成功添加了联系人时,您会看到确认信息。用户会出现在 Support 标签页中的 Notification contacts 部分。

法律通告

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.