ingress代理mysql_无法公开使用nginx-ingress公开在kubernetes集群内运行的mysql tcp服务...

我遇到了一个公开在kubernetes集群中运行的mysql数据库的问题 . 群集在AWS上使用kops运行 . 我使用舵图表进行nginx-ingress:https://github.com/helm/charts/tree/master/stable/nginx-ingress

controller:

config:

use-proxy-protocol: "true"

metrics:

enabled: true

replicaCount: 2

service:

annotations:

service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: '*'

stats:

enabled: true

rbac:

create: true

tcp:

5000: default/cbioportal-prod-db-mysql:3306

在集群内,我可以通过端口5000通过nginx telnet到db:

# telnet eating-dingo-nginx-ingress-controller 5000

J

5.7.14

ke_|c&tc"ui%]}mysql_native_passwordConnection closed by foreign host

但我似乎无法使用aws负载均衡器的主机名从外部连接 .

telnet xxx.us-east-1.elb.amazonaws.com 5000

Trying x.x.x.x...

当我查看aws ec2仪表板时,我看到负载均衡器的安全组允许来自端口5000上的任何地方的连接 .

UPDATE

当我使用端口3306而不是5000时,我可以连接:

tcp:

3306: default/cbioportal-prod-db-mysql:3306

但是现在端口是打开的:

$ nmap --verbose -Pn x.x.x.x

PORT STATE SERVICE

21/tcp open ftp

80/tcp open http

443/tcp open https

3306/tcp open mysql

我收到授权问题:

$ mysql -h x.x.x.x -uroot -pabcdef

mysql: [Warning] Using a password on the command line interface can be insecure.

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 2

我可以直接连接到nginx控制器,而不会在集群中出现问题:

kubectl run -it --rm --image=mysql:5.7 --restart=Never mysql-client -- mysql -h eating-dingo-nginx-ingress-controller -uroot -pabcdef

我正在使用这个mysql头盔图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你的问题是关于腾讯云服务使用nginx-ingress代理nacos端口,并使用域名访问。那么我可以为你解答。 首先,为了在腾讯云服务器上使用nginx-ingress代理nacos端口,并使用域名访问,你需要完成以下步骤: 1. 在腾讯云服务器上安装nginx-ingress。你可以使用helm chart来完成安装。安装完成后,你可以通过kubectl get svc -n ingress-nginx查看nginx-ingress的service。 2. 在nacos配置中心的deployment中添加annotations,使其能够被nginx-ingress识别。例如: ``` apiVersion: apps/v1 kind: Deployment metadata: name: nacos namespace: default labels: app: nacos spec: replicas: 1 selector: matchLabels: app: nacos template: metadata: labels: app: nacos annotations: nginx.ingress.kubernetes.io/rewrite-target: / nginx.ingress.kubernetes.io/proxy-body-size: "0" spec: containers: - name: nacos image: nacos/nacos-server:latest ports: - containerPort: 8848 ``` 3. 创建ingress资源,并将其与nacos的service关联。例如: ``` apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: nacos-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: rules: - host: nacos.example.com # 这里填写你的域名 http: paths: - path: /nacos backend: serviceName: nacos servicePort: 8848 ``` 4. 最后,在腾讯云域名管理中添加一条记录,将域名解析到nginx-ingress的service对应的IP地址。这样你就可以通过域名访问nacos了。 希望这些步骤能够帮助到你。如果你还有其他问题,可以继续问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值