共計 881 個字符,預計需要花費 3 分鐘才能閱讀完成。
如何理解 DaemonSet,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
DaemonSet 是一種面向特定應用場景的 Pod 控制器,盡管它也可以管理 Pod 的多個副本,但它主要用于保證一個 Node 上只運行一個 Pod 的場景,如下圖所示:
DaemonSet 可以確保一個 Node 上最多只運行一個 Pod 副本,進一步說,DaemonSet 可以選擇特定類型的 Node 來部署 Pod。此處,當選定類型的 Node 加入集群時,該 Node 會自動運行一個新的 Pod 副本,并且當該 Node 被刪除時,相應的 Pod 也會被刪除,而不會在其他 Node 上重建。
應用場景
DaemonSet 可以確保每個工作節點上最多運行一個應用副本,這個應用副本類似于 Linux 操作系統中的 daemon 進程,這也正是 DaemonSet 名稱的由來。
DaemonSet 通常用于管理那些執行系統級的應用,比如:
每個工作節點運行一個存儲服務,供該工作節點上其他應用使用;
每個工作節點運行一個日志收集服務,用于收集該節點上的運行日志;
每個工作節點運行一個監控指標收集服務,用于提供該節點的監控信息;
配置格式
我們先看一個簡單的 DaemonSet 配置:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: nginx-daemonset
labels:
app: nginx
spec:
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.19.0
初步看,這份配置跟 Deployment 基本類似,唯一一個顯著的差異是 DaemonSet 不需要指定副本數,因為它的副本數取決于工作節點數。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注丸趣 TV 行業資訊頻道,感謝您對丸趣 TV 的支持。