11.8. 호스트 클러스터에서 우선순위 확장기 설정
호스트된 클러스터의 우선순위를 사용하여 노드 풀의 우선 순위를 정의하고 우선 순위가 낮은 머신보다 우선 순위가 높은 머신을 생성할 수 있습니다.
사전 요구 사항
-
HostedCluster및NodePool리소스를 생성했습니다.
프로세스
노드 풀의 우선 순위를 정의하려면 호스팅된 클러스터에
priority-expander-configmap.yaml이라는 구성 맵을 생성합니다. 숫자가 낮은 노드 풀은 높은 우선 순위를 갖습니다. 다음 예제 구성을 참조하십시오.apiVersion: v1 kind: ConfigMap metadata: name: cluster-autoscaler-priority-expander namespace: kube-system # ... data: priorities: |- 10: - ".*<node_pool_name1>.*" 100: - ".*<node_pool_name2>.*" # ...다음 명령을 실행하여
kubeconfig파일을 생성합니다.$ hcp create kubeconfig --name <hosted_cluster_name> --namespace <hosted_cluster_namespace> > nested.config다음 명령을 실행하여
ConfigMap오브젝트를 생성합니다.$ oc --kubeconfig nested.config create -f priority-expander-configmap.yaml호스팅된 클러스터의 우선 순위 확장기를 설정하여 클러스터 자동 스케일링을 활성화합니다. 다음 명령을 실행합니다.
$ oc patch -n <hosted_cluster_namespace> \ hostedcluster <hosted_cluster_name> \ --type=merge \ --patch='{"spec": {"autoscaling": {"scaling": "ScaleUpOnly", "maxPodGracePeriod": 60, "expanders": ["Priority"]}}}'클러스터 자동 스케일러가 노드 수를 관리할 수 있도록
NodePool리소스에서spec.replicas필드를 제거합니다. 다음 명령을 실행합니다.$ oc patch -n <hosted_cluster_namespace> \ nodepool <node_pool_name> \ --type=json --patch='[{"op": "remove", "path": "/spec/replicas"}]'클러스터 자동 스케일링을 활성화하여 노드 풀의 최소 및 최대 노드 수를 구성합니다. 다음 명령을 실행합니다.
$ oc patch -n <hosted_cluster_namespace> \ nodepool <nodepool_name> \ --type=merge --patch='{"spec": {"autoScaling": {"max": 3, "min": 1}}}'
검증
새 워크로드를 적용한 후 우선순위 노드 풀과 연결된 컴퓨팅 노드가 먼저 확장되었는지 확인합니다. 다음 명령을 실행하여 컴퓨팅 노드의 상태를 확인합니다.
$ oc --kubeconfig nested.config get nodes -l 'hypershift.openshift.io/nodePool=<node_pool_name>'