首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将traefik用作DaemonSet还是部署?

将traefik用作DaemonSet还是部署?
EN

Stack Overflow用户
提问于 2020-07-29 07:31:49
回答 1查看 1.2K关注 0票数 5

我应该将traefik1.7.x部署为DaemonSet还是部署在GKE (谷歌K8S)中?

环境描述

Kubernetes集群与节点自动分词器在谷歌云中,托管了几个生产集群。集群可以扩展到90个节点(最少为6个节点),目前我们已经部署了traefik pod,每个集群中有10个副本(我们使用kustomize在所有集群中部署相同的清单)。

我们注意到集群中有18个节点(europe-west1区域)的集群响应时间较慢,而australia-southeast1区域中的集群只有6个节点。这两个簇都有10个traefik的副本。

部署规格

traefik.toml:

代码语言:javascript
复制
    [kubernetes]
    # all namespaces!
    namespaces = []

Service.yaml

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  labels:
    app: traefik
  name: traefik-ingress
  namespace: ingress-traefik
spec:
  externalTrafficPolicy: Local
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: traefik
  sessionAffinity: None
  type: LoadBalancer
  loadBalancerIP: {{LOAD_BALANCER_IP}}

Deployment.yaml

代码语言:javascript
复制
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: traefik
  name: traefik
  namespace: ingress-traefik
spec:
  replicas: 10
  selector:
    matchLabels:
      app: traefik

  template:
    metadata:
      labels:
        app: traefik
    spec:
      containers:
      - args:
        - --configfile=/config/traefik.toml
        image: traefik:1.7.9-alpine

问题

  1. 在这个场景中(使用GKE节点自动分配器),我们的集群的最佳配置是什么?在traefik中使用部署还是DaemonSet?
  2. 根据集群大小(节点数量),traefik荚的数量对响应时间有影响吗?
  3. 对于traefik (每个节点使用DaemonSet )还是对整个集群使用几个副本,集群内部的路由(在pod、服务和节点网络之间跳)是否更容易呢?(我们为每个https服务使用K8S名称空间,traefik有自己的命名空间)。
EN

回答 1

Stack Overflow用户

发布于 2022-08-09 13:46:54

使用部署或DaemonSet部署Traefik?

可以在部署DaemonSet对象中使用Traefik,而这两种选项各有优缺点:

  • 当使用部署时,可伸缩性可能要好得多,因为在使用DaemonSet时,您将拥有单个Pod-每节点模型,而在使用部署时,您可能需要更少的基于环境的副本。
  • 当节点加入集群时,DaemonSets自动扩展到新节点,而部署吊舱仅在需要时在新节点上进行调度。
  • DaemonSets确保在任何一个节点上只运行一个豆荚副本。如果要确保两个荚不位于同一个节点上,则部署需要关联设置。
  • DaemonSets可以使用NET_BIND_SERVICE功能运行,这将允许它绑定到每个主机上的端口80/443/etc。这将允许绕过kube代理,并减少流量跳数。请注意,这违背了Kubernetes最佳实践指导方针,并增加了调度/缩放问题的可能性。尽管存在潜在的问题,但这仍然是大多数入口控制器的选择。

在使用部署和DaemonSets之间有一些显著的区别:

  • 部署具有更容易向上和向下扩展的可能性。它可以实现完整的pod生命周期,并支持Kubernetes 1.2的滚动更新。至少需要一个Pod才能运行部署。
  • DaemonSet自动缩放到满足特定选择器的所有节点,并保证每次填充一个节点。DaemonSets的Kubernetes 1.7也完全支持滚动更新。

您可能想看看其他的traefik文档

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63148492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档