我正在尝试配置HAProxy入口控制器以正确平衡与websocket的连接。我尝试提高timeout-client,timeout-server和timeout-connect的值,但没有成功。
ingress.yaml
kind: Ingress
metadata:
namespace: test-deploy
name: app-test
labels:
app: app-test
annotations:
ingress.kubernetes.io/rewrite-target: /
ingress.kubernetes.io/timeout-connect: "5000"
ingress.kubernetes.io/timeout-client: "5000"
ingress.kubernetes.io/timeout-server: "5000"
ingress.kubernetes.io/timeout-tunnel: "3600"
spec:
rules:
- host: k8s-test.local.lan
http:
paths:
- path: /app-test
backend:
serviceName: app-test
servicePort: 9000
答案 0 :(得分:0)
我在HAProxy文档中没有找到有关Websockets支持的确认,但是Quora上的this post表示它的效果很好。您可能需要调整客户端/服务器/隧道超时,有时还需要将网络套接字流量匹配并路由到正确的后端目标。
您可以使用以下命令检查实际的haproxy-inress配向:
kubectl exec -ti haproxy-ingress-pod-name -n ingress-controller -- cat /etc/haproxy/haproxy.cfg
如果集群中有多个入口,则可能需要在注释中为HAProxy入口应使用的每个Ingress对象指定一个代理类:
kubernetes.io/ingress.class: "haproxy"
HAProxy入口与HAProxy几乎相同,可以使用Kubernetes入口对象更新其配置。 您可以在文章中找到有关配置HAProxy和HAProxy Ingress的更多信息:
希望对您有帮助。