首页 文章

如何从客户端访问由Nginx Ingress Kubernetes托管的MySql

提问于
浏览
0

我是Kubernetes和Nginx Ingress工具的新手,现在我正在尝试在AWS上的Nginx Ingress中使用VHost托管MySql服务 . 我创建了一个类似于的文件:

apiVersion: v1
kind: Service
metadata:
  name: mysql
  labels:
    app: mysql
spec:
  type: NodePort
  ports:
    - port: 3306
      protocol: TCP
  selector:
    app: mysql
---
apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: mysql
  labels:
    app: mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
        - name: mysql
          image: mysql
          imagePullPolicy: IfNotPresent
          env:
            - name: MYSQL_ROOT_PASSWORD
              value: password
          ports:
            - name: http
              containerPort: 3306
              protocol: TCP
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: mysql
  labels:
    app: mysql
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
    - host: mysql.example.com
      http:
        paths:
          - path: /
            backend:
              serviceName: mysql
              servicePort: 3306

我的LoadBalancer(由Nginx Ingress创建)端口配置如下所示:

80 (TCP) forwarding to 32078 (TCP)
Stickiness options not available for TCP protocols

443 (TCP) forwarding to 31480 (TCP)
Stickiness options not available for TCP protocols

mysql.example.com 指向我的ELB .

我期待类似的东西,从我的本地盒子我可以连接到MySql如果尝试类似的东西:

mysql -h mysql.example.com -u root -P 80 -p

哪个不行 . 而不是 NodePort ,如果我尝试 LoadBalancer ,它为我创建一个新的ELB正在按预期工作 .

我不确定这是否适合我想在这里实现的目标 . 如果使用Ingress和NodePort实现相同的方法,请帮助我 .

2 回答

  • 0

    Kubernetes Ingress作为一个通用概念并没有解决暴露/路由TCP / UDP服务的问题,如https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/exposing-tcp-udp-services.md中所述,如果你想使用入口,你应该使用自定义配置映射 . 请注意,它永远不会使用主机名进行路由,因为这是HTTP的一个功能,而不是TCP .

  • 3

    我成功通过ingress-nginx访问托管在Google Kubernetes Engine上的MariaDB / MySQL,使用为数据库Cluster IP创建的入口中指定的主机名 .

    根据docs,只需创建配置映射并在为Ingress定义的服务中公开端口 .

    This帮我弄清楚如何设置 --tcp-services-configmap--udp-services-configmap 标志 .

相关问题