淺談K8S DaemonSet

更新於 2024/10/11閱讀時間約 6 分鐘

今天繼續來說明一個很重要的元件:DaemonSet

所謂daemonset,簡單來說就是在每個節點上部署一個Pod副本。當今天有新的主機節點加入時,就自動再上面部署一個Pod副本。移除節點時,也會自動將Pod副本移除。

與一般Pod副本不同的是,DaemonSet類型的Pod是由DeamonSet controller提前決定Pod要部署在那個地方運行。

一個蘿蔔一個坑

一個蘿蔔一個坑

Note: 如果要指定那個節點不能讓DeamonSet Pod部署時,可以對該節點打上taint

1. 架構

raw-image

DaemonSet 是 Kubernetes 中一種工作負載的形式,確保所有(或部分)節點運行特定 Pod 的複本。它們通常用於部署系統守護程序、日誌收集器或其他背景任務,以確保集群中的每個節點運行這些 Pod。

DaemonSet 的主要特點包括:

  1. 節點關聯性: DaemonSet 使用節點選擇器(nodeSelector)或節點親和性規則來確定應該在哪些節點上安排 Pod。
  2. 維護和擴展: 當節點添加或移除時,DaemonSet 會自動調整,確保每個節點上都運行一個 Pod。
  3. 自我修復: 如果節點故障或新增節點,DaemonSet 會自動替換受影響節點上的 Pod,以保持所需的狀態。
  4. 集群級部署: DaemonSet 確保特定的 Pod 在所有合格的節點上運行,非常適用於處理集群級任務。

DaemonSet 是 Kubernetes 中的一個關鍵資源,用於管理背景服務,確保特定的 Pod 在集群中的每個節點上運行。

2. 測試

#-----------------------------------------------
# S2-1. 在每一個節點部署一個nginx pod
#-----------------------------------------------
[master]# kubectl create ns nginx-ds
[master]# vim nginx-ds.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: nginx-ds
namespace: nginx-ds
spec:
selector:
matchLabels:
k8s-app: nginx
template:
metadata:
labels:
k8s-app: nginx
spec:
containers:
- image: nginx:1.7.9
name: nginx
ports:
- name: http
containerPort: 80

[master]# kubectl create -f nginx-ds.yaml -n nginx-ds
[master]# kubectl get nodes; kubectl get pod -l k8s-app=nginx -o wide -n nginx-ds
raw-image
#-----------------------------------------------
# S2-2. 確認節點是否有打上taints
#-----------------------------------------------
[master]# kubectl describe node master01 | grep Taints
[master]# kubectl describe node master02 | grep Taints
[master]# kubectl describe node master03 | grep Taints
[master]# kubectl describe node worker01 | grep Taints
[master]# kubectl describe node worker02| grep Taints
raw-image

3. 如何確保每個Node都只有一個被管理的Pod

每個節點都自動安排一個服務

每個節點都自動安排一個服務

  • DaemonSet controller從ETCD取得所有的Node列表,對每個node做review
  • 根據CRD的定義是否有schedule相關的配置,然後分別檢查Node是否符合要求
  • 在可運行的Pod節點上檢查是否已經有對應的Pod存在。如果沒有就在該Node建立Pod。如果有且數量大於1就會把多餘的Pod從節點上刪除。


4. 常見的應用情境

每個節點都需要監控

  • 日誌收集和監控:當你需要在每個節點上運行一個日誌或監控代理,DaemonSet可以確保每個節點都有這個代理運行,從而集中收集系統日誌或應用程序指標。例如Prometheus監控集群,在每個節點上都運行一個node-exporter來收集監控節點的訊息,或是fluented, logstash。在每個節點上運行以收集容器的日誌。
  • 網路代理:對於需要節點級網路代理的應用程序,如CNI,你可以使用DaemonSet確保每個節點都運行這個代理。例如flannel, calico。在每個節點上運行為Pod提供網路服務
  • 分佈式存儲:當你需要在每個節點上運行分佈式存儲代理,以實現數據持久性和可用性,DaemonSet也非常適用。例如glusterd, ceph 要部署在每個節點上以提供持久性儲存。
  • 應用程式資料庫:對於某些應用程式,每個節點可能需要本地存儲或快取資料庫的副本。DaemonSet可以確保這些副本在每個節點上運行。
  • Node-Level操作:當你需要執行僅涉及單個節點的操作時,如特定節點的升級或清理,DaemonSet可以幫助你在每個節點上執行操作。


