2

我已经在 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 错误代码。

4

0 回答 0