我已经在 kubernetes 上实现了 emissary ingress 并实现了部署、服务和映射。
下面的映射已在使者中创建
root@master1:~# kubectl get mapping
NAME SOURCE HOST SOURCE PREFIX DEST SERVICE STATE REASON
quote-backend /backend/ quote
root@master1:~#
此时,当我运行 curl 命令时,它工作正常。
root@master1:~# curl -Lv 172.31.11.157/backend/
* Trying 172.31.11.157:80...
* TCP_NODELAY set
* Connected to 172.31.11.157 (172.31.11.157) port 80 (#0)
> GET /backend/ HTTP/1.1
> Host: 172.31.11.157
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< content-type: application/json
< date: Thu, 20 Jan 2022 14:24:57 GMT
< content-length: 157
< x-envoy-upstream-service-time: 11
< server: envoy
<
{
"server": "dowdy-snozzberry-0gihwpim",
"quote": "A principal idea is omnipresent, much like candy.",
"time": "2022-01-20T14:24:57.136915384Z"
* Connection #0 to host 172.31.11.157 left intact
}root@master1:~#
但是,一旦我在使者入口中实现了身份验证服务,它就开始给出 403 错误代码
root@master1:~# kubectl get authservice
NAME AGE
authentication 140m
root@master1:~#
root@master1:~# curl -Lv 172.31.11.157/backend/
* Trying 172.31.11.157:80...
* TCP_NODELAY set
* Connected to 172.31.11.157 (172.31.11.157) port 80 (#0)
> GET /backend/ HTTP/1.1
> Host: 172.31.11.157
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 403 Forbidden
< date: Thu, 20 Jan 2022 14:29:33 GMT
< server: envoy
< content-length: 0
<
* Connection #0 to host 172.31.11.157 left intact
root@master1:~#
我检查了所有地图和服务,还检查了互联网的解决方案,但没有得到解决。
我还实现了与下面链接中提到的相同的配置。
https://www.getambassador.io/docs/emissary/
仔细检查一下,我的映射是正确的,我尝试使用 bypass_auth 标志绕过身份验证,它开始提供 200 代码。
需要您的支持来解决 403 错误代码。