gpt4 book ai didi

使用 GraphQL 的 AKS 上的 Websockets 未连接

转载 作者:行者123 更新时间:2023-12-02 11:47:24 25 4
gpt4 key购买 nike

我目前有一个运行 GraphQL 服务器和正常 nginx 入口的 AKS 集群设置。我们正在尝试加入使用 Websockets 的 GraphQL 订阅。 GraphQL 用于 websockets 的 URL 与用于 GraphQL 查询的 URL 相同。我们已尝试添加代理配置以启用 websocket ingress,但从未建立连接。在没有 Kubernetes 的情况下运行 GraphQL 服务器是成功的,所以我们认为这里发生了一些特定于 kubernetes 的事情......有没有人成功地做到了这一点?下面是相关的入口配置

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: web-ingress
namespace: web
annotations:
kubernetes.io/ingress.class: nginx
certmanager.k8s.io/cluster-issuer: letsencrypt
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/affinity: cookie
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
nginx.ingress.kubernetes.io/proxy-connect-timeout: "30"
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
spec:
tls:
- hosts:
- my.host
- my-api.host
secretName: tls-secret
rules:
- host: my.host
http:
paths:
- path: /graphql
backend:
serviceName: webapi
servicePort: 80
- path: /(.*)
backend:
serviceName: website
servicePort: 80
- host: my-api.host
http:
paths:
- backend:
serviceName: webapi
servicePort: 80
path: /(.*)

最佳答案

您可能希望从像这样不太复杂的配置开始:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: web-ingress
namespace: web
annotations:
kubernetes.io/ingress.class: nginx
certmanager.k8s.io/cluster-issuer: letsencrypt
ingress.kubernetes.io/ssl-redirect: "true"
kubernetes.io/tls-acme: "true"
spec:
tls:
- hosts:
- my.host
secretName: tls-secret
rules:
- host: my.host
http:
paths:
- path: /
backend:
serviceName: website
servicePort: 80
- path: /graphql
backend:
serviceName: webapi
servicePort: 80

我将配置切换到一个端点而不是两个。删除了一些配置,因为 NGINX 开箱即用地处理 websockets。我删除了正则表达式。我添加了 tls-acme 注释。还有 ssl 重定向。总之,我只是让它变得不那么复杂了。首先启动并运行它,然后开始应用高级配置,例如您所做的超时。

很高兴听到对此的任何反馈!

关于使用 GraphQL 的 AKS 上的 Websockets 未连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56634978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com