このセクションでは、DaemonSet の作成について紹介します。 DaemonSet は各ノードに Pod を一つずつ配置するリソースとなります。そのため、各 Pod が出力するログをホスト単位で収集する Fluetd や、各 Pod のリソース使用状況やノードの状態をモニタリングする Datadog など、全 Node 上で必ず動作させたいプロセスのために使用することができます。
サンプルのマニフェストファイルを新規作成し、以下コードを記述します。
[root@kube-master sample-daemonset]# vi sample-daemonset.yaml
kind に DaemonSet を指定します。
apiVersion: apps/v1 kind: DaemonSet metadata: name: sample-daemonset spec: selector: matchLabels: app: sample-app template: metadata: labels: app: sample-app spec: containers: - name: nginx-container image: nginx:1.12
Master サーバーから 作成したマニフェストを実行し、Kubernetes クラスタ上にリソースを作成します。
[root@kube-master sample-daemonset]# kubectl apply -f sample-daemonset.yaml daemonset.apps/sample-daemonset created [root@kube-master sample-daemonset]#
Master サーバーから Kubernetes クラスタ上の Pod リソースを確認します。各ノードに Pod が 一つずつ起動していることが確認できます。
[root@kube-master sample-daemonset]# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES sample-daemonset-fx849 1/1 Running 0 12s 10.244.1.148 kube-work1 <none> <none> sample-daemonset-gt9sh 1/1 Running 0 12s 10.244.2.77 kube-work2 <none> <none> [root@kube-master sample-daemonset]#
Master サーバーから 作成した DaemonSet リソースを削除します。
[root@kube-master sample-daemonset]# kubectl delete daemonset sample-daemonset daemonset.extensions "sample-daemonset" deleted [root@kube-master sample-daemonset]#
Master サーバーから Kubernetes クラスタ上の Pod リソースを確認します。ここでは、DaemonSet リソースで作成した Pod が削除されていることが確認できます。
[root@kube-master sample-daemonset]# kubectl get pods -o wide No resources found. [root@kube-master sample-daemonset]#