侧边栏壁纸
  • 累计撰写 45 篇文章
  • 累计创建 15 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

【kubernetes】守护进程集DaemonSet

Administrator
2024-12-01 / 0 评论 / 0 点赞 / 19 阅读 / 3168 字 / 正在检测是否收录...

DaemonSet和守护进程类似,它在符合匹配条件的节点上均部署一个Pod。当有新节点接入集群时,也会为他们新增一个Pod,当节点从集群删除时,这些Pod也会被回收,删除DaemonSet将会删除它所创建的所有Pod。

使用DaemonSet的一些典型用法:

  • 运行集群存储daemon(守护进程),例如在每个节点上运行Glusterd,Ceph等。

  • 在每个节点上运行日志手机daemon,例如Fluentd,Logstash。

  • 在每个节点上运行监控daemon,比如Prometheus Node Exporter,Collectd,Datadog代理,New Relic代理或Ganglia gmond。

1. 创建DaemonSet

apiVersion: apps/v1
kind: DaemonSet
metadata:
  labels:
    app: nginx
  name: nginx
spec:
  selector:
    matchLabels:
      app: nginx
  updateStrategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      tolerations:
      # 这些容忍度设置是为了让该守护进程集在控制平面节点上运行
      # 如果你不希望自己的控制平面节点运行 Pod,可以删除它们
      - key: node-role.kubernetes.io/control-plane
        effect: NoSchedule   # 污点为下方查询出的
      containers:
      - name: nginx
        image: registry.cn-beijing.aliyuncs.com/jiangxiaonan/nginx:1.22.1
kubectl apply -f nginx-ds.yaml

污点查询:

# kubectl describe node | grep Taint
Taints:             node-role.kubernetes.io/control-plane:NoSchedule
Taints:             node-role.kubernetes.io/control-plane:NoSchedule
Taints:             node-role.kubernetes.io/control-plane:NoSchedule
Taints:             <none>
Taints:             <none>

使用-o wide 可以查看 Pod 所在的节点

# kubectl get po -o wide
NAME                                READY   STATUS    RESTARTS      AGE   IP               NODE           NOMINATED NODE   READINESS GATES
nginx-gx2tt                         1/1     Running   0             63s   10.244.79.99     k8s-worker01   <none>           <none>
nginx-hjtd8                         1/1     Running   0             63s   10.244.195.1     k8s-master03   <none>           <none>
nginx-qpmsr                         1/1     Running   0             63s   10.244.32.129    k8s-master01   <none>           <none>
nginx-zbbcg                         1/1     Running   0             63s   10.244.122.138   k8s-master02   <none>           <none>
nginx-zf9nb                         1/1     Running   0             63s   10.244.69.231    k8s-worker02   <none>           <none>

2. 更新和回滚 DaemonSet

DaemonSet 更新策略和 StatefulSet 类似,也有 OnDelete 和 RollingUpdate 两种方式。

查看更新状态 :

kubectl rollout status ds/<daemonset-name>

列出所有修订版本:

kubectl rollout history daemonset <daemonset-name>

回滚到指定 revision:

kubectl rollout undo daemonset <daemonset-name> --to-revision=<revision>

0
博主关闭了所有页面的评论