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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: DaemonSet控制器确保每个节点上运行一个Pod副本,适用于监控、日志收集等场景。通过示例创建DaemonSet并查看Pod信息,展示了其自动扩展和回收的能力。视频讲解和代码示例详细说明了DaemonSet的使用方法和调度机制。

b122.png

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


下面列举了DaemonSet控制器的一些典型的应用场景:

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


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


视频讲解如下:


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


下面将通过一个示例来演示如何DaemonSet的使用。


(1)创建daemonset-demo.yaml文件,并输入下面的内容:

apiVersion: apps/v1
kind: DaemonSet
metadata:
    name: daemonset-demo
    namespace: default
spec:
    minReadySeconds: 5
    selector:
        matchLabels:
            app: daemonset
    template:
        metadata:
            name: daemonset-demo
            namespace: default
            labels:
                app: daemonset
        spec:
            containers:
                - name: daemonset-demo   
                  image: nginx
                  imagePullPolicy: IfNotPresent
                  ports:
                    - name: httpd
                      containerPort: 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状态下。


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
存储 Kubernetes 调度
了解pod和pod的生命周期-这一篇文章就够了
了解pod和pod的生命周期-这一篇文章就够了
了解pod和pod的生命周期-这一篇文章就够了
|
Kubernetes 安全 Linux
Pod必备知识: SecurityContexts
Security Context主要用于限制容器的行为,从而保障系统和其他容器的安全。这一块的能力不是 Kubernetes 或者容器 runtime 本身的能力,而是 Kubernetes 和 runtime 通过用户的配置,最后下传到内核里,再通过内核的机制让 SecurityContext 来生效。所以这里介绍的内容,会比较简单或者说比较抽象一点。 1.容器级别的Security Context:仅对指定容器生效 2.Pod级别的Security Context:对指定Pod中的所有容器生效 3.Pod Security Policies(PSP):对集群内所有Pod生效
1620 0
Pod必备知识: SecurityContexts
|
15小时前
|
Kubernetes 应用服务中间件 nginx
【赵渝强老师】K8s中的Deployment控制器
Kubernetes中的Deployment用于部署无状态应用程序,管理Pod的数量、更新方式和资源限制。通过创建和管理ReplicaSet,Deployment可以实现Pod的自动扩缩容、滚动更新和回滚。本文介绍了Deployment的基本概念,并通过一个具体的示例演示了如何使用Deployment创建、更新和管理Pod。
|
15小时前
|
Kubernetes 双11 容器
【赵渝强老师】Kubernetes中的控制器
Kubernetes通过控制器管理Pod的生命周期,以应对不同场景需求,如Deployment、DaemonSet、Job等。控制器可自动调整Pod数量和重启故障Pod,确保系统稳定运行。视频讲解和详细内容见下文。
|
14小时前
|
Kubernetes Linux 调度
【赵渝强老师】K8s的周期性任务控制器CronJob
本文介绍了K8s中的CronJob控制器,它类似于Linux的crontab命令,用于管理和调度定时作业。CronJob可以设置在未来某一时间运行作业一次或在指定时间点重复运行作业。文章通过一个示例展示了如何创建和使用CronJob控制器,包括创建配置文件、应用配置、查看Pod信息和日志等步骤。同时,还解释了CronJob的时间表示方式及其限制。
|
14小时前
|
存储 Kubernetes 调度
【赵渝强老师】K8s中Deployment控制器与StatefulSet控制器的区别
K8s中的Deployment控制器用于管理无状态应用程序,关注Pod数量、更新方式等;而StatefulSets控制器则管理有状态应用程序,提供持久存储和唯一标识符,适用于需要稳定网络标识符和持久化存储的场景。两者的主要区别在于是否维护状态和顺序。
|
6月前
|
运维 Kubernetes Linux
Kubernetes详解(二十一)——ReplicaSet控制器实战应用
Kubernetes详解(二十一)——ReplicaSet控制器实战应用
130 2
|
6月前
|
弹性计算 运维 Kubernetes
Kubernetes详解(二十)——ReplicaSet控制器
Kubernetes详解(二十)——ReplicaSet控制器
69 1
|
Kubernetes 固态存储 API
【k8s 系列】k8s 学习十八,replicaSet,DaemonSet and Job
上一篇讲到的 ReplicationController 是用于复制和在异常的时候重新调度节点的 K8S 组件,后面 K8S 又引入了 ReplicaSet 资源来替代 ReplicationController
110 0
|
6月前
|
存储 Kubernetes 数据库
K8S POD控制器:从基础到高级实战技巧
K8S POD控制器:从基础到高级实战技巧
270 1