【发布时间】: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