准备 Satellite 集群以进行自动缩放

Satellite

在 Satellite 群集中使用群集自动分级器插件之前,请完成以下步骤。

Satellite 集群上的自动扩展功能在测试版中仅适用于允许列表中的账户。 您可以通过在支持人员的支持下 打开案例 来添加到允许列表。

在非允许列表账户上启用自动分压器会导致 The 'cluster-autoscaler' add-on is not supported on satellite clusters 错误。 您可以通过在支持人员的支持下 打开案例 来添加到允许列表。

了解 Satellite 集群中的自动缩放

如何对 Satellite 集群进行向上扩展?
集群自动缩放器定期检查由于缺少内存或 CPU 资源而处于暂挂状态的 pod。
  1. 自动扩展器会检查群集中的任何工作池是否已启用扩展。 如果启用了扩展,自动分级器会计算所需的工作节点数量,以容纳所有卡在待处理状态的 pod。 如果没有工作池启用自动扩展,则不会发生任何操作。
  2. 自动扩展器会将上一步计算出的所需工作节点数与 MaxSize 或允许扩展的工作节点总数进行比较。 如果允许的 MaxSize 小于或等于满足所有 pod 所需的工作程序节点计数,那么自动缩放器会向实例组发送调整大小请求。
  3. 自动缩放器会访存位置中的 ReadyUnassigned 主机,并且主机标签与启用了自动缩放的工作程序池中的工作程序节点上的标签匹配。
  4. 自动缩放器确定是否有足够的可用 ReadyUnassigned 主机来满足调整大小请求。
    • 如果该位置没有足够的可用主机,日志中将添加警告,说明调整大小操作未完成。
    • 如果有可用的主机是 ReadyUnassigned,并且具有匹配的主机标签,那么自动缩放器将使用这些主机来实现请求。
    • 如果没有主机可用于匹配的主机标签,那么自动缩放器会过滤 ReadyUnassigned 主机以仅使用缺省主机标签的主机。 然后,自动缩放器会更新这些主机上的标签,以与启用了缩放的工作程序池的主机标签匹配,并使用这些主机来实现请求。
如何在 Satellite 集群中进行缩减?
当群集自动分量器确定某个工作者节点在指定的 scaleDownUnneededTime 时间内利用率不足时,就会将工作者从群集中删除。 然后,用于这些工作节点的主机就会在该位置处于 Reload RequiredUnassigned 状态。 这些主机在重新加载并重新连接到位置之前,不能被任何其他群集使用。 请注意,工作程序池中的所有工作程序必须是同一类型模板。
如果我的位置没有可供扩展的可用主机,会发生什么情况?
如果没有足够的主机用于向上扩展,那么不会完全部署工作负载。 但是,将更多主机添加到位置后,将自动恢复向上扩展操作。
Satellite 上的自动缩放与 IBM Cloud® Kubernetes Service 或 Red Hat® OpenShift® on IBM Cloud® 上的自动缩放有何不同?
IBM Cloud® Kubernetes Service 或 Red Hat® OpenShift® on IBM Cloud® 可以在缩放过程中自动供应或除去基础结构中的主机。 对于 Satellite,由于主机位于各种不同的基础结构上,因此自动缩放器无法自动供应和移除工作程序节点。 相反,在 Satellite 集群上,集群自动缩放器仅使用已在该位置可用且就绪的主机。 这意味着您需要在该位置保留更多可用主机,以便自动分级器在扩展过程中使用。
集群自动缩放器在扩展集群时使用哪种类型的主机?
具有 Ready 状态和 unassigned 状态的主机被视为可供集群自动缩放器使用。
在扩展期间可以使用哪些可用主机?
Readyunassigned 主机中,只有其标签与启用了缩放的工作程序池的标签匹配的主机才能用于缩放。 将主机连接到位置时,请确保标注要在自动缩放的工作程序池中使用的主机。
集群自动缩放器如何影响计费?
由于集群自动缩放器不会在基础结构级别执行任何操作,但是它会将主机分配给工作程序池,这意味着会产生 集群管理费用
在缩放事件之后,我该如何处理用于缩放的主机 (这些主机现在处于 Reload required 状态)?
缩放后,主机会进入 Reload required 状态,在重启前无法再次用于缩放。 将这些主机从工作者池中取消分配,将它们从你的位置移除,重新启动它们,然后重新连接它们,使它们可以再次进行扩展。
如何在 Satellite 集群中设置自动缩放
要设置自动缩放,必须完成以下步骤。
  1. 创建 Satellite 位置。
  2. 设置位置控制平面。
  3. 连接缺省工作程序池的主机。
  4. 创建使用 Satellite 主机的集群。
  5. 在集群中验证或创建所需的存储密钥。
  6. 将更多主机连接到您的位置,并在集群中创建第二个工作程序池。
  7. 将更多主机连接到您的位置,并使其保持未分配状态,可用于缩放。
  8. 安装 cluster-autoscaler 附加组件。
  9. 编辑自动缩放器 ConfigMap 并启用缩放。

设置位置和集群以进行自动缩放

  1. 创建位置 并设置控制平面。

  2. 设置控制平面后,连接更多主机,您希望在集群的缺省工作程序池中使用这些主机。

  3. 在您的位置创建集群

  4. 复制以下 storage-secret-store 私钥并将其保存为文件。 您可以在 Satellite 链接端点 您所在位置的页面上找到 openshift-api 端点详细信息。

    apiVersion: v1
    kind: Secret
    metadata:
      name: storage-secret-store
      namespace: kube-system
    type: Opaque
    stringData:
      ca_iam_api_key: "<iam_api_key>" # Enter your IAM API key
      container_api_route: "API ROUTE" # Enter the Destination IP of the openshift-api Link endpoint for your Satellite loction. For example: https://i43fb00XXX-XXXX6bf59a8XXX-ce00.us-east.satellite.appdomain.cloud
    
  5. 在集群中创建私钥。

    oc create -f secret.yaml -n kube-system
    
  6. 将更多主机连接到要在自动缩放工作程序池中使用的位置。 作为最佳实践,请勿在缺省工作程序池上设置自动缩放。 在附加要用于自动伸缩 Worker 池的主机时,请务必指定主机标签,如 cpu=16memory=64。 集群自动缩放器附加组件使用主机标签来查找可用于缩放的主机。 用于在指定 CPU 和内存的主机标签时连接主机的示例命令。

    ibmcloud sat host attach --location LOCATION --host-label "cpu=16" --host-label "memory=64" [--operating-system SYSTEM]
    
  7. 使用连接的主机创建第二个工作程序池。 有关更多信息,请参阅 在 Satellite 中创建 Red Hat OpenShift on IBM Cloud 集群

  8. 将更多主机连接到您的位置,但不将它们分配给工作程序池。 这些 Ready/Unassigned 主机可用于自动缩放。 附加要留作自动缩放的主机时,请务必指定主机标签,如 cpu=16memory=64。 集群自动缩放器附加组件使用主机标签来查找可用于缩放的主机。

  9. 安装 集群中的集群自动分压器插件。 请注意,如果看到错误消息 The 'cluster-autoscaler' add-on is not supported on satellite clusters,那么不会允许您的帐户使用该附加组件。 要添加到允许列表,请在支持下 打开案例

  10. 编辑集群自动缩放器 ConfigMap,并指定要使用的自动缩放参数,例如 MinSizeMaxSize 和要用于缩放的工作程序池。