我在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服务
答案 0 :(得分:0)
您可以参考以下文档来公开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