ノードラベルと nodeSelector ポリシーを設定することで、アプリケーションを特定のノードにスケジュールできます。
前提条件
-
ACK マネージドクラスターが作成済みであること、またはACK 専用クラスターが作成済みであること。新しい ACK 専用クラスターは作成できません。
-
ステートレスワークロード (Deployment) が作成済みであること、またはステートフルワークロード (StatefulSet) が作成済みであること。
ステップ 1: ノードラベルの設定
ACK コンソールにログインします。ACK コンソールの左側のナビゲーションウィンドウで、[クラスター] をクリックします。
「クラスター」ページで、変更するクラスターの名前をクリックします。左側のナビゲーションウィンドウで、「」を選択します。
-
ページの右上隅で、ラベルとテイントの管理 をクリックします。ラベル タブで、宛先ノードにラベルを追加します。
この例では、名前 は pod で、値 は nginx です。
詳細については、「ノードラベルの作成と管理」をご参照ください。
ステップ 2: アプリケーションを特定のノードにスケジュールする
ACK コンソールにログインします。ACK コンソールの左側のナビゲーションウィンドウで、[クラスター] をクリックします。
-
[デプロイメント]ページで、[YAML のリソースの作成]をクリックして、
nodeSelectorを含む次のサンプル内容を使用してアプリケーションを作成します。apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment-basic labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: nodeSelector: pod: nginx # アプリケーションを宛先ノードでのみ実行するようにノードラベルを追加します。実際の値を使用してください。 containers: - name: nginx image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6 ports: - containerPort: 80 -
「デプロイメント」ページで、デプロイメントの名前をクリックします。「ポッド」タブで、Pod がスケジュールされるノードを確認します。
すべての Pod が
pod: nginxラベルを持つノードにスケジュールされている場合、スケジューリングは成功です。
参考資料
-
nodeSelectorの詳細については、「Pod のノードへの割り当て」をご参照ください。 -
アプリケーションを公開またはスケールアウトする際に、リソースポリシー (ResourcePolicy) をカスタマイズして、Pod スケジューリング順序を指定し、リバーススケールインを実装できます。詳細については、「弾性リソース優先スケジューリングのカスタマイズ」をご参照ください。