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

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