mysql實現(xiàn)mycat讀寫分離

先部署mysql主從

一、主從同步

1、啟動mysql

  • master
---
apiVersion: v1
kind: Secret
metadata:
  name: mysql-master-secret
  namespace: xafq-api-middleware
data:
  username: cm9vdA==
  password: U2dRSHZzeTlNN0xXS0JDeg==
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql-master-config
  namespace: xafq-api-middleware
data:
  my.cnf: |
    [client]
    default-character-set=utf8mb4
    [mysql]
    default-character-set=utf8mb4
    [mysqld]
    default-time_zone = '+8:00'
    log-bin=mysql-bin
    skip-name-resolve
    server-id=1
    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
    pid-file        = /var/run/mysqld/mysqld.pid
    socket          = /var/run/mysqld/mysqld.sock
    datadir         = /var/lib/mysql
    secure-file-priv= NULL
    max_connections = 10000
    lower_case_table_names=1
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/layer: db
    k8s.kuboard.cn/name: mysql-master
  name: mysql-master
  namespace: xafq-api-middleware
spec:
  podManagementPolicy: OrderedReady
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s.kuboard.cn/layer: db
      k8s.kuboard.cn/name: mysql-master
  serviceName: mysql-master
  template:
    metadata:
      labels:
        k8s.kuboard.cn/layer: db
        k8s.kuboard.cn/name: mysql-master
    spec:
      initContainers:
        - command:
            - sh
            - '-c'
            - >-
              until nc -w 1 -z
              mysql-slave-1.xafq-api-middleware.svc.cluster.local 3306; do echo
              waiting for mysql-slave-1; sleep 2; done;
          image: 'xxxxxxxxxxx/middleware/busybox:latest'
          imagePullPolicy: Always
          name: init-slave-1
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
        - command:
            - sh
            - '-c'
            - >-
              until nc -w 1 -z
              mysql-slave-2.xafq-api-middleware.svc.cluster.local 3306; do echo
              waiting for mysql-slave-2; sleep 2; done;
          image: 'xxxxxxxxxxx/middleware/busybox:latest'
          imagePullPolicy: Always
          name: init-slave-2
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      containers:
        - env:
            - name: MYSQL_ROOT_PASSWORD
              valueFrom:
                secretKeyRef:
                  key: password
                  name: mysql-master-secret
          image: xxxxxxxxxxx/middleware/mysql:8.0.27
          imagePullPolicy: IfNotPresent
          name: mysql-master
          resources:
            limits:
              cpu: 1000m
              memory: 8Gi
            requests:
              cpu: 500m
              memory: 4Gi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
            - mountPath: /etc/mysql/
              name: mysql-master
            - mountPath: /var/lib/mysql
              name: mysql-master-data
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
        - configMap:
            defaultMode: 420
            name: mysql-master-config
          name: mysql-master
  updateStrategy:
    rollingUpdate:
      partition: 0
    type: RollingUpdate
  volumeClaimTemplates:
    - apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        annotations:
          k8s.kuboard.cn/pvcType: Dynamic
        creationTimestamp: null
        name: mysql-master-data
      spec:
        accessModes:
          - ReadWriteMany
        resources:
          requests:
            storage: 20Gi
        storageClassName: statefu-nfs
        volumeMode: Filesystem
---
apiVersion: v1
kind: Service
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/layer: db
    k8s.kuboard.cn/name: mysql-master
  name: mysql-master
  namespace: xafq-api-middleware
spec:
  ports:
    - name: mysql-master
      nodePort: 30490
      port: 3306
      protocol: TCP
      targetPort: 3306
  selector:
    k8s.kuboard.cn/layer: db
    k8s.kuboard.cn/name: mysql-master
  sessionAffinity: None
  type: NodePort
  • slave-1
---
apiVersion: v1
kind: Secret
metadata:
  name: mysql-slave-1-secret
  namespace: xafq-api-middleware
