すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:DaemonSetを作成する

最終更新日:Oct 29, 2024

DaemonSetは、各ノードで1つのレプリケートポッドのみが実行されるようにします。 新しいノードがクラスターに追加された場合、ポッドはそのノードにスケジュールされます。 DaemonSetを使用して、各ノードでログ収集デーモン、監視デーモン、またはシステム管理デーモンを実行できます。 このトピックでは、Container Service for Kubernetes (ACK) クラスターのDaemonSetを作成する方法について説明します。

前提条件

手順

ACKコンソールまたはkubectlを使用してDaemonSetを作成できます。

ACKコンソールでDaemonSetを作成する

イメージからDaemonSetを作成する

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ワークロード] > [DaemonSets] を選択します。

  3. の右上隅にDaemonSetsページをクリックします。イメージから作成.

  4. DaemonSetのパラメーターを設定します。

    1. [基本情報] ステップで、アプリケーションの基本設定を行います。 パラメーターの詳細については、「イメージからのデプロイの作成」をご参照ください。

    2. [コンテナー] ステップで、1つ以上のコンテナーを設定します。 パラメーターの詳細については、「イメージからのデプロイの作成」をご参照ください。

    3. [詳細] ステップで、DaemonSetの詳細設定を構成します。

      DaemonSetは、スケジュール不可状態のノードにポッドをスケジュールできます。 特定のノードでのみポッドを実行するには、ノードアフィニティ、ポッドアフィニティ、または許容範囲ルールを設定します。 パラメーターの詳細については、「イメージからのデプロイの作成」をご参照ください。

  5. クリック作成.

    DaemonSetが作成されたら、DaemonSetページでDaemonSetを表示できます。

    説明

    DaemonSetsページで、[一括再デプロイ] を選択して、複数のDaemonSetsを再デプロイします。

YAMLテンプレートからDaemonSetを作成する

  1. の右上隅にDaemonSetsページをクリックします。YAMLから作成する.

  2. On the作成ページでDaemonSetを設定します。テンプレートセクションにアクセスします。

  3. の下部にテンプレートセクション、をクリック作成.

    DaemonSetが作成されたら、DaemonSetページでDaemonSetを表示できます。

kubectlを使用してDaemonSetを作成する

DaemonSetは、スケジュール不可状態のノードにポッドをスケジュールできます。 指定したノードでのみポッドを実行するには、次のパラメーターを設定します。

パラメーター

説明

nodeSelector

ポッドは、指定されたラベルを持つノードにのみスケジュールされます。

nodeAffinity

ノードのアフィニティ ポッドは、ノードラベルに基づいてノードにスケジュールされます。 ノードアフィニティを使用すると、他のマッチングルールを設定できます。

podAffinity

ポッド親和性。 ポッドは、ポッドラベルに基づいてノードにスケジュールされます。 ポッドは、アフィニティルールに一致するポッドを実行するノードにのみスケジュールされます。

kubectlを使用してDaemonSetを作成する方法を示すために、この例ではfluentd-elasticsearchという名前のDaemonSetを作成します。

  1. daemonset.yamlという名前のファイルを作成し、次の内容をファイルにコピーします。

    apiVersion: apps/v1
    種類: DaemonSet
    メタデータ:
      名前: fluentd-elasticsearch
      namespace: kube-system
      ラベル:
        k8s-app: fluentd-logging
    spec:
      セレクタ:
        matchLabels:
          名前: fluentd-elasticsearch
      template:
        メタデータ:
          ラベル:
            名前: fluentd-elasticsearch
        仕様:
          寛容:
          # この許容範囲は、マスターノードでデーモンセットを実行できるようにすることです
          # マスターがポッドを実行できない場合は削除します
          - key: node-role.kubernetes.io/master
            effect: NoSchedule
          コンテナ:
          -名前: fluentd-elasticsearch
            画像: quay.io/fluentd_elasticsearch/fluentd:v2.5.2
            resources:
              limits:
                memory: 200Mi
              requests:
                cpu: 100m
                memory: 200Mi
            volumeMounts:
            -name: varlog
              mountPath: /var/log
            -name: varlibdockercontainers
              mountPath: /var/lib/docker/containers
              readOnly: true
          terminationGracePeriodSeconds: 30
          volumes:
          -name: varlog
            hostPath:
              path: /var/log
          -name: varlibdockercontainers
            hostPath:
              パス: /var/lib/docker/containers 
  2. 次のコマンドを実行してDaemonSetを作成します。

    kubectl create -f daemonset.yaml

    daemonset.apps/fluentd-elasticsearch createdが返された場合、DaemonSetが作成されます。

次のステップ

DaemonSetを作成したら、次の操作を実行できます。

  • [DaemonSets] ページで、[Label] フィールドをクリックし、アプリケーションに指定したキーを入力し、[OK] をクリックしてアプリケーションをフィルタリングします。

  • [DaemonSets] ページで、作成したDaemonSetを見つけ、[操作] 列の [詳細] をクリックします。 詳細ページでは、DaemonSetに関する基本情報を表示できます。 情報には、ポッド、アクセス方法、イベント、およびログが含まれます。

  • [DaemonSets] ページで、作成したDaemonSetを見つけ、[操作] 列の [詳細] > [YAMLで表示] を選択して、DaemonSetのYAMLファイルを表示します。 [詳細] > [削除] を選択して、DaemonSetを削除することもできます。