ToB企服应用市场:ToB评测及商务社交产业平台

标题: k8s中控制器DaemonSet简介及用法 [打印本页]

作者: 立山    时间: 2024-7-12 11:25
标题: k8s中控制器DaemonSet简介及用法
一、简介
在 Kubernetes 中,DaemonSet 是一种控制器范例,用于确保集群中的每个节点运行一个特定的 Pod 实例。通常环境下,DaemonSet 被用来在集群的每个节点上运行一个特定的系统服务大概应用步伐副本,例如日志收集器(如 Fluentd 或 Filebeat)、监控署理(如 Prometheus Node Exporter)、存储办理方案(如 Ceph 的 OSD 部署)等。
二、主要用途
确保每个节点上运行相同的 Pod 实例:
DaemonSet 确保在集群的每个节点上都有一个 Pod 的副本在运行,从而保证了特定使命或服务在整个集群中的广泛性。
   1.节点级别的使命部署:
可以用来在每个节点上运行具有特定设置的使命,例如日志收集、监控等使命,这些使命通常需要与节点自己密切关联。
2.服务发现和负载平衡:
在某些环境下,DaemonSet 可以用于运行网络服务或负载平衡器的实例,以便每个节点都可以直接处理惩罚来自外部的流量。
3.更新和升级:
DaemonSet 也支持更新和升级,可以通过更改 Pod 模板或镜像来进行滚动更新,确保新的设置或版本可以安全地应用到每个节点。
DaemonSet 的主要作用,是让你在 k8s 集群里,运行一个 Daemon Pod。
  这个 Pod 有如下三个特性:
     举例:
   各种网络插件的 Agent 组件,都必须运行在每一个节点上,用来处理惩罚这个节点上的容器网络;
  各种存储插件的 Agent 组件,也必须运行在每一个节点上,用来在这个节点上挂载远程存储目次,操作容器的 Volume 目次;
  各种监控组件和日志组件,也必须运行在每一个节点上,负责这个节点上的监控信息和日志搜集。
  三、示例
以下是一个简化的 DaemonSet 示例 YAML 文件,用于在每个节点上运行一个日志收集器:
  1. apiVersion: apps/v1
  2. kind: DaemonSet
  3. metadata:
  4.   name: fluentd
  5.   namespace: kube-system
  6. spec:
  7.   selector:
  8.     matchLabels:
  9.       app: fluentd
  10.   template:
  11.     metadata:
  12.       labels:
  13.         app: fluentd
  14.     spec:
  15.       containers:
  16.       - name: fluentd
  17.         image: fluentd:v1.0.0
  18.         volumeMounts:
  19.         - name: varlog
  20.           mountPath: /var/log
  21.         - name: varlibdockercontainers
  22.           mountPath: /var/lib/docker/containers
  23.           readOnly: true
  24.       volumes:
  25.       - name: varlog
  26.         hostPath:
  27.           path: /var/log
  28.       - name: varlibdockercontainers
  29.         hostPath:
  30.           path: /var/lib/docker/containers
复制代码
表明

创建 DaemonSet 对象

  1. kubectl create -f fluentd-elasticsearch.yaml
复制代码
检察 DaemonSet 对象

  1. [root@k8s-master set]# kubectl get ds -n kube-system fluentd-elasticsearch
  2. NAME                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
  3. fluentd-elasticsearch   3         3         3       3            3           <none>          22m
复制代码
注:k8s 里比力长的 API 对象都有短名字,比如 DaemonSet 对应的是 ds,Deployment 对应的是 deploy。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4