K8S学习之基础二十七:k8s中daemonset控制器

k8s中DaemonSet控制器

​ DaemonSet控制器确保k8s集群中,所有节点都运行一个相同的pod,当node节点增加时,新节点也会自动创建一个pod,当node节点从集群移除,对应的pod也会自动删除。删除DaemonSet也会删除创建的pod。

​ DaemonSet控制器会监听k8s的ds对象、pod对象、node对象,这些被监听的对象变动,就会出发syncLoop循环让k8s集群朝着ds对象魔术的状态进行演进。

应用场景:

​ 在集群每个节点运行存储,如glusterd或ceph

​ 在每个节点运行日志收集组件:如flunentd、logstash、filebeat

​ 在每个节点运行监控组件,如Prometheus、NodeExporter、collectd

​ 以fluntend测试

​ 上传镜像fluentd到harbor

复制代码
vi daemonset-flunted.yaml 
kind: DaemonSet
metadata:
  name: fluentd-elasticsearch
  namespace: kube-system            # 定义命名空间
  labels:
    k8s-app: fluentd-logging        # 定义标签
spec:
  selector:
    matchLabels:
      name: fluentd-elasticsearch   # 匹配标签,与pod一致
  template:
    metadata:
      labels:
        name: fluentd-elasticsearch  # pod标签
    spec:
      tolerations:                # 定义容忍度,因为要在master上部署
      - key: node-role.kubernetes.io/control-plane
        operator: Exists
        effect: NoSchedule        # 容忍度调度
      containers:
      - name: fluentd-elasticsearch
        image: 172.16.80.140/fluented/fluented:v2.5.1   # harbor镜像地址
        resources:           # 资源配额
          limits:
            memory: 200Mi
          requests:
            cpu: 100m
            memory: 200Mi
        volumeMounts:                              # 挂载卷
        - name: varlog
          mountPath: /var/log                     # 监控/var/log
        - name: varlibdockercontainers
          mountPath: /var/lib/docker/containers   # 监控容器日志
          readOnly: true
      terminationGracePeriodSeconds: 30
      volumes:
      - name: varlog
        hostPath:
          path: /var/log
      - name: varlibdockercontainers
        hostPath:
          path: /var/lib/docker/containers                                                    

手工删除一个pod,ds就会自动创建一个新的pod

相关推荐
阿里云云原生4 小时前
AgentTeams 和 Claude Tag 都进入群聊模式,是新范式还是新叙事?
云原生·agent
阿里云云原生1 天前
Higress v2.2.3 发布:正式入驻 CNCF Sandbox,AI Gateway 与 Ingress 迁移能力双向加固
云原生
lichenyang4531 天前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang4531 天前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器
lichenyang4531 天前
Docker 学习笔记(二):docker run 的参数到底在控制什么?
docker·容器
阿里云云原生2 天前
香港站【企业 AI Agent 工程化实战专场】来啦,邀您7月9日见!
云原生·agent
阿里云云原生2 天前
研发域与运维域的“数字握手”:通过 Agentic Skills 实现 DevOps 全链路自动化
云原生
运维开发故事4 天前
基于 Arthas 的多集群在线诊断系统设计与实现
kubernetes
Patrick_Wilson6 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
阿里云云原生6 天前
AI 开发新常态:当 Cursor、Claude、Codex 并行,如何统一管理散落的 Skill 资产?
云原生·ai编程