kubernets之DaemonSet
阿新 • • 發佈:2020-12-23
一 k8s資源之DaemonSet
1.1 介紹認識DaemonSet
DaemonSet可以理解為一種比較特殊的RS,DaemonSet的作用是永遠保持被指定的節點只執行一個pod的副本,可用作叢集的監控和日誌收集等作用
另外一點的是,可能有些節點被設定為不可排程pod的時候,仍然可以使用DaemonSet來排程到該節點,因為DS可以繞過排程器進行排程到響應的節點上
二 建立一個DaemonSet
2.1 實現一個DaemonSet的yml的檔案來通過該檔案來建立一個DaemonSet
apiVersion: apps/v1beta2 kind: DaemonSet metadata: name: ex-daemonset spec: selector: matchLabels: app: k8s template: metadata: labels: app: k8s spec: # nodeSelector: # machine: centos containers: - name: main image: luksa/ssd-monitor
2.2 檢視創建出來的DaemonSet
[root@node01 Chapter04]# k get po --show-labels -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES LABELS ex-daemonset-dv4p5 1/1 Running 0 7m32s 10.244.1.11 node02 <none> <none> app=k8s,controller-revision-hash=697679dd9c,pod-template-generation=1 ex-daemonset-dzfjh 1/1 Running 0 7m32s 10.244.2.10 node01 <none> <none> app=k8s,controller-revision-hash=697679dd9c,pod-template-generation=1
可以看到即使沒指定副本數量,仍然在每個node上面創建出來了一個pod
2.3 指定DaemonSet到指定的node而非所有的node節點的配置
apiVersion: apps/v1beta2 kind: DaemonSet metadata: name: ex-daemonset spec: selector: matchLabels: app: k8s template: metadata: labels: app: k8s spec: nodeSelector: machine: centos containers: - name: main image: luksa/ssd-monitor
2.4 當設定了nodeSelector的時候只有node節點帶有machine的centos機器才會被排程上去
[root@node01 Chapter04]# k get ds NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE ex-daemonset 0 0 0 0 0 machine=centos 31s [root@node01 Chapter04]# k get po No resources found in default namespace.
可以看到當在建立的daemonset裡面新增nodeselector的時候,pod只會被排程到帶有標籤machine=centos的上面,而現在的節點都沒有該標籤,所以不會排程到任何節點上
2.5 修改其中一個node的標籤,觀察是否能夠排程到該節點上
[root@node01 Chapter04]# k label node node02 machine=centos node/node02 labeled
[root@node01 Chapter04]# k get po NAME READY STATUS RESTARTS AGE ex-daemonset-xbvhh 0/1 ContainerCreating 0 5s
當向node新增標籤之後,馬上就可以排程到該node節點了
2.6 刪除該node節點上面的標籤,觀察該pod是否也會被刪除
[root@node01 Chapter04]# k label node node02 machine=debian --overwrite node/node02 labeled
[root@node01 Chapter04]# k get po -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES ex-daemonset-xbvhh 1/1 Terminating 0 2m38s 10.244.1.13 node02 <none> <none>
可以看到當修改了標籤之後,由於node 的標籤已經不和DS匹配,響應的pod也被刪除