守護進程
更新時間 2024-09-05 11:09:34
最近更新時間: 2024-09-05 11:09:34
分享文章
本節介紹了守護進程的用戶指南。
基本概念
創建守護進程集:即kubernetes中的“DaemonSet”,守護進程集確保全部(或者某些)節點都運行一個Pod實例,支持實例動態添加到新節點,適用于實例在每個節點上都需要運行的場景,如ceph、fluentd、Prometheus Node Exporter等。
操作場景
守護進程集(DaemonSet)可以確保全部(或者某些)節點上僅運行一個Pod實例,當有節點加入集群時,也會為他們新增一個 Pod。當有節點從集群移除時,這些Pod也會被回收。刪除 DaemonSet 將會刪除它創建的所有Pod。
使用DaemonSet的一些典型用法:
- 運行集群存儲daemon,例如在每個節點上運行glusterd、ceph。
- 在每個節點上運行日志收集daemon,例如fluentd、logstash。
- 在每個節點上運行監控daemon,例如Prometheus Node Exporter、collectd、Datadog代理、New Relic代理,或Ganglia gmond。
一種簡單的用法是為每種類型的守護進程在所有的節點上都啟動一個DaemonSet。一個稍微復雜的用法是為同一種守護進程部署多個DaemonSet;每個具有不同的標志, 并且對不同硬件類型具有不同的內存、CPU要求。
前提條件
在創建守護進程集前,您需要存在一個可用集群。若沒有可用集群,請參照集群開通中內容創建。
操作步驟及說明
創建DaemonSet與創建Deployment的過程類似,僅升級方式有差異,需要注意:

- 刪除升級(不推薦這種升級方式):如果設置DaemonSet的升級方式為刪除升級,那么我們全量替換升級DaemonSet時,全量替換更新的內容在我們重新部署Pods前是不會生效的。
- 滾動升級:如果設置DaemonSet的升級方式為滾動升級,那么我們全量替換升級DaemonSet時,k8s會自動幫我們刪除重建DaemonSet的每一個Pod,此時有一個可選的參數MaxUnavailable。MaxUnavailable:設置升級過程中最多有多少個Pod處于不可用狀態,默認值為1。