11.8. ホステッドクラスターでの優先度エクスパンダーの設定
ホステッドクラスター内の優先度エクスパンダーを使用することで、ノードプールの優先度を定義し、優先度の低いマシンの前に優先度の高いマシンを作成できます。
前提条件
-
HostedClusterおよびNodePoolリソースを作成した。
手順
ホステッドクラスターに
priority-expander-configmap.yamlという名前の config map を作成して、ノードプールの優先順位を定義します。番号が小さいノードプールは優先度が高くなります。次の設定例を参照してください。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>'