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 Cluster Autoscaler がノード数を管理できるようにするため、
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