9.3. 将数据平面缩减为零


如果您没有使用托管的控制平面,为了保存资源和成本,您可以将数据平面缩减为零。

注意

确保您准备将数据平面缩减为零。因为 worker 节点的工作负载在缩减后会消失。

流程

  1. 运行以下命令,设置 kubeconfig 文件以访问托管集群:

    $ export KUBECONFIG=<install_directory>/auth/kubeconfig
  2. 运行以下命令,获取与托管集群关联的 NodePool 资源的名称:

    $ oc get nodepool --namespace <HOSTED_CLUSTER_NAMESPACE>
  3. 可选: 要防止 pod 排空,请运行以下命令在 NodePool 资源中添加 nodeDrainTimeout 字段:

    $ oc edit nodepool <nodepool_name>  --namespace <hosted_cluster_namespace>

    输出示例

    apiVersion: hypershift.openshift.io/v1alpha1
    kind: NodePool
    metadata:
    # ...
      name: nodepool-1
      namespace: clusters
    # ...
    spec:
      arch: amd64
      clusterName: clustername 1
      management:
        autoRepair: false
        replace:
          rollingUpdate:
            maxSurge: 1
            maxUnavailable: 0
          strategy: RollingUpdate
        upgradeType: Replace
      nodeDrainTimeout: 0s 2
    # ...

    1
    定义托管集群的名称。
    2
    指定控制器排空节点的时间总量。默认情况下,nodeDrainTimeout: 0s 设置会阻止节点排空过程。
    注意

    要允许节点排空过程在特定时间段内继续,您可以相应地设置 nodeDrainTimeout 字段的值,例如 nodeDrainTimeout: 1m

  4. 运行以下命令来缩减与托管集群关联的 NodePool 资源:

    $ oc scale nodepool/<NODEPOOL_NAME> --namespace <HOSTED_CLUSTER_NAMESPACE> --replicas=0
    注意

    将数据计划缩减为零后,control plane 中的一些 pod 会一直处于 Pending 状态,托管的 control plane 会保持启动并运行。如果需要,您可以扩展 NodePool 资源。

  5. 可选:运行以下命令来扩展与托管集群关联的 NodePool 资源:

    $ oc scale nodepool/<NODEPOOL_NAME> --namespace <HOSTED_CLUSTER_NAMESPACE> --replicas=1

    在重新扩展 NodePool 资源后,请等待几分钟,让 NodePool 资源变为 Ready 状态。

验证

  • 运行以下命令,验证 nodeDrainTimeout 字段的值是否大于 0s

    $ oc get nodepool -n <hosted_cluster_namespace> <nodepool_name> -ojsonpath='{.spec.nodeDrainTimeout}'
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.