website/content/ja/docs/tasks/manage-daemon/create-daemon-set.md

3.1 KiB
Raw Blame History

title content_type weight
基本的なDaemonSetを構築する task 5

このページでは、Kubernetesクラスターの全てのード上でPodを実行する、基本的な{{< glossary_tooltip text="DaemonSet" term_id="daemonset" >}}を構築する方法について示します。 ホストからファイルをマウントし、Initコンテナを使用してその内容をログに記録して、pauseコンテナを利用するという単純なユースケースを取り上げます。

{{% heading "prerequisites" %}}

{{< include "task-tutorial-prereqs.md" >}}

DaemonSetの動作を示すために、少なくとも2つのード(1つのコントロールプレーンと1つのワーカーード)を持つKubernetesクラスターを用意します。

DaemonSetの定義

このタスクでは、Podのコピーが全てのード上でスケジュールされるようにする、基本的なDaemonSetが作成されます。 PodはInitコンテナを使用してホストから/etc/machine-idの内容を読み込んでログに記録し、メインのコンテナはPodを実行し続けるpauseコンテナとなります。

{{% code_sample file="application/basic-daemonset.yaml" %}}

  1. (YAML)マニフェストに基づいたDaemonSetを作成します:

    kubectl apply -f https://k8s.io/examples/application/basic-daemonset.yaml
    
  2. 適用すると、DaemonSetがクラスター内の全てのードでPodを実行していることを確認できます:

    kubectl get pods -o wide
    

    出力には、以下のようにード毎に1つのPodが一覧表示されます:

    NAME                                READY   STATUS    RESTARTS   AGE    IP       NODE
    example-daemonset-xxxxx             1/1     Running   0          5m     x.x.x.x  node-1
    example-daemonset-yyyyy             1/1     Running   0          5m     x.x.x.x  node-2
    
  3. ホストからマウントされたログディレクトリをチェックすることで、ログに記録された/etc/machine-idファイルの内容を調べることができます:

    kubectl exec <pod-name> -- cat /var/log/machine-id.log
    

    <pod-name>は1つのPodの名前です。

{{% heading "cleanup" %}}

DaemonSetを削除するためには、次のコマンドを実行します:

kubectl delete --cascade=foreground --ignore-not-found --now daemonsets/example-daemonset

この単純なDaemonSetの例では、Initコンテナやホストパスボリュームなどの主要なコンポーネントを紹介しており、より高度なユースケースに応じて拡張することができます。 詳細についてはDaemonSetを参照してください。

{{% heading "whatsnext" %}}