写在前面的话

前面讲解了 Pod / ReplicaSet / Deployment 的资源清单,我们这里谈一下 DaemonSet 的资源清单。

之前说过,DaemonSet 控制器能够保证资源在每个节点上都运行一个,这意味着该服务对于系统资源监控和日志收集非常实用。

DaemonSet 资源清单

和 ReplicaSet 简称 rs,Deployment 简称 deploy 一样,DaemonSet 简称 ds。

其结构如下表:

ds
apiVersion       apps/v1 
kind       Daemonset
metadata       name / namespace / labels 等属性
spec        
  minReadySeconds     最小准备时间
  revisionHistoryLimit     旧版本保留数量
  selector      
    matchExpressions   标签选择器
    matchLabels   标签选择器
  updateStrategy      
    rollingUpdate    
      maxUnavailable 升级策略最多不可用
    type   RollingUpdate / OnDelete(默认)
  template      
      metadata Pod meta
      spec Pod spec

DaemonSet 示例

制作一个 filebeat 的资源清单:

apiVersion: apps/v1
kind: Deployment
metadata:
name: redis
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: redis
role: logstore
template:
metadata:
labels:
app: redis
role: logstore
spec:
containers:
- name: redis
image: redis:4.0-alpine
ports:
- name: redis
containerPort: 6379 ---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: ds-demo
namespace: default
spec:
selector:
matchLabels:
app: filebeat
release: stable
template:
metadata:
labels:
app: filebeat
release: stable
spec:
containers:
- name: filebeat-demo
image: ikubernetes/filebeat:5.6.5-alpine
imagePullPolicy: IfNotPresent
env:
- name: REDIS_HOST
value: redis.default.svc.cluster.local

将 redis 端口创建 service,为了 filebeat 能够通过名称解析:

kubectl expose deployment redis --port=6379

在同一个资源清单中有定义多个资源的时候,可以使用 --- 隔开。

资源之间的连接地址,我们可以配置为 service 解析的域地址。

查看资源启动情况:

kubectl get ds -o wide
kubectl get deployment -o wide

结果如图:

我们可以进入 redis 里面查看:

kubectl exec -it redis-5d47df789f-clph7 -- /bin/sh

这就是 DaemonSet 的简单应用,我们大致先了解他的作用就行。

小结

每一种控制器都有单独的应用场景,只有熟悉之后才能更好的针对业务需求进行选型。

【07】Kubernets:资源清单(控制器 - DaemonSet)的更多相关文章

  1. kubernetes资源清单之DaemonSet

    什么是 DaemonSet? DaemonSet 确保全部(或者某些)节点上运行一个 Pod 的副本.当有节点加入集群时,也会为他们新增一个 Pod . 当有节点从集群移除时,这些 Pod 也会被回收 ...

  2. 【05】Kubernets:资源清单(控制器 - ReplicaSet)

    写在前面的话 从上一章节开始,我们一直在学习关于自主式 Pod 的资源清单编写, 但是自主式 Pod 存在着一个问题,就是和我们直接 docker run 运行 docker 容器一样.如果我们想以集 ...

  3. 【06】Kubernets:资源清单(控制器 - Deployment)

    写在前面的话 上一节主要简单的提了一下控制器都有哪些常用的,并且简单的功能是啥,最后一并提了 ReplicaSet 控制器. 但是 ReplicaSet 一般不需要我们直接配置,多以从本节开始,开始学 ...

  4. Kubernetes K8S之资源控制器Daemonset详解

    Kubernetes的资源控制器Daemonset详解与示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2C/ ...

  5. 【04】Kubernets:资源清单(pod)

    写在前面的话 前面我们提到过,纯手敲 K8S 名称管理 K8S 服务只是作为我们了解 K8S 的一种方案,而我们最终管理 K8S 的方法还是通过接下来的资源清单的方式进行管理. 所以从本章节开始,将会 ...

  6. Kubernetes【K8S】(三):资源清单

    K8S中的资源 K8S中所有的内容都抽象为资源,资源实例化之后叫做对象.一般使用yaml格式的文件来创建符合我们预期的pod,这样的yaml文件我们一般成为资源清单. 名称空间级资源 工作负载型资源( ...

  7. k8s学习笔记之四:资源清单定义入门

    第一章.k8s中的资源 1.什么叫资源? k8s中所有的内容都抽象为资源, 资源实例化之后,叫做对象 2.在k8s中有哪些资源? 工作负载型资源(workload): Pod ReplicaSet D ...

  8. Kubernetes 学习5 kubernetes资源清单定义入门

    一.kubernetes是有一个restful风格的 API,把各种操作对象都一律当做资源来管理.并且可通过标准的HTTP请求的方法 GET,PUT,DELETE,POST,等方法来完成操作,不过是通 ...

  9. kubernetes 资源清单定义入门

    k8s中的资源 什么叫资源? k8s中所有的内容都抽象为资源, 资源实例化之后,叫做对象 在k8s中有哪些资源? 工作负载型资源(workload): Pod ReplicaSet Deploymen ...

随机推荐

  1. MySQL 的一些批处理

    执行 SQL 脚本文件(https://blog.csdn.net/vebasan/article/details/7619911): mysql –u root –p 123456 < scr ...

  2. unlink remove

    int unlink(const char *pathname); 删除一个文件的目录项并减少它的链接数 unlink()会删除参数pathname指定的文件.如果该文件名为最后连接点,但有其他进程打 ...

  3. 网络流之最大流Dinic --- poj 1459

    题目链接 Description A power network consists of nodes (power stations, consumers and dispatchers) conne ...

  4. 获取 Docker 容器的 IP 地址

    docker inspect --format='{{.NetworkSettings.IPAddress}}' yourContainerIdOrContainerName

  5. Genymotion模拟器上money测试

    1.查看APK包名:sdk\build-tools\android-4.4W>aapt dump xmltree 123.apk AndroidManifest.xml 查看包名为:com.aa ...

  6. python批量创建txt文件,以demo.txt内的内容为文件名

    #批量创建txt文件import sys,osa=open("demo.txt")n=0aList=[]for line in a.readlines(): aList.appen ...

  7. 【day03】Xhtml

    一.HTML公共属性 1. title 提示 2. class 3. id 4. style 说明:除了 html,head,body,link,meta外其他标记都可使用的属性    二.表单  1 ...

  8. raid,磁盘配额,DNS综合测试题

    DNS解析综合学习案例1.用户需把/dev/myvg/mylv逻辑卷以支持磁盘配额的方式挂载到网页目录下2.在网页目录下创建测试文件index.html,内容为用户名称,通过浏览器访问测试3.创建用户 ...

  9. [LeetCode] 772. Basic Calculator III 基本计算器之三

    Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...

  10. python开发--信息处理系统

    #!/usr/bin/python card_list=[] #定义列表变量 def show_menu(): print("*" * 10) print("名片管理系统 ...