9.3. 将数据平面缩减为零
如果您没有使用托管的控制平面,为了保存资源和成本,您可以将数据平面缩减为零。
确保您准备将数据平面缩减为零。因为 worker 节点的工作负载在缩减后会消失。
流程
运行以下命令,设置
kubeconfig
文件以访问托管集群:$ export KUBECONFIG=<install_directory>/auth/kubeconfig
运行以下命令,获取与托管集群关联的
NodePool
资源的名称:$ oc get nodepool --namespace <HOSTED_CLUSTER_NAMESPACE>
可选: 要防止 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 # ...
注意要允许节点排空过程在特定时间段内继续,您可以相应地设置
nodeDrainTimeout
字段的值,例如nodeDrainTimeout: 1m
。运行以下命令来缩减与托管集群关联的
NodePool
资源:$ oc scale nodepool/<NODEPOOL_NAME> --namespace <HOSTED_CLUSTER_NAMESPACE> --replicas=0
注意将数据计划缩减为零后,control plane 中的一些 pod 会一直处于
Pending
状态,托管的 control plane 会保持启动并运行。如果需要,您可以扩展NodePool
资源。可选:运行以下命令来扩展与托管集群关联的
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}'
其他资源