11.8. 在托管集群中设置优先级扩展器
您可以使用托管集群中的优先级扩展器,定义节点池的优先级的优先级,并在低优先级机器之前创建高优先级机器。
先决条件
-
您已创建了
HostedCluster和NodePool资源。
流程
要定义节点池的优先级,请在托管集群中创建一个名为
priority-expander-configmap.yaml的配置映射。数值低的节点池具有更高的优先级。请参见以下示例配置:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来生成
kubeconfig文件:hcp create kubeconfig --name <hosted_cluster_name> --namespace <hosted_cluster_namespace> > nested.config
$ hcp create kubeconfig --name <hosted_cluster_name> --namespace <hosted_cluster_namespace> > nested.configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
ConfigMap对象:oc --kubeconfig nested.config create -f priority-expander-configmap.yaml
$ oc --kubeconfig nested.config create -f priority-expander-configmap.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过为托管集群设置优先级扩展器来启用集群自动扩展。运行以下命令:
oc patch -n <hosted_cluster_namespace> \ hostedcluster <hosted_cluster_name> \ --type=merge \ --patch='{"spec": {"autoscaling": {"scaling": "ScaleUpOnly", "maxPodGracePeriod": 60, "expanders": ["Priority"]}}}'$ oc patch -n <hosted_cluster_namespace> \ hostedcluster <hosted_cluster_name> \ --type=merge \ --patch='{"spec": {"autoscaling": {"scaling": "ScaleUpOnly", "maxPodGracePeriod": 60, "expanders": ["Priority"]}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从
NodePool资源中删除spec.replicas字段,以允许集群自动扩展管理节点数。运行以下命令:oc patch -n <hosted_cluster_namespace> \ nodepool <node_pool_name> \ --type=json
$ oc patch -n <hosted_cluster_namespace> \ nodepool <node_pool_name> \ --type=json --patch='[{"op": "remove", "path": "/spec/replicas"}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用集群自动扩展,为节点池配置最小和最大节点数。运行以下命令:
oc patch -n <hosted_cluster_namespace> \ nodepool <nodepool_name> \ --type=merge --patch='{"spec": {"autoScaling": {"max": 3, "min": 1}}}'$ oc patch -n <hosted_cluster_namespace> \ nodepool <nodepool_name> \ --type=merge --patch='{"spec": {"autoScaling": {"max": 3, "min": 1}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
应用新的工作负载后,验证与优先级节点池关联的计算节点是否已首先扩展。运行以下命令检查计算节点的状态:
oc --kubeconfig nested.config get nodes -l 'hypershift.openshift.io/nodePool=<node_pool_name>'
$ oc --kubeconfig nested.config get nodes -l 'hypershift.openshift.io/nodePool=<node_pool_name>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow