k8s ingress 代理 mysql 3306端口

helm 安装 ingress-nginx

helm upgrade --install ingress-nginx ingress-nginx \
  --repo https://kubernetes.github.io/ingress-nginx \
  --namespace ingress-nginx --create-namespace

执行命令

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml

创建 configMap

apiVersion: v1
kind: ConfigMap
metadata:
  name: tcp-services
  namespace: ingress-nginx
data:
  3306: "default/mysql:3306" # port:namespace/service:port

编辑 depolyments ingress-nginx-controller

kubectl edit deployment ingress-nginx-controller -n ingress-nginx

# 在 args 下添加参数
- --tcp-services-configmap=ingress-nginx/tcp-services

编辑service ingress-nginx-controller

kubectl edit service ingress-nginx-controller -n ingress-nginx

# 增加端口
- name: tcp-service-3306
  port: 3306
  protocol: TCP
  targetPort: 3306

测试

添加测试 mysql ingress yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: mysql-ingress
spec:
  ingressClassName: nginx
  rules:
    - host: foo.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: mysql
                port:
                  number: 3306

打开电脑hosts文件, 增加测试域名
127.0.0.1 foo.com

使用 Navicat 或者其它 mysql 管理工具测试连接
主机: foo.com
端口: 3306


参考:
ingress 官方介绍 https://kubernetes.io/zh-cn/docs/concepts/services-networking/ingress/
ingress-nginx 公开TCP和UDP服务 https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值