我似乎无法找到/了解如何更改kubernetes中Istio loadbalancer的默认错误登录页面。
例如503"没有健康的上游"页。
是否可以在Istio中更改这些内容?如果是这样我怎么去做呢?
提前致谢!
答案 0 :(得分:1)
对于Istio上的“本机”方法,您必须等待。 Envoy团队将自定义错误响应添加为1.9.0版本里程碑。希望他们将其包含在发行版中,我们将在今年年底之前获得它。这样我们就可以在Istio上使用它。 https://github.com/envoyproxy/envoy/issues/1178
关于自定义方法,您可以使用将可以提供这些自定义错误页面的nginx(位于同一窗格中)放置在任何面向用户的应用程序前面。但是,您将无法更改Envoy代理本身给出的一些错误,例如503或404。
(尚不起作用,请参见下文)如果您还需要自定义Envoy给出的错误,则另一种方法是使用nginx-ingress-controller,它可以与Istio一起提供自定义错误页面。如果您想尝试,请查看此问题以及他们在第一个评论中引用的问题,这可能会有所帮助。 https://github.com/kubernetes/ingress-nginx/issues/2126
更新2018年11月21日
要使用这种方法,您还必须等待。 (可能不止是使节),我自己进行了测试,并且遇到了Nginx必须解决的问题才能使其正常工作。定义默认后端时,nginx直接从kubernetes服务获取端点(ip:port),然后尝试访问集群上的这些IP。它不是通过名称访问并让Istio路由该连接,而是它的工作方式。
答案 1 :(得分:0)
2020更新
Envoy现在已添加此功能。这是一个示例配置,该配置将您自己的错误字符串用于HTTP 503响应:
mappers:
- filter:
status_code_filter:
comparison:
op: EQ
value:
default_value: 503
runtime_key: key_b
status_code: 503
body:
inline_string: "Custom 503 page content can go here"
有关如何进行自定义的更多详细信息,请查看文档--https://github.com/envoyproxy/envoy/blob/master/docs/root/configuration/http/http_conn_man/local_reply.rst