このトピックでは、Container Service コンソールで、特定のノードにポッドをスケジュールする方法について説明します。

ノードラベルを追加し、 nodeSelectorを設定すると、特定のノードにポッドをスケジュールできます。 nodeSelector の実装原則について詳しくは、『nodeselector』をご参照ください。

ビジネスシナリオのニーズに応じて、管理や制御に使用するサービスをマスターノードにデプロイしたり、SSD ディスクを持つマシンにサービスをデプロイするには、以下の方法を使用して、指定したノードにポッドをスケジューリングします。

前提条件

Kubernetes クラスターが作成されていること。 詳細は、「Kubernetes クラスターの作成」をご参照ください。

手順 1: ノードラベルの追加

  1. Container Service コンソール にログインします。
  2. Container Service-Kubernetes の左側のナビゲーションウインドウで、 [クラスター] > [ノード] を選択します。
  3. [クラスター] ドロップダウンリストからクラスターを選択し、右上隅の [ラベル管理] をクリックします。
  4. 対応するチェックボックスをオンにして 1 つ以上のノードを選択し、[タグの追加] をクリックします。 この例では、ワーカーノードを選択します。
  5. 表示されたダイアログボックスでラベルの名前と値を入力して、[OK] をクリックします。
    ノードラベル group:worker が、[ラベル管理] ページに表示されます。

kubectl label nodes <node-name> <label-key>=<label-value> コマンドを実行して、ノードラベルを追加することもできます。

手順 2: 指定したノードへポッドをデプロイする

  1. Container Service コンソール にログインします。
  2. Container Service-Kubernetes の左側のナビゲーションウィンドウで、[アプリケーション] > [デプロイメント] を選択します。
  3. 右上隅で、[テンプレートから作成] をクリックします。
  4. ポッドをデプロイするためのテンプレートを設定します。 設定が完了したら、[デプロイ] をクリックします。
    • クラスター: クラスターを選択します。
    • 名前空間: リソースオブジェクトが属する名前空間を選択します。 この例では、名前空間として "default" を使用します。
    • リソースタイプ: この例では、[カスタム] を選択します。

    この例のオーケストレーションテンプレートを以下に示します。

    apiVersion: v1
     kind: Pod
     metadata:
       labels:
         name: hello-pod
       name: hello-pod
     spec:
       containers:
         - image: nginx
           imagePullPolicy: IfNotPresent
           name: hello-pod
           ports:
             - containerPort: 8080
               protocol: TCP
           resources: {}
           securityContext:
             capabilities: {}
             privileged: false
           terminationMessagePath: /dev/termination-log
       dnsPolicy: ClusterFirst
       restartPolicy: Always
       nodeSelector:                    
         group: worker  ##The same as the node label configured in the preceding step.
     status :{}
  5. [デプロイ] をクリックすると、デプロイメントのステータスを示すメッセージが表示されます。 デプロイが成功したら、メッセージの中の [Kubernetes ダッシュボード] をクリックしてダッシュボードに移動し、デプロイ状況を確認します。
  6. ポッド名をクリックして、ポッドの詳細を表示します。
    ポッドラベルやノード ID などの情報が表示され、このポッドが group : worker というラベルのノードに正常にデプロイされたことを示しています。