欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 【赵渝强老师】K8s的DaemonSets控制器

【赵渝强老师】K8s的DaemonSets控制器

2024/11/30 9:51:49 来源:https://blog.csdn.net/zhaoyuqiang/article/details/142418959  浏览:    关键词:【赵渝强老师】K8s的DaemonSets控制器

在这里插入图片描述

  DaemonSet控制器相当于在节点上启动了一个守护进程。通过使用DaemonSet可以确保一个Pod的副本运行在 Node节点上。如果有新的Node节点加入集群,DaemonSet也会自动给新加入的节点增加一个Pod的副本;反之,当有Node节点从集群中移除时,DaemonSet也可以保证将这些Pod自动回收。当删除 DaemonSet将会删除它创建的所有Pod。下面列举了DaemonSet控制器的一些典型的应用场景:

  • 使用DaemonSet控制器在节点上运行监控程序。
  • 使用DaemonSet控制器在节点上运行日志收集程序,如:fluentd和logstash。
  • 使用DaemonSet控制器运行Kubernetes的存储守护进程。

  Kubernetes允许在节点上针对不同的类型的守护进程单独启动一个DaemonSet;也允许针对不同的硬件指标,如CPU和内存,部署多个DaemonSet。

  视频讲解如下:

K8s的DaemonSets控制器

【赵渝强老师】K8s中的DaemonSet控制器

一、DaemonSet控制器的作用与创建

  下面将通过一个示例来演示如何DaemonSet的使用。
(1)创建daemonset-demo.yaml文件,并输入下面的内容:

apiVersion: apps/v1
kind: DaemonSet
metadata:name: daemonset-demonamespace: default
spec:minReadySeconds: 5selector:matchLabels:app: daemonsettemplate:metadata:name: daemonset-demonamespace: defaultlabels:app: daemonsetspec:containers:- name: daemonset-demo   image: nginximagePullPolicy: IfNotPresentports:- name: httpdcontainerPort: 80

(2)执行命令创建DaemonSet。

kubectl apply -f daemonset-demo.yaml

(3)查看DaemonSet的信息

kubectl get daemonset#提示:该命令可以简写成下面的形式:
kubectl get ds# 输出的信息如下图所示。从图中可以看出,
# 由于Kubernetes集群中有两个Node节点,
# 因此DaemonSet将会在每个Node节点启动一个Pod。

在这里插入图片描述

(4)查看Pod的信息。

kubectl get pods -o wide# 输出的信息如下图所示。

在这里插入图片描述

(5)删除daemonset

kubectl delete daemonset daemonset-demo

二、DaemonSets控制器的调度

  Kubernetes的调度器scheduler能够确保所有符合条件的Node节点都可以运行一个DaemonSets控制器管理的Pod。这也是Daemonsets控制器中Pod中默认的调度方式。但Kubernetes也允许使用DaemonSets控制器自己的调度器来创建和调度Pod。但由DaemonSets控制器来进行Pod的调度,可能会造成各个Node节点上Pod行为的不一致性。因为在正常情况下,当Pod被创建后,应该处于Pending状态等待被调度;但由DaemonSets控制器创建的Pod不会处于Pending状态下。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com