Kubernetes 大使让403试图连接到Websocket
Ambassador在尝试访问群集中的websocket端点时抛出403。以下是重新创建问题的步骤: [Kube环境:Mac桌面Docker] 安装大使和回音服务Kubernetes 大使让403试图连接到Websocket,kubernetes,aws-api-gateway,ambassador,Kubernetes,Aws Api Gateway,Ambassador,Ambassador在尝试访问群集中的websocket端点时抛出403。以下是重新创建问题的步骤: [Kube环境:Mac桌面Docker] 安装大使和回音服务 派遣大使掌舵 helm repo添加数据线https://getambassador.io 舵手安装大使数据线/大使 部署websocket echo部署/服务/映射 ✅ 验证是否可以从群集中的pod访问echo服务器 在集群上创建节点外壳 kubectl运行我的shell--rm-i--tty--image节点:12--bash
helm repo添加数据线https://getambassador.io
舵手安装大使数据线/大使
kubectl运行我的shell--rm-i--tty--image节点:12--bash
wscat
npm i-g wscat
wscat-c websocket-echo.default.svc.cluster.local
wscat
wscat-c localhost/websocket-echo/
错误:意外服务器响应:403
我遗漏了一些简单的东西吗?大使将把传入的请求从http重定向到https 您可以通过以下方式进行验证:
$curl localhost/websocket/-v
*正在尝试::1。。。
*TCP_节点集
*已连接到本地主机(::1)端口80(#0)
>GET/websocket/HTTP/1.1
>主机:本地主机
>用户代理:curl/7.54.0
>接受:*/*
>
因此,您需要添加此配置以禁用本地主机上的重定向
apivision:getambassador.io/v2
种类:主持人
元数据:
名称:localhost
名称空间:默认值
规格:
主机名:localhost
acmeProvider:
授权:无
请求策略:
不安全的:
行动:路线
参考文献
localhost[:80]
---
apiVersion: v1
kind: Service
metadata:
name: websocket-echo
namespace: default
spec:
ports:
- name: http
port: 80
targetPort: 8080
selector:
app: websocket-echo
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: websocket-echo
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: websocket-echo
template:
metadata:
labels:
app: websocket-echo
spec:
containers:
- name: backend
image: jmalloc/echo-server
ports:
- name: http
containerPort: 8080
---
apiVersion: getambassador.io/v2
kind: Mapping
metadata:
name: websocket-echo
namespace: default
spec:
prefix: /websocket/
service: websocket-echo
allow_upgrade:
- websocket
npm i -g wscat