1. 应用场景说明
- 我们需用k8s集群提供开放特别的端口访问服务,如一些微服务端口
- 在团队开发环境中,通常要访问公共数据库,集群需提供统一的接口给大伙
接下来以实践四中设置的mariadb-galera为基础,公开端口3306,并用db.k8s-t2.com访问
2. 步骤
2.1 准备工作
编辑客户端 hosts, 填入
192.168.0.106 db.k8s-t2.com
2.2 配置values.yaml
去到ingress-nginx的解压目录,编辑values.yaml,约在 884行,其中的default/my-release-mariadb-galera是数据库服务的名称
#tcp: {}
# 8080: "default/example-tcp-svc:9000"
=>
tcp:
3306: "default/my-release-mariadb-galera:3306" # mariadb
4000: "tidb-cluster/basic-tidb:4000" # tidb
更新
helm upgrade --install -n ingress-nginx ingress-nginx .
可观察到3306, 4000端口已被监听,如图:
分别在navicat与dbeaver访问数据库3306, 4000, 如图:
3. 遇到的问题
4. 参考
Ingress Exposing TCP Services · Mailazy Blog
Access or Expose MySQL/MariaDB Service from outside of Kubernetes Cluster – Vinay's IT Press