11.9. 호스트 클러스터에서 무시된 라벨의 균형 조정
노드 풀을 확장한 후 balancingIgnoredLabels 를 사용하여 노드 풀에 머신을 균등하게 배포할 수 있습니다.
사전 요구 사항
-
HostedCluster및NodePool리소스를 생성했습니다.
프로세스
동일한 라벨 값을 사용하여 각 관련 노드 풀에
node.group.balancing.ignored레이블을 추가합니다. 다음 명령을 실행합니다.oc patch -n <hosted_cluster_namespace> \ nodepool <node_pool_name> \ --type=merge \ --patch='{"spec": {"nodeLabels": {"node.group.balancing.ignored": "<label_name>"}}}'$ oc patch -n <hosted_cluster_namespace> \ nodepool <node_pool_name> \ --type=merge \ --patch='{"spec": {"nodeLabels": {"node.group.balancing.ignored": "<label_name>"}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 호스팅된 클러스터에 대한 클러스터 자동 스케일링을 활성화합니다.
oc patch -n <hosted_cluster_namespace> \ hostedcluster <hosted_cluster_name> \ --type=merge \ --patch='{"spec": {"autoscaling": {"balancingIgnoredLabels": ["node.group.balancing.ignored"]}}}'$ oc patch -n <hosted_cluster_namespace> \ hostedcluster <hosted_cluster_name> \ --type=merge \ --patch='{"spec": {"autoscaling": {"balancingIgnoredLabels": ["node.group.balancing.ignored"]}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터 자동 스케일러가 노드 수를 관리할 수 있도록
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 <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 다음 명령을 실행하여
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 노드 풀을 확장한 후 다음 명령을 실행하여 모든 컴퓨팅 노드가
Ready상태에 있는지 확인합니다.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 다음 명령을 실행하여 새 노드에
node.group.balancing.ignored라벨이 포함되어 있는지 확인합니다.oc --kubeconfig nested.config get nodes \ -l 'hypershift.openshift.io/nodePool=<node_pool_name>' \ -o jsonpath='{.items[*].metadata.labels}' | grep "node.group.balancing.ignored"$ oc --kubeconfig nested.config get nodes \ -l 'hypershift.openshift.io/nodePool=<node_pool_name>' \ -o jsonpath='{.items[*].metadata.labels}' | grep "node.group.balancing.ignored"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 호스팅된 클러스터에 대한 클러스터 자동 스케일링을 활성화합니다.
oc patch -n <hosted_cluster_namespace> \ hostedcluster <hosted_cluster_name> \ --type=merge \ --patch='{"spec": {"autoscaling": {"balancingIgnoredLabels": ["node.group.balancing.ignored"]}}}'$ oc patch -n <hosted_cluster_namespace> \ hostedcluster <hosted_cluster_name> \ --type=merge \ --patch='{"spec": {"autoscaling": {"balancingIgnoredLabels": ["node.group.balancing.ignored"]}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
각 노드 풀에서 프로비저닝한 노드 수가 균등하게 분배되었는지 확인합니다. 예를 들어 레이블 값이 동일한 노드 풀을 세 개 생성한 경우 노드 수는 3, 2, 3일 수 있습니다. 다음 명령을 실행합니다.
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