data:
  username: cm9vdA==
  password: U2dRSHZzeTlNN0xXS0JDeg==
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql-slave-1-config
  namespace: xafq-api-middleware
data:
  my.cnf: |
    [client]
    default-character-set=utf8mb4
    [mysql]
    default-character-set=utf8mb4
    [mysqld]
    default-time_zone = '+8:00'
    skip-name-resolve
    server-id=2
    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
    pid-file        = /var/run/mysqld/mysqld.pid
    socket          = /var/run/mysqld/mysqld.sock
    datadir         = /var/lib/mysql
    secure-file-priv= NULL
    max_connections = 10000
    lower_case_table_names=1
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/layer: db
    k8s.kuboard.cn/name: mysql-slave-1
  name: mysql-slave-1
  namespace: xafq-api-middleware
spec:
  podManagementPolicy: OrderedReady
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s.kuboard.cn/layer: db
      k8s.kuboard.cn/name: mysql-slave-1
  serviceName: mysql-slave-1
  template:
    metadata:
      labels:
        k8s.kuboard.cn/layer: db
        k8s.kuboard.cn/name: mysql-slave-1
    spec:
      containers:
        - env:
            - name: MYSQL_ROOT_PASSWORD
              valueFrom:
                secretKeyRef:
                  key: password
                  name: mysql-slave-1-secret
          image: xxxxxxxxxxx/middleware/mysql:8.0.27
          imagePullPolicy: IfNotPresent
          name: mysql-slave-1
          resources:
            limits:
              cpu: 1000m
              memory: 8Gi
            requests:
              cpu: 500m
              memory: 4Gi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
            - mountPath: /etc/mysql/
              name: mysql-slave-1
            - mountPath: /var/lib/mysql
              name: mysql-slave-1-data
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
        - configMap:
            defaultMode: 420
            name: mysql-slave-1-config
          name: mysql-slave-1
  updateStrategy:
    rollingUpdate:
      partition: 0
    type: RollingUpdate
  volumeClaimTemplates:
    - apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        annotations:
          k8s.kuboard.cn/pvcType: Dynamic
        creationTimestamp: null
        name: mysql-slave-1-data
      spec:
        accessModes:
          - ReadWriteMany
        resources:
          requests:
            storage: 20Gi
        storageClassName: statefu-nfs
        volumeMode: Filesystem
---
apiVersion: v1
kind: Service
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/layer: db
    k8s.kuboard.cn/name: mysql-slave-1
  name: mysql-slave-1
  namespace: xafq-api-middleware
spec:
  ports:
    - name: mysql-slave-1
      nodePort: 30491
      port: 3306
      protocol: TCP
      targetPort: 3306
  selector:
    k8s.kuboard.cn/layer: db
    k8s.kuboard.cn/name: mysql-slave-1
  sessionAffinity: None
  type: NodePort
  • slave-2
---
apiVersion: v1
kind: Secret
metadata:
  name: mysql-slave-2-secret
  namespace: xafq-api-middleware
data:
  username: cm9vdA==
  password: U2dRSHZzeTlNN0xXS0JDeg==
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql-slave-2-config
  namespace: xafq-api-middleware
data:
  my.cnf: |
    [client]
    default-character-set=utf8mb4
    [mysql]
    default-character-set=utf8mb4
    [mysqld]
    default-time_zone = '+8:00'
    skip-name-resolve
    server-id=3
    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
    pid-file        = /var/run/mysqld/mysqld.pid
    socket          = /var/run/mysqld/mysqld.sock
    datadir         = /var/lib/mysql
    secure-file-priv= NULL
    max_connections = 10000
    lower_case_table_names=1
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/layer: db
    k8s.kuboard.cn/name: mysql-slave-2
  name: mysql-slave-2
  namespace: xafq-api-middleware
