Fix Istio With Bitnami Mariadb Connection Refused
TL;DR 由于bitnami在配置mariadb时设置了NetworkPolicy,这导致了只能从特定的端口访问pod。但是在istio中,由于不会绕过NetworkPolicy,导致使用istio时,需要的15008端口被阻挡。详细参考istio的介绍。可以设置bitnami的networkPolicy.enabled为false来解决。 具体情况 最近在尝试Service mesh,使用目前流行的Istio。但是在搭建数据库的时候出现了问题,我发现数据库的3306端口居然被禁止访问。 由于是开启了Istio才会出现禁止访问的情况,以此为线索直接搜索得到了一个看起来很相关的结果:Server First协议。 可是尝试了各种解决方法,问题照旧。同时解决的过程中也看到很多人在询问这个问题,更加坚定了是Istio出现了问题。 于是倒霉蛋在网上兜兜转转好几天,还是无解。甚至还尝试了PostgreSQL,想着说不定会没问题。当然这里还是用的bitnami的打包。就当要放弃的时候,看到一个postgres-operator的issue,抱着试一下的态度尝试了一下,发现居然顺利连接。 问题部分解决,下面只需要看看这两者之间的差异,就能知道原因了。当我自己部署bitnami的镜像,而不是他的Helm charts,我发现也是能正常使用的,这就奇怪了,难不成他还搞了什么奇怪的限制? 翻看具体的实现,给我找到了一个关键文件networkpolicy.yaml。删除之后一切通畅,用这个再去查找,就能轻松找到具体的原因。