DaemonSet 保证在每个 Node 上都运行一个容器副本,常用来部署一些集群的日志、监控或者其他系统管理应用。
DaemonSet的yaml 格式 几乎与rc/rs 的格式一致
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:
containers:
- name: fluentd-elasticsearch
image: gcr.io/google-containers/fluentd-elasticsearch:1.20
daemonset 也可以使用nodeselector 与nodeaffinity 来过滤node,使其部署到满足要求的节点上
static pod
除了 DaemonSet,还可以使用静态 Pod 来在每台机器上运行指定的 Pod,这需要 kubelet 在启动的时候指定 manifest 目录:--pod-manifest-path=/etc/kubernetes/manifests,然后将要创建服务yaml文件放入该目录,就可以在kubelet 启动后,自动创建出来。
但static Pod 不能通过 API Server 来删除,但可以通过删除 manifest 文件来自动删除对应的 Pod;当前集群的master节点上系统组件就是通过这个机制创建出来的。
转载:https://blog.csdn.net/fly910905/article/details/102092413
查看评论