spec:
  podManagementPolicy: OrderedReady
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s.kuboard.cn/layer: db
      k8s.kuboard.cn/name: mysql-slave-2
  serviceName: mysql-slave-2
  template:
    metadata:
      labels:
        k8s.kuboard.cn/layer: db
        k8s.kuboard.cn/name: mysql-slave-2
    spec:
      containers:
        - env:
            - name: MYSQL_ROOT_PASSWORD
              valueFrom:
                secretKeyRef:
                  key: password
                  name: mysql-slave-2-secret
          image: xxxxxxxxxxx/middleware/mysql:8.0.27
          imagePullPolicy: IfNotPresent
          name: mysql-slave-2
          resources:
            limits:
              cpu: 1000m
              memory: 8Gi
            requests:
              cpu: 500m
              memory: 4Gi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
            - mountPath: /etc/mysql/
              name: mysql-slave-2
            - mountPath: /var/lib/mysql
              name: mysql-slave-2-data
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
        - configMap:
            defaultMode: 420
            name: mysql-slave-2-config
          name: mysql-slave-2
  updateStrategy:
    rollingUpdate:
      partition: 0
    type: RollingUpdate
  volumeClaimTemplates:
    - apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        annotations:
          k8s.kuboard.cn/pvcType: Dynamic
        creationTimestamp: null
        name: mysql-slave-2-data
      spec:
        accessModes:
          - ReadWriteMany
        resources:
          requests:
            storage: 20Gi
        storageClassName: statefu-nfs
        volumeMode: Filesystem
---
apiVersion: v1
kind: Service
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/layer: db
    k8s.kuboard.cn/name: mysql-slave-2
  name: mysql-slave-2
  namespace: xafq-api-middleware
spec:
  ports:
    - name: mysql-slave-2
      nodePort: 30492
      port: 3306
      protocol: TCP
      targetPort: 3306
  selector:
    k8s.kuboard.cn/layer: db
    k8s.kuboard.cn/name: mysql-slave-2
  sessionAffinity: None
  type: NodePort

從庫沒什么區(qū)別劲蜻,就配置文件注意下

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql-slave-1-config
  namespace: xafq-dev-middleware
data:
  my.cnf: |
    [client]
    default-character-set=utf8mb4
    [mysql]
    default-character-set=utf8mb4
    [mysqld]
    default-time_zone = '+8:00'
    log-bin=mysql-bin  #這個去掉就可以了,從庫可以不用打開binlog
    skip-name-resolve
    server-id=2 # 唯一id
    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
    pid-file        = /var/run/mysqld/mysqld.pid
    socket          = /var/run/mysqld/mysqld.sock
    datadir         = /var/lib/mysql
    secure-file-priv= NULL
    max_connections = 10000
    lower_case_table_names=1

2考余、配置主從

  • master
CREATE USER 'slave-1'@'%' IDENTIFIED WITH mysql_native_password BY 'pJ4dF2oS3gN4eY4l';
grant replication slave on *.* to 'slave-1'@'%' ;
CREATE USER 'slave-2'@'%' IDENTIFIED WITH mysql_native_password BY 'pJ4dF2oS3gN4eY4l';
grant replication slave on *.* to 'slave-2'@'%' ;
flush privileges;
show master status; 
  • slave-1
change master to master_host='192.168.2.60',master_port=30190,master_user='slave-1',master_password='pJ4dF2oS3gN4eY4l',
         master_log_file='mysql-bin.000003',master_log_pos=1325;
start slave;
show slave status
  • slave-2
change master to master_host='192.168.2.60',master_port=30190,master_user='slave-2',master_password='pJ4dF2oS3gN4eY4l',
         master_log_file='mysql-bin.000003',master_log_pos=1325;
start slave;
show slave status

二先嬉、準備mycat2

官網(wǎng):http://dl.mycat.org.cn/2.0/

1、源碼打包鏡像

FROM openjdk:8-jre
 
ENV AUTO_RUN_DIR ./mycat2
ENV DEPENDENCE_FILE mycat2-1.22-release-jar-with-dependencies.jar
ENV TEMPLATE_FILE mycat2-install-template-1.21.zip
 
