k8s 如何使用 ClusterIP + ingress 从集群外部访问内部的 mysql?-灵析社区

MaxClick

我看懂了,这样的,你使用Ingress其实已经是已经把80端口映射到3306了 ` ( mysql.example.com:80 => mysql8-service:3306 )`, 所以如果这样方案能行的话,正确的访问应该是 `mycli -uroot -p123456 -hmysql.example.com -P80 `(不过这样理论也也不能用,一个是http协议一个是tcp协议, Ingress实现tcp的转发是要额外配置的) 至于为什么NodePort可以使用, 因为你使用 NodePort 已经把 3306 的端口映射到宿主机的30001了,你使用 `mycli -uroot -p123456 -hmysql.example.com -P30001 ` 通过 ip 访问到数据库了,根本没有通过 Ingress 进行访问, 也就是 `-hmysql.example.com` 是把域名解析成 ip 也就是你宿主机 ip , mysql 客户端再通过 ip+端口 访问到数据库,不知道我说清楚了没 至于你想通过 Ingress 来转发tcp协议 我没玩过,不过可以参考一下这篇文章 `https://blog.csdn.net/w851685279/article/details/115911686`

阅读量:1

点赞量:0

问AI