首页 > 数据库 >ingress-nginx代理tcp使其能外部访问mysql

ingress-nginx代理tcp使其能外部访问mysql

时间:2025-01-19 15:27:41浏览次数:3  
标签:ingress ## tcp nginx auth mysql bitnami

一、helm部署mysql主从复制

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

 

helm pull bitnami/mysql

 解压后编辑values.yaml文件,修改如下(storageclass已设置默认类)

 117 ## @param architecture MySQL architecture (`standalone` or `replication`)
 118 ##
 119 architecture: replication
 120 ## MySQL Authentication parameters
 121 ##
 122 auth:
 123   ## @param auth.rootPassword Password for the `root` user. Ignored if existing secret is provided
 124   ## ref: https://github.com/bitnami/containers/tree/main/bitnami/mysql#setting-the-root-password-on-first-run
 125   ##
 126   rootPassword: "abc123456"
 127   ## @param auth.createDatabase Whether to create the .Values.auth.database or not
 128   ## ref: https://github.com/bitnami/containers/tree/main/bitnami/mysql#creating-a-database-on-first-run
 129   ##
 130   createDatabase: true
 131   ## @param auth.database Name for a custom database to create
 132   ## ref: https://github.com/bitnami/containers/tree/main/bitnami/mysql#creating-a-database-on-first-run
 133   ##
 134   database: "my_database"
 135   ## @param auth.username Name for a custom user to create
 136   ## ref: https://github.com/bitnami/containers/tree/main/bitnami/mysql#creating-a-database-user-on-first-run
 137   ##
 138   username: ""
 139   ## @param auth.password Password for the new user. Ignored if existing secret is provided
 140   ##
 141   password: ""
 142   ## @param auth.replicationUser MySQL replication user
 143   ## ref: https://github.com/bitnami/containers/tree/main/bitnami/mysql#setting-up-a-replication-cluster
 144   ##
 145   replicationUser: replicator
 146   ## @param auth.replicationPassword MySQL replication user password. Ignored if existing secret is provided
 147   ##
 148   replicationPassword: "abc123456"

安装

helm install mysql ./mysql -n mysql --create-namespace

 

二、添加ingress控制器tcp配置

[root@k8s-master01 mysql]# kubectl get daemonset,pods -n ingress-nginx
NAME                                      DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                         AGE
daemonset.apps/ingress-nginx-controller   1         1         1       1            1           ingress=true,kubernetes.io/os=linux   20h

NAME                                 READY   STATUS    RESTARTS   AGE
pod/ingress-nginx-controller-xcn5q   1/1     Running   0          9m46s

这里使用的是daemonset方式部署的,如果是deployment,需要将daemonset修改成deployment

kubectl edit daemonset ingress-nginx-controller -n ingress-nginx

 添加tcp配置

- --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services

三、编写相应的configmap

查看当前mysql服务

[root@k8s-master01 mysql]# kubectl get pods,svc -n mysql
NAME                    READY   STATUS    RESTARTS   AGE
pod/mysql-primary-0     1/1     Running   0          73m
pod/mysql-secondary-0   1/1     Running   0          73m

NAME                               TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/mysql-primary              ClusterIP   10.102.29.24    <none>        3306/TCP   73m
service/mysql-primary-headless     ClusterIP   None            <none>        3306/TCP   73m
service/mysql-secondary            ClusterIP   10.106.87.104   <none>        3306/TCP   73m
service/mysql-secondary-headless   ClusterIP   None            <none>        3306/TCP   73m

 编写configmap,注意当前namespace为mysql

vim mysql-tcp-cm.yaml
kind: ConfigMap
apiVersion: v1
metadata:
  name: tcp-services
  namespace: ingress-nginx
data:
  "30306": "mysql/mysql-primary:3306"
  "30307": "mysql/mysql-secondary:3306"

应用configmap

kubectl apply -f mysql-tcp-cm.yaml

四、测试连接

 

标签:ingress,##,tcp,nginx,auth,mysql,bitnami
From: https://blog.csdn.net/qq_43144842/article/details/145242417