RUN sed -i "s@http://.*archive.ubuntu.com@http://mirrors.aliyun.com@g" /etc/apt/sources.list
RUN sed -i "s@http://.*security.ubuntu.com@http://mirrors.aliyun.com@g" /etc/apt/sources.list
 
RUN buildDeps='procps wget unzip' \
&& apt-get update \
&& apt-get install -y $buildDeps
 
# 安裝地址 http://dl.mycat.org.cn/2.0/
# http://dl.mycat.org.cn/2.0/1.22-release/
# http://dl.mycat.org.cn/2.0/install-template/
RUN wget -P $AUTO_RUN_DIR/ http://dl.mycat.org.cn/2.0/1.22-release/$DEPENDENCE_FILE \
&& wget -P $AUTO_RUN_DIR/ http://dl.mycat.org.cn/2.0/install-template/$TEMPLATE_FILE
 
RUN cd $AUTO_RUN_DIR/ \
&& unzip $TEMPLATE_FILE \
&& ls -al . \
&& mv $DEPENDENCE_FILE mycat/lib/ \
&& chmod +x mycat/bin/* \
&& chmod 755 mycat/lib/* \
&& mv mycat /usr/local
 
#copy mycat /usr/local/mycat/
VOLUME /usr/local/mycat/conf
VOLUME /usr/local/mycat/logs
 
EXPOSE 8066 1984
CMD ["/usr/local/mycat/bin/mycat", "console"]

2楚堤、編譯

docker build -t mycat2:1.22 .

3疫蔓、復(fù)制配置

docker run -d --name=mycat2 -p 8066:8066 -p 1984:1984 mycat2:1.22
 
# 復(fù)制容器內(nèi)配置
docker cp mycat2:/usr/local/mycat/conf .
docker cp mycat2:/usr/local/mycat/logs .

4、修改配置

此操作只是為了啟動mycat,所以只需要配置一個數(shù)據(jù)源,可以讓mycat啟動即可,數(shù)據(jù)源和集群配置,后續(xù)配置

.
├── conf
│   ├── clusters
│   │   └── prototype.cluster.json
│   ├── datasources
│   │   └── prototypeDs.datasource.json
│   ├── dbseq.sql
│   ├── logback.xml
│   ├── mycat.lock
│   ├── schemas
│   │   ├── information_schema.schema.json
│   │   └── mysql.schema.json
│   ├── sequences
│   ├── server.json
│   ├── simplelogger.properties
│   ├── sql
│   │   ├── db1.sql
│   │   ├── db2.sql
│   │   ├── db3.sql
│   │   ├── describe_testdb_address.sql
│   │   ├── describe_testdb_travelrecord.sql
│   │   ├── show_databases.sql
│   │   ├── show_full_tables_from_testdb2.sql
│   │   └── show_full_tables_from_testdb.sql
│   ├── sqlcaches
│   ├── state.json
│   ├── users
│   │   └── root.user.json
│   ├── version.txt
│   └── wrapper.conf
├── Dockerfile
└── logs
    ├── mycat.pid
    └── wrapper.log

需要操作的配置文件:clusters,datasources,schemas,users其他配置可以不用動身冬,修改順序

datasources/prototypeDs.datasource.json

{
    "dbType":"mysql",
    "idleTimeout":60000,
    "initSqls":[],
    "initSqlsGetConnection":true,
    "instanceType":"WRITE", 
    "maxCon":1000,
    "maxConnectTimeout":3000,
    "maxRetryCount":5,
    "minCon":1,
    "name":"prototypeDs",    
    "password":"123456",
    "type":"JDBC",     
    "url":"jdbc:mysql://192.168.2.60:30190/mysql?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
    "user":"root", 
    "weight":0
}
instanceType : READ 只讀衅胀,WRITE 只寫,READ_WRITE 讀寫
name:數(shù)據(jù)源的名字酥筝,最好唯一有代表性,默認配置不用改
user:寫權(quán)限用戶滚躯,因為mycat會進行寫操作,所以最好是寫權(quán)限用戶。
password:用戶密碼
url:只需要改IP和端口掸掏,只用于連接mysql茁影,不寫庫都可以
其他可以根據(jù)需求進行修改

clusters/prototype.cluster.json

{
        // 集群類型:SINGLE_NODE(單節(jié)點)、MASTER_SLAVE(普通主從)丧凤、GARELA_CLUSTER(garela cluster/PXC集群)等
        "clusterType":"MASTER_SLAVE",
        "heartbeat":{
                "heartbeatTimeout":1000,
                "maxRetry":3,
                "minSwitchTimeInterval":300,
                "slaveThreshold":0
        },
        "masters":[
                // 主節(jié)點數(shù)據(jù)源名稱
                "prototypeDs",
        ],
        // 只有主節(jié)點則從節(jié)點可以不配置
        "replicas":[
                // 從節(jié)點數(shù)據(jù)源名稱
        ],
        "maxCon":200,
        // 集群名稱募闲。在后面配置物理庫(schema)時會用到
        "name":"prototype",
        // 查詢負載均衡策略
        "readBalanceType":"BALANCE_ALL_READ",
        // NOT_SWITCH(不進行主從切換)、SWITCH(進行主從切換)
        "switchType":"SWITCH"
}
readBalanceType 查詢負載均衡策略
    可選值:
    BALANCE_ALL(默認值) #獲取集群中所有數(shù)據(jù)源
    BALANCE_ALL_READ #獲取集群中允許讀的數(shù)據(jù)源
    BALANCE_READ_WRITE #獲取集群中允許讀寫的數(shù)據(jù)源,但允許讀的數(shù)據(jù)源優(yōu)先
    BALANCE_NONE #獲取集群中允許寫數(shù)據(jù)源,即主節(jié)點中選擇
    switchType
        NOT_SWITCH:不進行主從切換
        SWITCH:進行主從切換

5愿待、啟動服務(wù)

docker run -d --name=mycat2 -p 8066:8066 -p 1984:1984 -v $PWD/conf:/usr/local/mycat/conf -v $PWD/logs:/usr/local/mycat/logs mycat2:1.22

6浩螺、連接數(shù)據(jù)庫

端口號為8066,用戶名密碼為users/root.user.json配置呼盆,鏈接上去之后年扩,執(zhí)行一下sql

  • 查詢已配置數(shù)據(jù)源
/*+ mycat:showDataSources{} */;
  • 新增數(shù)據(jù)源
