DaemonSet能够让所有(或者特定)的节点运行同一个pod。
当节点加入k8s,会创建pod调度到该节点上运行
当节点从k8s删除,pod也会删除

比如k8s的 kube-flannel,kube-proxy是DaemonSet

yaml例子

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: test-daemon
spec:
  selector:
    matchLabels:
      name: test-daemon
  template:
    metadata:
      labels:
        name: test-daemon
    spec:
      containers:
      - name: app
        image: 172.16.111.168:5000/app:v1
      dnsConfig:
        options:
          - name: ndots
            value: "1"

也可以指定哪些节点能运行pod

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: test-daemon
spec:
  selector:
    matchLabels:
      name: test-daemon
  template:
    metadata:
      labels:
        name: test-daemon
    spec:
      nodeSelector:
        type: app # node labels type=app 
      containers:
      - name: app
        image: 172.16.111.168:5000/app:v1
      dnsConfig:
        options:
          - name: ndots
            value: "1"
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