分享一個k8s的mysql-router配置

因爲用了k8s裏搭建mysql-innodb-cluster,網上又好像沒有對應mysql-router的配置,雖然也簡單但能直接用最好啦,就簡單修改了下弄了對應配置

好吧,直接代碼。。。

 

Dockerfile(server.cicd:8089是私倉地址,自行更換唄)

FROM server.cicd:8089/common/percona-xtrabackup:8.0
LABEL maintainer="jiyilee"
RUN apt-get update
RUN apt-get  install -y net-tools
RUN apt-get  install -y iputils-ping
RUN apt-get purge -y percona-xtrabackup-80
RUN apt-get update && apt-get install -y mysql-shell
RUN apt-get install -y mysql-router

EXPOSE 6446
EXPOSE 6447

CMD ["bash", "-c", "tail -f /dev/null"]

install-router.sh(這裏前提是在k8s裏的mysql-service搭建好了mysql集羣哦。。。好像是廢話~)

#!/usr/bin/env bash
mysqlrouter --bootstrap root@mysql-primary-0.mysql-service:3306 -d myrouter --user=root

#myrouter/start.sh

#ps -ef|grep myroute

#mysql -u root -h 127.0.0.1 -P 6446 -p

deploy-mysql-router.yaml ingress-mysql-router.yaml service-nodeport.yaml(k8s文件,分三個、合一個你喜歡)

#創建service爲mysql-router
apiVersion: v1
kind: Service
metadata:
  name: mysql-router
  namespace: default
spec:
  ports:
  - name: router-port
    #targetPort: 6446
    port: 6446
  clusterIP: None
  selector:
    app: mysql-router
---
#創建後端服務的pod
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql-router-backend-pod
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql-router
  template:
    metadata:
      labels:
        app: mysql-router
    spec:
      containers:
      - name: mysql-router
        image: server.cicd:8089/common/mysql-router
        ports:
        - name: router-port
          containerPort: 6446
---
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: ingress-mysql-router namespace: default annotations: kubernetes.io/ingress.class: "nginx" spec: rules: - host: mysql-router.cicd http: paths: - path: backend: serviceName: mysql-router servicePort: 6446
---
apiVersion: v1 kind: Service metadata: name: mysql-router-ingress-nginx namespace: default labels: app: mysql-router spec: type: NodePort ports: - name: router-port port: 6446 targetPort: 6446 protocol: TCP nodePort: 36446 selector: app: mysql-router

 

ok了, 其實整個東東很簡單,當然直接mysql-router-service那type:NodePort也行。。。

再做個mysql-router.cicd域名指向,最後就可以這樣訪問了

mysql -u root -h mysql-router.cicd -P 36446 -p

 

PS,還是router簡單,而不是什麼mycat之類。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章