/*+ mycat:createDatasource{"dbType":"mysql","idleTimeout":60000,"initSqls":[],"initSqlsGetConnection":true,"instanceType":"WRITE","maxCon":1000,"maxConnectTimeout":3000,"maxRetryCount":5,"minCon":1,"name":"master","password":"SgQHvsy9M7LWKBCz","type":"JDBC","url":"jdbc:mysql://mysql-master:3306/mysql?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8","user":"root","weight":0} */;

/*+ mycat:createDatasource{"dbType":"mysql","idleTimeout":60000,"initSqls":[],"initSqlsGetConnection":true,"instanceType":"READ","maxCon":1000,"maxConnectTimeout":3000,"maxRetryCount":5,"minCon":1,"name":"slave-1","password":"SgQHvsy9M7LWKBCz","type":"JDBC","url":"jdbc:mysql://mysql-slave-1:3306/mysql?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8","user":"root","weight":0} */;

/*+ mycat:createDatasource{"dbType":"mysql","idleTimeout":60000,"initSqls":[],"initSqlsGetConnection":true,"instanceType":"READ","maxCon":1000,"maxConnectTimeout":3000,"maxRetryCount":5,"minCon":1,"name":"slave-2","password":"SgQHvsy9M7LWKBCz","type":"JDBC","url":"jdbc:mysql://mysql-slave-2:3306/mysql?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8","user":"root","weight":0} */;