5. 結論

DaemonSet在許多容器化的應用服務是很常見的,這裡簡單說明了一些基本觀念與常見的情境,不管是管理或是開發人員都可以在理解這些觀念後對於容器化應用的運營和管理提供了極大的幫助。熟練 DaemonSet 的使用,也有助於確保服務在整個集群中保持一致性。


avatar-img
15會員
40內容數
記錄IT社畜的自我學習筆記,如同專題名稱,主要是怕自已忘記自已做過什麼、學到什麼。索性就分享我自已在學習Kubernetes這條路上的各種測試、學習心得。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
超健忘閒人的沙龍 的其他內容
本文將說明關於Local volume 與hostPath二種類型的差異與一些注意事項。
因為想要使用FQDN的方式連接到Kubernetes cluster內部的應用服務,加上早已使用Linux Bind為測試環境的主要DNS
今天分別針對3個基本中的基本資源物件類型來說明
在建置完Kubernetes cluster之後,通常我會做的前幾件事之一就是建立一個StorageClass給應用服務使用,而NFS我認為是相對容易實現的做法。
本文針對Kubernetes內最基本的資源(cpu, ram, disk)的計算單位與一些實務操作,分享給自已與大家做參考。
本次分享一個K8S網路的一個很重要的元件:Ingress。 有沒有ingress差別在那?
本文將說明關於Local volume 與hostPath二種類型的差異與一些注意事項。
因為想要使用FQDN的方式連接到Kubernetes cluster內部的應用服務,加上早已使用Linux Bind為測試環境的主要DNS
今天分別針對3個基本中的基本資源物件類型來說明
在建置完Kubernetes cluster之後,通常我會做的前幾件事之一就是建立一個StorageClass給應用服務使用,而NFS我認為是相對容易實現的做法。
本文針對Kubernetes內最基本的資源(cpu, ram, disk)的計算單位與一些實務操作,分享給自已與大家做參考。
本次分享一個K8S網路的一個很重要的元件:Ingress。 有沒有ingress差別在那?
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
為什麼有些中、英術語很難望文生義,很難從中、英詞彙的表面意思對應起來?這種情況,又該如何記住呢? 本文以「融資」、「融券」為例,為你頗析!
命理中財代表理性和現實,也代表女人的感情線,所以破財的男人較情緒化;而破財的女人較不溫柔且敢愛敢恨,而要改善這種困境可以用官殺的特質來讓財脫困,男人可以在工作上努力及女人可以交男朋友來讓自己變溫柔,而財也代表我管的東西及地位較低的人,所以破財也會看不起地位低的人或破壞物品。 若出現財破印則會有自大
近期放下了所有 搬離了生活29年的台中 道道地地的台中人一枚 許多朋友不知道 第一眼還以為我來自台北 可能長期相處的都是台北的朋友 所以多多少少有被影響 今天會談到心理創傷 起因在於 我家那個好妹妹 由三觀碎的渣都不剩的我 回來談這事就有點...小題大作 讓我哭笑不得 我的家 不同
Threads有點像好幾年前發展起來的臉書,但我覺得它的演算法推播更精準,很容易抓到用戶喜歡看的東西跟類型,甚至一些擦到邊你可能有興趣的,都有機會很快抓到你的注意力。 並且因為它可以直接跟IG帳號連動,所以一些商家或是老師從上面獲取到訂單跟詢問的機會非常高 (至少從我推廣自己的群組跟YT頻道算是頗
透過C#將即時報價轉換成K棒,並介紹一些需要注意的問題。
Thumbnail
人的修行到了一定阶段,就会经历虚幻的过程,这些幻象是真是存在的,是虚空法界的东西,但是如果修行人做到有足够的定力,也即使人在幻象阶段,也能做到明辨是非,知道什么是对的,什么是错的。 若是错的,在幻象里的,那就不要去做。 在现实当中,也不要把虚空法界的东西当成现实,不能作真像去看待。
Thumbnail
很早期的学生,会听我讲过“缘法”。会知道要用“缘法”去看问题。但“缘法”究竟详细说的是什么?大家可能还是一知半解。 而隨着大家了解的东西越多,越來越觉得需要往上修,增加无漏功德,然后自己真的变好了时。突然就会想到一个问题,今生我能有这改变,有这些助力,全因为碰到我在讲这些东西,也因为我在讲的时候,
Thumbnail
倪海厦老师在天纪中提到了很多种断卦方法,这里只选取几个简单的方法进行概括,总结和简化,没有任何关于倪海厦老师知识的文章可以比得上倪海厦老师的原视频,建议各位看官从原视频中吸取更多好方法。
昨晚睡觉前,我把手机放在枕头边,躺在床上,听Youtbue 上,一位叫做LT视界的大咖讲解沈栋发表的《红色赌盘》中的一些细节。 这位大咖的分析非常到位。我之前也听过很多沈栋在台湾的访谈节目。我当初对于这位作者的印象还不错,觉得他思路很敏捷,谈吐不凡,见识广,的确是很有感染力,吸引力和洞察力。是个了不
今日看到一句话让我感触颇深,想到了成长与经历这些字眼,觉得有道理便记下这段话; 离群索居者,不是野兽便是神灵。 尤其是在学生时代这种感觉尤为强烈,却不知都是一群连价值观都没形成的孩子。这种现象在学校中尤为突出。 被孤立的人啊!愿你成为上帝的宠儿。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
為什麼有些中、英術語很難望文生義,很難從中、英詞彙的表面意思對應起來?這種情況,又該如何記住呢? 本文以「融資」、「融券」為例,為你頗析!
命理中財代表理性和現實,也代表女人的感情線,所以破財的男人較情緒化;而破財的女人較不溫柔且敢愛敢恨,而要改善這種困境可以用官殺的特質來讓財脫困,男人可以在工作上努力及女人可以交男朋友來讓自己變溫柔,而財也代表我管的東西及地位較低的人,所以破財也會看不起地位低的人或破壞物品。 若出現財破印則會有自大
近期放下了所有 搬離了生活29年的台中 道道地地的台中人一枚 許多朋友不知道 第一眼還以為我來自台北 可能長期相處的都是台北的朋友 所以多多少少有被影響 今天會談到心理創傷 起因在於 我家那個好妹妹 由三觀碎的渣都不剩的我 回來談這事就有點...小題大作 讓我哭笑不得 我的家 不同
Threads有點像好幾年前發展起來的臉書,但我覺得它的演算法推播更精準,很容易抓到用戶喜歡看的東西跟類型,甚至一些擦到邊你可能有興趣的,都有機會很快抓到你的注意力。 並且因為它可以直接跟IG帳號連動,所以一些商家或是老師從上面獲取到訂單跟詢問的機會非常高 (至少從我推廣自己的群組跟YT頻道算是頗
透過C#將即時報價轉換成K棒,並介紹一些需要注意的問題。
Thumbnail
人的修行到了一定阶段,就会经历虚幻的过程,这些幻象是真是存在的,是虚空法界的东西,但是如果修行人做到有足够的定力,也即使人在幻象阶段,也能做到明辨是非,知道什么是对的,什么是错的。 若是错的,在幻象里的,那就不要去做。 在现实当中,也不要把虚空法界的东西当成现实,不能作真像去看待。
Thumbnail
很早期的学生,会听我讲过“缘法”。会知道要用“缘法”去看问题。但“缘法”究竟详细说的是什么?大家可能还是一知半解。 而隨着大家了解的东西越多,越來越觉得需要往上修,增加无漏功德,然后自己真的变好了时。突然就会想到一个问题,今生我能有这改变,有这些助力,全因为碰到我在讲这些东西,也因为我在讲的时候,
Thumbnail
倪海厦老师在天纪中提到了很多种断卦方法,这里只选取几个简单的方法进行概括,总结和简化,没有任何关于倪海厦老师知识的文章可以比得上倪海厦老师的原视频,建议各位看官从原视频中吸取更多好方法。
昨晚睡觉前,我把手机放在枕头边,躺在床上,听Youtbue 上,一位叫做LT视界的大咖讲解沈栋发表的《红色赌盘》中的一些细节。 这位大咖的分析非常到位。我之前也听过很多沈栋在台湾的访谈节目。我当初对于这位作者的印象还不错,觉得他思路很敏捷,谈吐不凡,见识广,的确是很有感染力,吸引力和洞察力。是个了不
今日看到一句话让我感触颇深,想到了成长与经历这些字眼,觉得有道理便记下这段话; 离群索居者,不是野兽便是神灵。 尤其是在学生时代这种感觉尤为强烈,却不知都是一群连价值观都没形成的孩子。这种现象在学校中尤为突出。 被孤立的人啊!愿你成为上帝的宠儿。