Kubernetes 之 DaemonSet 基本原理

Kubernetes 之 DaemonSet 基本原理

DaemonSet 定义

DaemonSet 确保全部(或者某些)节点上运行一个 Pod 的副本。 当有节点加入集群时, 也会为他们新增一个 Pod 。 当有节点从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。它最经常被使用在收集集群日志的用途上。

DaemonSet 使用

yaml 复制代码
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentd-elasticsearch
  namespace: kube-system
  labels:
    k8s-app: fluentd-logging
spec:
  selector:
    matchLabels:
      name: fluentd-elasticsearch
  template:
    metadata:
      labels:
        name: fluentd-elasticsearch
    spec:
      tolerations:
      # 这些容忍度设置是为了让该守护进程集在控制平面节点上运行
      # 如果你不希望自己的控制平面节点运行 Pod,可以删除它们
      - key: node-role.kubernetes.io/control-plane
        operator: Exists
        effect: NoSchedule
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
      containers:
      - name: fluentd-elasticsearch
        image: quay.io/fluentd_elasticsearch/fluentd:v2.5.2
        resources:
          limits:
            memory: 200Mi
          requests:
            cpu: 100m
            memory: 200Mi
        volumeMounts:
        - name: varlog
          mountPath: /var/log
      # 可能需要设置较高的优先级类以确保 DaemonSet Pod 可以抢占正在运行的 Pod
      # priorityClassName: important
      terminationGracePeriodSeconds: 30
      volumes:
      - name: varlog
        hostPath:
          path: /var/log
复制代码
root@k8s-master1:~# kubectl get ds -n kube-system
NAME                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
fluentd-elasticsearch   3         3         3       3            3           <none>                   112s
kube-proxy              3         3         3       3            3           kubernetes.io/os=linux   18d

root@k8s-master1:~# kubectl get pods -n kube-system -owide -l name=fluentd-elasticsearch
NAME                          READY   STATUS    RESTARTS   AGE    IP               NODE          NOMINATED NODE   READINESS GATES
fluentd-elasticsearch-6fmkb   1/1     Running   0          3m8s   10.244.194.122   k8s-worker1   <none>           <none>
fluentd-elasticsearch-pd4ps   1/1     Running   0          3m8s   10.244.159.156   k8s-master1   <none>           <none>
fluentd-elasticsearch-tkkvq   1/1     Running   0          3m8s   10.244.126.2     k8s-worker2   <none>           <none>
相关推荐
m***923830 分钟前
docker中配置redis
redis·docker·容器
谷隐凡二35 分钟前
Docker 的核心理念及技术的简单说明
运维·docker·容器
会飞的小蛮猪2 小时前
Ubuntu24.04 基于Containerd部署K8s1.34(私服部署)
docker·云原生·kubernetes
间彧13 小时前
Kubernetes滚动发布详解
kubernetes
间彧13 小时前
在实际生产环境中,Kubernetes声明式API如何实现蓝绿部署、金丝雀发布等高级部署策略?
kubernetes
间彧13 小时前
Kubernetes声明式API相比传统命令式API在故障恢复场景下的具体优势有哪些?
kubernetes·github
间彧13 小时前
为什么说Kubernetes的API设计是其成功的关键因素之一?
kubernetes
间彧14 小时前
Kubernetes Deployment 配置简化实战:从复杂到高效
kubernetes
可爱的小小小狼17 小时前
k8s:服务网格Service Mesh(服务网格)istio和envoy
kubernetes·istio·service_mesh
gggg远19 小时前
docker详解
运维·docker·容器