kubernetes部署单节点mysql8.0.27,traefik2实现tcp路由

mysql是tcp连接,使用traefik2.5.7来进行tcp路由

注意每个资源的端口配置,理解这个很重要!!
这些都可随意配置,加深理解

本机host配置:127.0.0.1 mysql.cream.com
本机docker nginx容器:3312:3312(本机:nginx容器),nginx容器内服务监听3312端口,转发到k8s Node的4306端口
traefik Pod:3312:4306(traefik Pod:k8s Node),3312是traefik配置的mysql入口点的端口,4306是k8s Node的端口,traefik请求入口
mysql IngressRouteTcp:mysql(spec.entryPoints),HostSNI(`*`)(spec.routes.match),配置traefik的tcp路由规则
mysql Service:3307:3306(clusterIp:mysql Pod),3307是Service的集群ip暴露的端口,3306是mysql Pod的暴露端口
mysql Pod:3306,mysql服务启动的端口

1、镜像

docker pull mysql:8.0.27

2、tag

docker images | grep mysql
mysql    8.0.27    3218b38490ce   4 weeks ago     516MB

docker tag 3218b38490ce registry.cn-shenzhen.aliyuncs.com/hqyinfra/mysql:v8.0.27

3、推送

docker push registry.cn-shenzhen.aliyuncs.com/hqyinfra/mysql:v8.0.27

4、pvc.yaml

kubectl apply -f pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql
  namespace: app
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi

5、cm.yaml

kubectl apply -f cm.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql
  labels:
    app: mysql
  namespace: app
data:
  my.cnf: |
    [mysqld]
    character-set-server = utf8mb4
    collation-server = utf8mb4_unicode_ci
    skip-character-set-client-handshake = 1
    default-storage-engine = INNODB
    max_allowed_packet = 500M
    explicit_defaults_for_timestamp = 1
    long_query_time = 10

6、dp.yaml

kubectl apply -f dp.yaml
apiVersion: apps/v1
kind: Deployment
metadata
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值