kubernetes - 将 traefik 用作 DaemonSet 还是部署?
问题描述
我应该将 traefik 1.7.x 部署为 DaemonSet 还是 GKE (Google K8S) 中的 A 部署?
环境描述
Kubernetes 集群在谷歌云中具有节点自动扩缩器,托管多个生产集群。集群最多可以扩展 90 个节点(最少 6 个节点),目前我们traefik
在每个集群中部署了 10 个副本的 pod(我们使用 kustomize 在所有集群中部署相同的清单)。
我们注意到有 18 个节点(europe-west1
区域)的集群的响应时间较慢,而我们在australia-southeast1
区域中的集群有 6 个节点。两个集群都有 10 个 traefik 副本。
部署规范
traefik.toml:
[kubernetes]
# all namespaces!
namespaces = []
服务.yaml
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}}
部署.yaml
---
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
问题
- 在这种情况下(使用 GKE 节点自动扩缩器)我们的集群的最佳配置是什么?使用 Deployment 或 DaemonSet 进行 traefik?
- 根据集群大小(节点数),traefik pod 的数量是否会影响响应时间?
- 当使用 DaemonSet(每个节点的 pod)或为整个集群使用多个副本的部署时,集群内部的路由(pod、服务和节点网络之间的跳跃)是否更容易进行 traefik?(我们为每个 https 服务使用 K8S 命名空间,并且 traefik 有自己的命名空间)。
解决方案
推荐阅读
- javascript - 如何从 Typescript 中的函数参数中删除一些类型检查?
- python - 类型错误:参数 od type 'int' 在文件上不可迭代“
",第 31 行,在 - webpack - Webpacker 6 CSS 配置
- npm - 在 Mac 上通过 Supervisor 运行 Nuxt
- regression - 集成回归树法
- node.js - 在使用 Passport-azure-ad npm 模块和 OIDCStrategy 获取访问令牌方面需要帮助
- graphql - Apollo 服务器 - GraphQL - 语法错误:预期名称,找到)
- ios - swift中字典中的相同值
- python - 如何让 random.choice 不断重复
- sql - SQL SELECT WHERE meta_keywords = '['']'