Kubernetes中是否存在部署模式“全局”?

时间:2019-03-14 21:04:02

标签: docker kubernetes

我曾经使用过Docker swarm,每当我想为每个可用节点部署一个容器副本时,我都会使用“全局”部署模式,如以下Docker堆栈yaml所示:

  logstash:
    image: myregistry:443/mydomain/logstash
    deploy:
      mode: global
      restart_policy:
        condition: on-failure
    ports:
      - "12201:12201/udp"
    environment:
      LS_JAVA_OPTS: "-Xmx256m -Xms256m"
    networks:
      mylan:

这将在每个可用节点中部署一个且仅一个logstash副本。我是Kubernetes的新手,我正尝试重现此行为,是否有等效的模式?如果没有,我有什么选择?

谢谢。

1 个答案:

答案 0 :(得分:6)

DaemonSet是您想要的控制器:

  

DaemonSet确保所有(或某些)节点都运行Pod的副本。如   将节点添加到集群,将Pod添加到它们。由于节点是   从集群中删除这些Pod会被垃圾收集。删除一个   DaemonSet将清除其创建的Pod。

官方文档甚至提到您的需求:

  

DaemonSet的一些典型用法是:
  [...]
  -在每个节点(例如fluentd或logstash)上运行日志收集守护程序。