本文首發於個人公衆號 Linux雲計算網絡(id: cloud_dev),專一於乾貨分享,號內有 10T 書籍和視頻資源,後臺回覆「1024」便可領取,歡迎你們關注,二維碼文末能夠掃。git
Hi,你們好,歡迎你們和我一塊兒學 K8S,這是系列第 9 篇。github
和上文中的 Deployment 同樣,DaemonSet 也是一種副本管理機制,和 Deployment 能夠在每一個 Node 上運行好幾個 Pod 副本不一樣的是,DaemonSet 始終保證每一個 Node 最多隻會運行一個副本,就像它的名稱同樣,做爲一隻看門狗(Daemon)守護在主人家裏。編程
那麼,哪些應用適合用 DaemonSet 的方式來部署呢?後端
主要有如下幾類:網絡
其中,系統管理類的應用主要是 K8S 自身的一些系統組件,咱們能夠經過 kubectl get daemonset --namespace=kube-system
查看到:負載均衡
DaemonSet kube-proxy
和 kube-flannel-ds
有 3 個副本,分別負責在每一個節點上運行 kube-proxy 和 flannel 組件。工具
kube-proxy 前面的文章講過,它有負載均衡的功能,主要將外部對 Service 的訪問導向後端的 Pod 上。顯然,一個 Node 運行一個負載均衡器足矣。雲計算
咱們能夠經過 kubectl edit daemonset kube-proxy --namespace=kube-system
來查看 kube-proxy 的 yaml 配置文件。spa
能夠看到它的 kind 是 DaemonSet。插件
接着再來看 kube-flannel-ds,這是一個網絡插件組件,主要用於構建 K8S 的集羣網絡,這裏你們不懂能夠跳過,不影響本文的理解,後面在講到 K8S 網絡的時候會重點講這個網絡方案。
這裏咱們只須要知道,各個 Pod 間的網絡連通就是 flannel 來實現的。
這是一個第三方的插件,咱們能夠直接下載它的 yaml 文件進行安裝,執行下面的命令:
wget https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml
獲得 kube-flannel.yml 文件:
這裏只列出了一部份內容,kind 類型是 DaemonSet。
其實 DaemonSet 配置文件的語法和結構和 Deployment 幾乎徹底同樣,不一樣就在於將 kind 設爲 DaemonSet。
OK,DaemonSet 的探討就到這裏,下文咱們繼續討論另一種 Controller:Job。
個人公衆號 「Linux雲計算網絡」(id: cloud_dev) ,號內有 10T 書籍和視頻資源,後臺回覆 「1024」 便可領取,分享的內容包括但不限於 Linux、網絡、雲計算虛擬化、容器Docker、OpenStack、Kubernetes、工具、SDN、OVS、DPDK、Go、Python、C/C++編程技術等內容,歡迎你們關注。