惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
B
Blog
T
The Blog of Author Tim Ferriss
量子位
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - Franky
小众软件
小众软件
Recent Announcements
Recent Announcements
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
I
InfoQ
美团技术团队
G
Google Developers Blog
Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
Visual Studio Blog
云风的 BLOG
云风的 BLOG
博客园 - 【当耐特】
IT之家
IT之家
Microsoft Security Blog
Microsoft Security Blog
博客园 - 聂微东
Last Week in AI
Last Week in AI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
H
Help Net Security

郑文峰的博客

使用dify对接飞书多维表格 使用n8n对接飞书多维表格 服务启动时出现 OOM 一次服务升级时pg表DDL执行超时失败 Go语言高效IO缓冲技术详解 Go语言延迟初始化(Lazy Initialization)最佳实践 Go语言字符串拼接性能对比与优化指南 Go语言结构体内存对齐完全指南 Go语言空结构体:零内存消耗的高效编程 Go语言堆栈分配与逃逸分析深度解析 Go语言原子操作完全指南 Go语言内存预分配完全指南 Go语言不可变数据共享:无锁并发编程实践 Go语言零拷贝技术完全指南 Go语言遍历性能深度解析:从原理到优化实践 Go语言Interface Boxing原理与性能优化指南 Go协程池深度解析:原理、实现与最佳实践 使用etcd分布式锁导致的协程泄露与死锁问题 基于pre-commit的Python代码规范落地实践 初识 MCP Server pulsar阻塞导致logstash无法接入日志 django-prometheus使用及源码分析 kube-proxy源码分析 kubernetes service如何通过iptables转发 tcp缓存引起的日志丢失 django-apschedule定时任务异常停止 理解calico容器网络通信方案原理 理解flannel的三种容器网络方案原理 理解Linux IPIP隧道 理解VXLAN网络
k8s之DaemonSet
zhengwenfeng · 2022-08-31 · via 郑文峰的博客

# 什么是DaemonSet?

在K8s集群中的每一个Node中都会运行一个Pod的控制器。

使用场景是?

  • 日志收集,每个节点运行一个Pod用于收集容器产生的日志
  • 监控管理,每个节点运行一个pod用于监控节点的状态
  • 网络应用,每个节点运行一个Pod用于将节点加入k8s网络

# 使用DaemonSet

使用yaml描述DaemonSet对象

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: nginx-ds
  labels:
    k8s-app: nginx-ds
spec:
  selector:
    matchLabels:
      name: nginx-ds
  template:
    metadata:
      labels:
        name: nginx-ds
    spec:
      containers:
      - name: nginx-ds
        image: nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

创建DaemonSet对象,会看到自动的每一个节点中都创建了一个pod。

[root@k8s-worker1 zwf]# kubectl apply -f daemonset.yaml -n zwf
daemonset.apps/nginx-ds configured

[root@k8s-worker1 zwf]# kubectl get nodes
NAME          STATUS   ROLES    AGE    VERSION
k8s-master    Ready    <none>   32d    v1.23.4
k8s-worker1   Ready    <none>   152d   v1.23.4
k8s-worker2   Ready    <none>   152d   v1.23.4

[root@k8s-worker1 zwf]# kubectl get ds -n zwf
NAME       DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
nginx-ds   3         3         3       3            3           <none>          4m2s

[root@k8s-worker1 zwf]# kubectl get pods -n zwf -o wide
NAME             READY   STATUS    RESTARTS   AGE   IP               NODE          NOMINATED NODE   READINESS GATES
nginx-ds-7w2kx   1/1     Running   0          81s   10.222.194.73    k8s-worker1   <none>           <none>
nginx-ds-l5lmx   1/1     Running   0          46s   10.222.126.38    k8s-worker2   <none>           <none>
nginx-ds-zdfgl   1/1     Running   0          82s   10.222.235.217   k8s-master    <none>           <none>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18