Arc*_*nic 5 kubernetes websocket google-kubernetes-engine
我有一个 GCE Ingress 配置并在端口 443 上使用 SSL。我试图让端口 28080 指向我的独立可操作服务器。
我目前为我的 Ingress yaml 准备了这个:
# web-ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: gke-ingress
annotations:
kubernetes.io/ingress.class: "gce"
ingress.kubernetes.io/ssl-redirect: "true"
kubernetes.io/ingress.allow-http: "false"
spec:
rules:
- host: example.com
http:
paths:
- path: /ws
backend:
serviceName: websocket
servicePort: 28080
tls:
- secretName: gkecert
hosts:
- example.com
backend:
serviceName: web
servicePort: 443
Run Code Online (Sandbox Code Playgroud)
如果我将 websocket 服务的路径设置为 /,它会破坏根路径(错误 503)。从我读过的内容来看,入口无法处理一条路径上的 2 个端口。那么人们如何将他们的前端连接到 websocket 服务器而不用路径分隔呢?
小智 2
我认为您的第二个后端服务缺少路径,如果您想将入口与一台主机和两个服务一起使用,您应该添加路径。查看入口扇出,然后你的入口应该是这样的:
# web-ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: gke-ingress
annotations:
kubernetes.io/ingress.class: "gce"
ingress.kubernetes.io/ssl-redirect: "true"
kubernetes.io/ingress.allow-http: "false"
spec:
tls:
- secretName: gkecert
hosts:
- example.com
rules:
- host: example.com
http:
paths:
- path: /ws
backend:
serviceName: websocket
servicePort: 28080
- path: /
backend:
serviceName: web
servicePort: 443
Run Code Online (Sandbox Code Playgroud)
如果要使用同一主机,则必须指定路径。您可以使用不同的主机将前端连接到 websocket 服务器,而无需按路径分隔。请参阅有关我们如何操作的文档链接
| 归档时间: |
|
| 查看次数: |
6021 次 |
| 最近记录: |