Kubernetes----DaemonSet控制器

简介: Kubernetes----DaemonSet控制器

【原文链接】

一、DaemonSet控制器简介

1.1 DaemonSet控制器简介

DaemonSet类型的控制器可以保证集群中的每一台(或者指定)节点上都运行一个副本,一般使用与日志收集节点监控等场景,也就是说,如果一个pod提供的功能是节点级别的(每个节点都需要且只需要一个),name这里pod就适合使用DaemonSet类型的控制器创建

在这里插入图片描述
DaemonSet控制器特点

  • 每当向集群中添加一个节点是,指定的pod副本也将添加到该节点
  • 当节点从集群中移除时,pod也就被垃圾回收了

1.2 DaemonSet控制资源文件

apiVersion: apps/v1  # 版本号
kind: DaemonSet  # 类型
metadata: 元数据
  name:  # ds名称
  namespace: # 所属命名空间
  labels:  # 标签
    controller: daemonset
spec:  # 详情描述
  revisionHistoryLimit: 3 # 保留历史版本
  updateStrategy:  # 更新策略
    type: RollingUpdate   # 滚动更新策略
    rollingUpdate:  # 滚动更新
      maxUnavailable: 1  # 最大不可用状态的Pod的最大值,可以为百分比,也可以为整数
  selector:  # 选择器,通过它指定该控制器管理哪些Pod
    matchLabels:    # Label匹配规则
      app: nginx-pod
    matchExpressions:   # Expressions匹配规则
      - {key: app, operator: In, values: [nginx-pod]}
  template:  # 模板,当副本数量不足时,会根据下面的模板创建pod副本
    metadata:
      labels:
        app: nginx-pod
    spec:
      containers:
      - name: nginx
        image: nginx:1.17.1
        ports:
        - containerPort: 80

二、DaemonSet控制器实例演示

首先编辑pod_daemonset.yaml文件,内容如下:

apiVersion: v1
kind: Namespace
metadata:
  name: dev

---

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: pc-daemonset
  namespace: dev
spec:
  selector:
    matchLabels:
      app: nginx-pod
  template:
    metadata:
      labels:
        app: nginx-pod
    spec:
      containers:
      - name: nginx
        image: nginx:1.17.1

使用如下命令创建

[root@master pod_controller]# kubectl apply -f pod_daemonset.yaml
namespace/dev created
daemonset.apps/pc-daemonset created
[root@master pod_controller]#

如下,可以发现自动创建了个两个pod,即每个节点一个pod

[root@master pod_controller]# kubectl get pod -n dev -o wide
NAME                 READY   STATUS    RESTARTS   AGE    IP            NODE    NOMINATED NODE   READINESS GATES
pc-daemonset-4rlpt   1/1     Running   0          113s   10.244.1.71   node1   <none>           <none>
pc-daemonset-9px7p   1/1     Running   0          113s   10.244.2.87   node2   <none>           <none>
[root@master pod_controller]#

使用如下命令删除

[root@master pod_controller]# kubectl delete -f pod_daemonset.yaml
namespace "dev" deleted
daemonset.apps "pc-daemonset" deleted
[root@master pod_controller]#
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
目录
相关文章
|
4月前
|
Kubernetes Cloud Native 应用服务中间件
云原生|kubernetes|ResourceQuota 资源与准入控制器
云原生|kubernetes|ResourceQuota 资源与准入控制器
60 0
|
7月前
|
Kubernetes 监控 应用服务中间件
Kubernetes(k8s)容器编排控制器使用3
Kubernetes(k8s)容器编排控制器使用3
56 0
|
7月前
|
Kubernetes 监控 应用服务中间件
Kubernetes(k8s)容器编排控制器使用2
Kubernetes(k8s)容器编排控制器使用2
62 0
|
7月前
|
Kubernetes 监控 应用服务中间件
Kubernetes(k8s)容器编排控制器使用1
Kubernetes(k8s)容器编排控制器使用1
83 0
|
6月前
|
存储 应用服务中间件 nginx
kubernetes Statefulset控制器
kubernetes Statefulset控制器
|
12天前
|
存储 Kubernetes 调度
|
23天前
|
运维 Kubernetes 容灾
kubernetes核心技术之Controller控制器知识总结
kubernetes核心技术之Controller控制器知识总结
14 1
|
6月前
|
存储 Kubernetes 数据库
剖析 Kubernetes 控制器:Deployment、ReplicaSet 和 StatefulSet 的功能与应用场景
剖析 Kubernetes 控制器:Deployment、ReplicaSet 和 StatefulSet 的功能与应用场景
214 0
|
3月前
|
存储 Kubernetes 数据库
K8S POD控制器:从基础到高级实战技巧
K8S POD控制器:从基础到高级实战技巧
155 1
|
9月前
|
Kubernetes 测试技术 Perl
16-Kubernetes-Pod控制器详解-Horizontal Pod Autoscaler(HPA)
16-Kubernetes-Pod控制器详解-Horizontal Pod Autoscaler(HPA)

推荐镜像

更多