k8s-daemonSet控制器

k8s-daemonSet控制器

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

DaemonSet 的一些典型用法:
1.在每个节点上运行集群守护进程
2.在每个节点上运行日志收集守护进程
3.在每个节点上运行监控守护进程

查看控制器


[root@master ~]# kubectl -n kube-system get daemonsets.apps
NAME                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                 AGE
kube-flannel-ds-amd64   2         2         2       2            2           <none>                        18h
kube-proxy              2         2         2       2            2           beta.kubernetes.io/os=linux   18h

创建控制器

---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: my-daemonset
spec:
  selector:
    matchLabels:
      app: dae1
  template:
    metadata:
      labels:
        app: dae1
    spec:
      containe
Kubernetes 中查看 DaemonSet 运行在哪些节点上,可以通过 `kubectl` 命令结合资源对象的标签选择器和 Pod 的运行状态进行查询。以下是具体的方法和步骤: ### 方法一:通过 `kubectl get pods` 查看 DaemonSet 对应的 Pod 所在节点 DaemonSet 控制器会为每个节点创建一个 Pod,这些 Pod 的名称通常以 DaemonSet 的名称为前缀。可以通过以下命令列出 DaemonSet 创建的所有 Pod 及其所在节点: ```bash kubectl get pods -o wide -n <namespace> ``` 将 `<namespace>` 替换为 DaemonSet 所在的命名空间(通常是 `kube-system` 或其他自定义命名空间)。输出结果中将包含 Pod 名称、状态以及运行所在的节点名称。 ### 方法二:使用 `kubectl describe daemonset` 获取节点信息 可以通过 `kubectl describe daemonset` 查看 DaemonSet 的详细信息,其中包括调度到哪些节点上: ```bash kubectl describe daemonset <daemonset-name> -n <namespace> ``` 在输出中会显示 `Desired Number of Nodes Scheduled` 和 `Current Number of Nodes Scheduled`,同时还会列出每个节点上是否已经运行了对应的 Pod。 ### 方法三:结合 `kubectl get pods` 和 `--field-selector` 过滤节点信息 如果需要更精确地查看某个 DaemonSet 在哪些节点上运行,可以使用字段选择器过滤 Pod 所在的节点: ```bash kubectl get pods -n <namespace> --field-selector=spec.nodeName=<node-name> ``` 将 `<node-name>` 替换为具体的节点名称,查看该节点上的 DaemonSet Pod 是否正常运行。 ### 方法四:使用标签选择器查看特定 DaemonSet 的 Pod 每个 DaemonSet 都有一个标签选择器(Label Selector),可以通过以下命令获取标签选择器并用于筛选 Pod: ```bash kubectl get daemonset <daemonset-name> -n <namespace> -o jsonpath='{.spec.selector}' ``` 然后使用该标签选择器查看对应的 Pod: ```bash kubectl get pods -l <label-selector> -n <namespace> ``` ### 注意事项 - 如果集群中存在污点(Taint),例如默认的 `node-role.kubernetes.io/master:NoSchedule`,DaemonSet 的 Pod 可能无法调度到某些节点上 [^5]。 - 确保 DaemonSet 的 `spec.template.spec.nodeSelector` 或 `affinity` 设置正确,以匹配目标节点的标签。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值