k8s初級實戰04--DaemonSet & Static Pod
阿新 • • 發佈:2020-12-27
技術標籤:K8S & DockerDaemonSetStatic PodKubernetes
k8s初級實戰04--DaemonSet & Static Pod
1 基礎概念
-
DaemonSet
DaemonSet 保證在每個 Node 上都執行一個容器副本,常用來部署一些叢集的日誌、監控或者其他系統管理應用。典型的應用包括:
日誌收集,比如 fluentd,logstash 等;
系統監控,比如 Prometheus Node Exporter,collectd,New Relic agent,Ganglia gmond 等; -
Static Pod
Static Pod 可以讓每臺機器上執行指定的 Pod,這需要 kubelet 在啟動的時候指定 manifest 目錄,然後將所需要的 Pod 定義檔案放到指定的 manifest 目錄中。
2 常見用法
2.1 DaemonSet
-
建立 ds
vim dpl-my-web-ds.yaml apiVersion: apps/v1 kind: DaemonSet metadata: labels: app: my-web-ds name: my-web-
-
檢視 ds
$ kubectl get ds 或 kubectl get daemonset NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE my-web-ds 2 2 2 2 2 <none> 83s
-
刪除 ds
$ kubectl delete daemonsets my-web-ds daemonset.apps "my-web-ds" deleted 或者 $ kubectl delete -f dpl-my-web-ds.yaml
2.2 Static Pod
- 建立static pod
如下圖,該pod的控制器為Node,而普通的pod控制器為ReplicaSet。vim pod-my-web-sp.yaml apiVersion: v1 kind: Pod metadata: labels: run: my-web-sp name: my-web-sp spec: containers: - image: nginx:1.19.4 name: my-web-sp ports: - containerPort: 80 拷貝該pod到 /etc/kubernetes/manifests/ 目錄,過一會兒指定節點會自動拉起該pod cp pod-my-web-sp.yaml /etc/kubernetes/manifests/
- 檢視static pod
和檢視正常pod一樣檢視static pod即可$ kubectl get pod|grep sp my-web-sp-kmaster 1/1 Running 1 4s pod 名稱為 yaml中pod名稱-節點名稱
- 刪除static pod
$ kubectl delete pod my-web-sp-kmaster 提示 pod NotFound,因此無法對該pod執行任何操作; rm /etc/kubernetes/manifests/pod-my-web-sp.yaml 後,該pod過一會自動刪除;
3 注意事項
- 靜態 Pod 不能通過 API Server 來刪除,但可以通過刪除 manifest 檔案來自動刪除對應的 Pod。
4 說明
Concepts->Workloads->Workload Resources->DaemonSet
Kubernetes 指南-DaemonSet