1. 问题
3.137 环境 websocket 连接失败,其它环境无此问题
2. 原因
今天(2023-01-13)也发现了一个有趣的现象
之前有个问题: 3.137 环境, websocket 连接一直会失败。这里有个载图:https://gitlab.apulis.com.cn/ran.lu/verify/-/wikis/3.137-%E7%8E%AF%E5%A2%83-websocket-%E8%BF%9E%E6%8E%A5%E5%A4%B1%E8%B4%A5%EF%BC%8C%E5%85%B6%E5%AE%83%E7%8E%AF%E5%A2%83%E6%97%A0%E6%AD%A4%E9%97%AE%E9%A2%98
结合前两天的 ext auth ,我就有疑问,为什么前端发向 wsconn 的 ws 连接,不会经过 ext auth 的检查?
如果经过 ext auth 检查,那肯定会失败。因为 ws 连接不在 iam 的白名单中,权限检查肯定会失败的。
今天机缘巧合看到 https://blog.csdn.net/qq_22543991/article/details/109826917 这个文章,里面有个截图,居然把 service 的 name 给圈了起来。
难道 istio 用 port 的名字来判断流量类型?好像是有这种可能
然后发现, wsconn 的 service yaml ,确实, port 是没有 name 的;而其它服务,比如 ai-arts 是有的。
我在 3.172 环境给它补了一个 name: http
然后, wsconn 的 ws 连接果然就连不上了
并且 iam 也有日志: "error":"action not found,path: /wsconn/api/v1/ws 这样就合理了…
原来之前写 InstallYTung 的人,早就有意这么干、从而让 ws 可以建立啊,太厉害了[抱拳]