相关文章

  • jenkins + gogs + docker + nginx 完成自动化部署
    jenkins+gogs+docker+nginx完成自动化部署app安装部署1.docker-compose配置文件version:'3'services:nginx:image:nginx:latestports:-"80:80"volumes:-./nginx.conf:/etc/nginx/nginx.confdepends_on:-jen......
  • Profibus DP转Modbus TCP协议转换网关模块功能详解
    ProfibusDP和ModbusTCP是两种不同的工业现场总线协议,ProfibusDP常用于制造业自动化领域,而ModbusTCP则在工业自动化和楼宇自动化等领域广泛应用。实现ProfibusDP转ModbusTCP功能,通常需要特定的网关设备,以下为你详细介绍:捷米JM-DPM-TCP网关模块这......
  • base中TCP/IP基础学习笔记
    base中的网络模型的学习笔记一.关于TCP/IP网络模型引言对于同一台设备上的进程间通信,有很多种方式,有管道、消息队列、共享内存、信号等方式,对于不同设备上的进程间通信,就需要网络通信,设备是多样的,所以要兼容各种各样的设备,就协商出了一套通用的网络协议。网络协议是分层......
  • Nginx负载均衡
    一、介绍NGINX是一个异步框架的Web服务器,也可以用作反向代理,负载平衡器和HTTP缓存。正向代理即是客户端代理,代理客户端,服务端不知道实际发起请求的客户端反向代理即是服务端代理,代理服务端,客户端不知道实际提供服务的服务端以代理服务器来接受internet上......
  • Nginx proxy_pass 的一个注意点
    原文:Nginx中proxy_pass的作用以及注意事项格式proxy_pass格式:proxy_passURL。proxy_passhttp://www.xxx.com/;proxy_passhttp://192.168.200.101:8080/uri;proxy_passunix:/tmp/www.sock;注意假设Nginx服务器的域名为www.xxx.com,后端服务器为192.168.1.10。......
  • nginx适配Overlay以及测试工具
    本文分享自天翼云开发者社区《nginx适配Overlay以及测试工具》,作者:pan Overlay与Underlay介绍Overlay网络和Underlay网络是一组相对概念,Overlay网络是建立在Underlay网络上的逻辑网络。而Overlay网络是通过网络虚拟化技术,在同一张Underlay网络上构建出的一张或者多张虚拟的逻......
  • linux kernel tcp丢包分析
     现象使用netstat-s能看见如下丢包统计  1352910failedconnectionattempts1352910resetsreceivedforembryonicSYN_RECVsockets 查看netstat的代码https://sourceforge.net/p/net-tools/code/ci/master/tree/ 取的这两个文件:/proc/net/netstat, /pro......
  • 揭秘10种主流PLC在ModbusTCP通信中的速度表现!
    大家好!我是付工。通透!终于把ModbusRTU弄明白了这样看来,ModbusTCP协议太简单了太简单了!C#轻松实现Modbus通信前面给大家介绍了一系列关于Modbus和ModbusTCP的知识。今天给大家来实测一下,对于不同品牌的PLC或板卡实现ModbusTCP通信时,通信速度有多快。一、测试界面我们......
  • 为什么TCP要做成流式协议,而非包?
    TCP被设计成流式协议而非包协议,主要有以下技术方面的原因:适应早期硬件与网络环境:    实现简单:在1970年代,硬件条件有限,如处理器速度慢、内存小等。字节流协议的实现相对简单,允许将控制信息插入字节序列空间,并和有效数据一样期望得到确认,比如SYN、FIN等控制位。这比处理复......
  • nginxUI 安装及学习
    https://www.nginxwebui.cn/功能说明本项目可以使用WebUI配置nginx的各项功能,包括http协议转发,tcp协议转发,反向代理,负载均衡,ssl证书自动申请、续签、配置等,最终生成nginx.conf文件并覆盖nginx的默认配置文件,完成nginx的最终功能配置.本项目可管理多个nginx服务器......