創(chuàng)建完成之后,執(zhí)行查詢數(shù)據(jù)源sql访圃,就會出現(xiàn)3個數(shù)據(jù)源

  • 創(chuàng)建集群
/*+ mycat:createCluster{"name":"prototype","masters":["master"],"replicas":["slave-1","slave-2"],"readBalanceType":"BALANCE_ALL_READ"} */;

多個節(jié)點逗號隔開厨幻,執(zhí)行完成后執(zhí)行查詢集群名

/*+ mycat:showClusters{} */;
  • 創(chuàng)建邏輯庫
create database test;

如果主從做好之后,那么所有的主從數(shù)據(jù)庫都會創(chuàng)建這個數(shù)據(jù)庫

  • 修改配置文件

綁定集群
schemas/test.schema.json
只需要加一句"targetName":"prototype"就可以了

    "schemaName":"test",
    "shardingTables":{},
    "targetName":"prototype",
    "views":{}
---
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/name: mycat2
  name: mycat2
  namespace: middleware
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s.kuboard.cn/name: mycat2
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        k8s.kuboard.cn/name: mycat2
    spec:
      containers:
        - image: 'xxxxxxxxxxx/middleware/mycat2:1.22'
          imagePullPolicy: IfNotPresent
          name: mycat2
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
            - mountPath: /usr/local/mycat/conf
              name: conf
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
        - name: conf
          nfs:
            path: /data/project/mycat/conf
            server: 172.16.0.46

---
apiVersion: v1
kind: Service
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/name: mycat2
  name: mycat2
  namespace: middleware
spec:
  externalTrafficPolicy: Cluster
  internalTrafficPolicy: Cluster
  ipFamilies:
    - IPv4
  ipFamilyPolicy: SingleStack
  ports:
    - name: mysql
      nodePort: 30495
      port: 8066
      protocol: TCP
      targetPort: 8066
  selector:
    k8s.kuboard.cn/name: mycat2
  sessionAffinity: None
  type: NodePort

到此部署結(jié)束了腿时。

3况脆、接入prometheus

官方網(wǎng)文檔:https://www.yuque.com/ccazhw/ml3nkf/gwx15x

  • server.json
{
....
  "properties":{"prometheusPort":7066},
....
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市批糟,隨后出現(xiàn)的幾起案子格了,更是在濱河造成了極大的恐慌,老刑警劉巖徽鼎,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盛末,死亡現(xiàn)場離奇詭異,居然都是意外死亡否淤,警方通過查閱死者的電腦和手機悄但,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來石抡,“玉大人檐嚣,你說我怎么就攤上這事福” “怎么了嚎京?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長隐解。 經(jīng)常有香客問我鞍帝,道長,這世上最難降的妖魔是什么煞茫? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任帕涌,我火速辦了婚禮岩臣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宵膨。我一直安慰自己,他們只是感情好炸宵,可當(dāng)我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布辟躏。 她就那樣靜靜地躺著,像睡著了一般土全。 火紅的嫁衣襯著肌膚如雪捎琐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天裹匙,我揣著相機與錄音瑞凑,去河邊找鬼。 笑死概页,一個胖子當(dāng)著我的面吹牛籽御,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播惰匙,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼技掏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了项鬼?” 一聲冷哼從身側(cè)響起哑梳,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎绘盟,沒想到半個月后鸠真,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡龄毡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年吠卷,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稚虎。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡撤嫩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蠢终,到底是詐尸還是另有隱情序攘,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布寻拂,位于F島的核電站程奠,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏祭钉。R本人自食惡果不足惜瞄沙,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧距境,春花似錦申尼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至诬滩,卻和暖如春霹粥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疼鸟。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工后控, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人空镜。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓浩淘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親吴攒。 傳聞我的和親對象是個殘疾皇子馋袜,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容