【问题标题】:AKS Standard Load Balancer TCP Reset AnnotationsAKS 标准负载均衡器 TCP 重置注释
【发布时间】:2019-12-03 03:39:30
【问题描述】:

我们正在升级 AKS 集群,以便使用最近推出的标准 SKU 负载平衡器。请参阅此Microsoft Update Notification。以前只有基本的 SKU 负载平衡器可用,并且它们不允许我们在连接失效时发送 TCP 重置。例如,这导致了许多创造性的工作来处理连接池中的陈旧连接。

因此,在创建入口期间,我可以使用注释来配置负载均衡器。例如,我可以使用注释将类型设置为内部和超时设置。但是,似乎不可能通过注释将 TCP 重置标志设置为 true。我在此Go Walker 页面中挖掘了一些注释列表。

我已经设法使用以下 yaml 创建了一个入口控制器。 注意注释。

controller:
  service:
    loadBalancerIP: 172.15.23.100
    annotations:
      service.beta.kubernetes.io/azure-load-balancer-internal: "true"
      service.beta.kubernetes.io/azure-load-balancer-tcp-idle-timeout: "15"

我运行了以下命令:

helm install stable/nginx-ingress --namespace ingress -f dev-ingress.yaml --name dev-ingress --set controller.replicaCount=3

大约一分钟后,我可以看到内部负载均衡器获取了指定的 IP 地址,我还可以在控制台上看到它,如下所示:

kubectl -n ingress get svc dev-ingress-nginx-ingress-controller
NAME                                         TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)                      AGE   SELECTOR
dev-ingress-nginx-ingress-controller         LoadBalancer   172.15.24.11   172.15.23.100   80:30962/TCP,443:30364/TCP   24m   app=nginx-ingress,component=controller,release=dev-ingress

但是,负载平衡规则是在 TCP 重置为 false 的情况下创建的。这需要我登录控制台并更改它。请参阅下面的屏幕截图:

我真的很想在创建过程中编写脚本,因为通过接口执行操作会导致 Snowflake 部署。

类似于下面的 yaml:

controller:
  service:
    loadBalancerIP: 172.15.23.100
    annotations:
      service.beta.kubernetes.io/azure-load-balancer-internal: "true"
      service.beta.kubernetes.io/azure-load-balancer-tcp-idle-timeout: "15"
      service.beta.kubernetes.io/azure-load-balancer-tcp-reset: "true"

有人知道我可以在服务/入口创建期间如何配置它吗?

更新:

根据TCP Reset setting for loadbalancers 文档中记录的限制,kubectl 似乎不支持它。但是,它也表示不支持该门户。

【问题讨论】:

    标签: nginx kubernetes-ingress azure-aks


    【解决方案1】:

    你可以看看Cloud provider for Azure。它提供了一个注释来设置负载均衡器规则的 TCP 重置,但它仅适用于 1.16 或更高版本,并且 AKS 的最新版本是 1.15。

    如果你真的想使用它,你可以使用 aks-engine 来达到你的目的。 aks-engine 已经支持 Kubernetes 的 1.16 版本。请记住,使用标准负载均衡器创建 aks-engine 集群。

    【讨论】:

    • 谢谢伙计。我将密切关注此版本,以便将其用于我的 yaml 文件。
    【解决方案2】:

    看到this file 没有这样的注释我会得出结论,这对于注释来说是不可能的。你必须想办法,或者创建一个到 Kubernetes 的拉取请求来支持这样的注释

    【讨论】:

    • 我也很怀疑。将问题保留一两天,然后如果没有答案,请创建拉取请求。
    猜你喜欢
    • 2020-05-18
    • 1970-01-01
    • 2020-05-08
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 2022-06-23
    • 2021-12-07
    • 1970-01-01
    相关资源
    最近更新 更多