You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes 1.16下Nginx Ingress(0.26.1)暴露Mariadb TCP服务失败求助

解决Nginx Ingress暴露Mariadb TCP服务无法外部连接的问题

问题回顾

你尝试通过Nginx Ingress Controller暴露default命名空间下的Mariadb ClusterIP Service,已经完成了tcp-services ConfigMap配置,且控制器日志显示已读取该配置,但外部客户端连接时报错:ERROR 2002 (HY000): Can't connect to MySQL server。

已确认的正确配置

先梳理你已经做对的部分:

  • Ingress Controller启动参数正确指定了TCP配置映射:--tcp-services-configmap=nginx-ingress/tcp-services
  • tcp-services ConfigMap配置无误,正确将端口3306映射到default/mariadb:3306:
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: tcp-services
      namespace: nginx-ingress
    data:
      3306: "default/mariadb:3306"
    
  • Nginx生成的TCP服务配置符合预期,已经在控制器内部监听3306端口并代理到对应上游服务

核心问题:Ingress Controller Service未暴露TCP端口

你之前遗漏了关键一步:需要在Nginx Ingress Controller的NodePort Service中添加对应TCP端口的映射。Ingress Controller内部监听了3306端口,但如果没有通过Service把这个端口暴露到集群节点上,外部流量根本无法到达控制器的监听端口。

你补充的Service配置正好解决了这个问题:

apiVersion: v1
kind: Service
metadata:
  name: nginx-ingress-controller
spec:
  externalTrafficPolicy: Cluster
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: http
  - name: https
    port: 443
    protocol: TCP
    targetPort: https
  - name: 3066-tcp
    port: 3066
    protocol: TCP
    targetPort: 3066-tcp
  selector:
    app: nginx-ingress
    component: controller
    release: nginx-ingress
  sessionAffinity: None
  type: NodePort

这里新增的端口映射将集群节点的3066端口转发到Ingress Controller Pod的3066-tcp端口(对应控制器内部监听的3306端口,应该是你在控制器部署中定义的端口别名),外部客户端现在可以通过集群节点IP:3066访问Mariadb服务。

额外排查建议(供其他遇到类似问题的参考)

如果以后再遇到类似TCP服务暴露问题,还可以从这些方向排查:

  • 检查集群节点的防火墙/安全组是否开放了对应的NodePort(比如这里的3066)
  • 在Ingress Controller Pod内部测试上游连通性:
    kubectl exec -n nginx-ingress <你的控制器Pod名称> -- mysql -h mariadb.default.svc.cluster.local -P 3306 -u <Mariadb用户名> -p
    
    确认控制器能正常访问Mariadb Service
  • 确认Mariadb Service的端口配置正确,且Pod处于Running状态
  • 检查外部客户端的网络是否能到达集群节点(比如是否有公网访问权限、是否在同一VPC等)

内容的提问来源于stack exchange,提问作者sfgroups

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:53:18