nginx - 如何在不同的命名空间上使用 nginx 入口 TCP 服务
问题描述
我在 kubernetes 集群中部署了两个命名空间。命名空间 A 主机 mysql 和命名空间 B 运行 postgress 并在这些端口上公开它们的服务部署
Namespace(A) - mysql - port (3306)
Namespace(B) - postgress - port (5432)
我需要使用 nginx-ingress kubernetes 集群来路由流量,这里是入口的示例 YAML 文件
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: mysql-ingress
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: mysql-ingress
http:
paths:
- path: /mysql
backend:
serviceName: mysql
servicePort: 3306
这个 YAML 文件比较适合 HTTP 类的服务,如何使用 nginx-ingress 实现 TCP 服务
解决方案
您可以参考以下文档来公开 tcp 和 udp 服务。
https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/exposing-tcp-udp-services.md
在我的集群中,入口控制器安装在 ingress-nginx 命名空间上。您可以从 configmap 获取 tcp 服务。
kubectl get cm -n ingress-nginx tcp-services -o yaml
基本上,您只需为您的两个数据库指定服务。
data:
"3306": NamespaceA/mysql:3306
"5432": NamespaceB/postgress:5432
推荐阅读
- c - 分配内存后不执行代码
- azure - 有人可以通过无限 HTTP 循环增加 Azure Web 应用程序的成本吗?
- android - 如何从 xml 文件重新创建创建的视图?
- reactjs - react-router切换链接时重新安装父组件
- python - SQL Query 如何计算两个不同 SQL 查询的结果?
- postgresql - 如何在函数中控制事务
- azure - 如何创建一个使用有限状态机工作流和 Windows 服务的事件驱动架构,支持云?
- progress-bar - Pandas-datareader 上的进度条?
- css - CSS:在没有父元素的情况下强制元素相互靠近。柔性?
- c# - 为什么我的 LINQ 会生成大量重复的 SQL 查询?