国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于kubernetes部署MySQL主從環(huán)境

這篇具有很好參考價值的文章主要介紹了基于kubernetes部署MySQL主從環(huán)境。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

部署方式
通過部署mysql主從容器,配置主從pod之間數(shù)據(jù)同步。

配置數(shù)據(jù)庫訪問的密碼

創(chuàng)建 Mysql 密碼的 Secret
[root@k8s-master1 master]# kubectl create secret generic mysql-password --namespace=app --from-literal=mysql_root_password=root
secret/mysql-passowrd created
You have new mail in /var/spool/mail/root
[root@k8s-master1 master]# kubectl get secret -n app
NAME                                  TYPE                                  DATA   AGE
default-token-w6q98                   kubernetes.io/service-account-token   3      48d
ingress-nginx-admission               Opaque                                3      35d
ingress-nginx-admission-token-sqbvf   kubernetes.io/service-account-token   3      35d
ingress-nginx-token-bt7g2             kubernetes.io/service-account-token   3      35d
mysql-passowrd                        Opaque                                1      6s

先配置MySQL-Master服務(wù)
配置數(shù)據(jù)卷

[root@k8s-master1 master]# cat mysql-master-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-master-pvc
  namespace: app
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi
  storageClassName: nfs-client              #這里要換成你環(huán)境的storageClassName
  volumeMode: Filesystem
[root@k8s-master1 master]# kubectl apply -f mysql-master-pvc.yaml
[root@k8s-master1 master]# kubectl get pvc -n app
NAME                         STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
mysql-master-pvc             Bound    pvc-f2b5598c-4fd8-48f2-bc93-0e8c27e225ec   2Gi        RWO            nfs-client     10s

通過ConfiigMap配置MySQL的配置文件my.cnf

[root@k8s-master1 master]# cat my.cnf
[mysqld]
skip-host-cache
skip-name-resolve
datadir                = /var/lib/mysql
socket                 = /var/run/mysqld/mysqld.sock
secure-file-priv       = /var/lib/mysql-files
pid-file               = /var/run/mysqld/mysqld.pid
user                   = mysql
secure-file-priv       = NULL
server-id              = 1                              #master節(jié)點的server-id=1
log-bin                = master-bin
log_bin_index          = master-bin.index
binlog_do_db           = deploy_test
binlog_ignore_db       = information_sechema
binlog_ignore_db       = mysql
binlog_ignore_db       = performance_schema
binlog_ignore_db       = sys
binlog-format          = row

[client]
socket                 = /var/run/mysqld/mysqld.sock

!includedir  /etc/mysql/conf.d/
[root@k8s-master1 master]# kubectl create cm mysql-master-cm --from-file=my.cnf -n app
configmap/mysql-master-cm created
[root@k8s-master1 master]# kubectl get cm -n app |grep mysql
mysql-master-cm            1      19s

配置Service服務(wù)

[root@k8s-master1 master]# cat mysql-master-svc.yaml
apiVersion: v1
kind: Service
metadata:
  name: mysql-master-svc
  namespace: app
  labels:
    app: mysql-master
spec:
  ports:
  - port: 3306
    name: mysql
    targetPort: 3306
    nodePort: 30306
  selector:
    app: mysql-master
  type: NodePort
  sessionAffinity: ClientIP
[root@k8s-master1 master]# kubectl apply -f mysql-master-svc.yaml
service/mysql-master-svc created

配置主節(jié)點pod啟動的StatefulSet配置文件

[root@k8s-master1 master]# cat mysql-master-StatefulSet.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mysql-master
  namespace: app
spec:
  selector:
    matchLabels:
      app: mysql-master
  serviceName: "mysql-master-svc"
  replicas: 1
  template:
    metadata:
      labels:
        app: mysql-master
    spec:
      terminationGracePeriodSeconds: 10
      containers:
      - args:
        - --character-set-server=utf8mb4
        - --collation-server=utf8mb4_unicode_ci
        - --lower_case_table_names=1
        - --default-time_zone=+8:00
        name: mysql
        # image: docker.io/library/mysql:8.0.34
        image: registry.cn-shenzhen.aliyuncs.com/xiaohh-docker/mysql:8.0.34
        ports:
        - containerPort: 3306
          name: mysql
        volumeMounts:
        - name: mysql-data
          mountPath: /var/lib/mysql
        - name: mysql-conf
          mountPath: /etc/my.cnf
          readOnly: true
          subPath: my.cnf
        env:
        - name: MYSQL_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              key: mysql_root_password
              name: mysql-password
      volumes:
      - name: mysql-data
        persistentVolumeClaim:
          claimName: mysql-master-pvc
      - name: mysql-conf
        configMap:
          name: mysql-master-cm
          items:
          - key: my.cnf
            mode: 0644
            path: my.cnf
[root@k8s-master1 master]# kubectl apply -f mysql-master-StatefulSet.yaml
statefulset.apps/mysql-master created

檢查服務(wù)的啟動情況

[root@k8s-master1 master]# kubectl get pods -n app -o wide |grep mysql
mysql-master-0                              1/1     Running   0              104s    10.10.36.73      k8s-node1     <none>           <none>

配置mysql-salve

配置PVC

[root@k8s-master1 slave]# cat mysql-slave-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-slave-pvc
  namespace: app
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi
  storageClassName: nfs-client
  volumeMode: Filesystem
[root@k8s-master1 slave]# kubectl apply -f mysql-slave-pvc.yaml
persistentvolumeclaim/mysql-slave-pvc created

配置ConfigMap

[root@k8s-master1 slave]# cat my.cnf
[mysqld]
skip-host-cache
skip-name-resolve
datadir                = /var/lib/mysql
socket                 = /var/run/mysqld/mysqld.sock
secure-file-priv       = /var/lib/mysql-files
pid-file               = /var/run/mysqld/mysqld.pid
user                   = mysql
secure-file-priv       = NULL
server-id              = 2                                #這個要修改
log-bin                = master-bin
log_bin_index          = master-bin.index
binlog_do_db           = deploy_test
binlog_ignore_db       = information_sechema
binlog_ignore_db       = mysql
binlog_ignore_db       = performance_schema
binlog_ignore_db       = sys
binlog-format          = row

[client]
socket                 = /var/run/mysqld/mysqld.sock

!includedir  /etc/mysql/conf.d/
[root@k8s-master1 slave]# kubectl create cm mysql-slave-cm --from-file=my.cnf -n app
configmap/mysql-slave-cm created
You have new mail in /var/spool/mail/root
[root@k8s-master1 slave]# kubectl get cm -n app |grep mysql-slave-cm
mysql-slave-cm             1      13s

配置Service

[root@k8s-master1 slave]# cat mysql-slave-svc.yaml
apiVersion: v1
kind: Service
metadata:
  name: mysql-slave-svc
  namespace: app
  labels:
    app: mysql-slave
spec:
  ports:
  - port: 3306
    name: mysql
    targetPort: 3306
    nodePort: 30307
  selector:
    app: mysql-slave
  type: NodePort
  sessionAffinity: ClientIP
[root@k8s-master1 slave]# kubectl apply -f mysql-slave-svc.yaml
service/mysql-slave-svc created

創(chuàng)建MySQL的Pod

[root@k8s-master1 slave]# cat mysql-slave-StatefulSet.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mysql-slave
  namespace: app
spec:
  selector:
    matchLabels:
      app: mysql-slave
  serviceName: "mysql-master-svc"
  replicas: 1
  template:
    metadata:
      labels:
        app: mysql-slave
    spec:
      terminationGracePeriodSeconds: 10
      containers:
      - args:
        - --character-set-server=utf8mb4
        - --collation-server=utf8mb4_unicode_ci
        - --lower_case_table_names=1
        - --default-time_zone=+8:00
        name: mysql
        # image: docker.io/library/mysql:8.0.34
        image: registry.cn-shenzhen.aliyuncs.com/xiaohh-docker/mysql:8.0.34
        ports:
        - containerPort: 3306
          name: mysql
        volumeMounts:
        - name: mysql-data
          mountPath: /var/lib/mysql
        - name: mysql-conf
          mountPath: /etc/my.cnf
          readOnly: true
          subPath: my.cnf
        env:
        - name: MYSQL_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              key: mysql_root_password
              name: mysql-password
      volumes:
      - name: mysql-data
        persistentVolumeClaim:
          claimName: mysql-slave-pvc
      - name: mysql-conf
        configMap:
          name: mysql-slave-cm
          items:
          - key: my.cnf
            mode: 0644
            path: my.cnf
[root@k8s-master1 slave]# kubectl apply -f mysql-slave-StatefulSet.yaml
statefulset.apps/mysql-slave created
[root@k8s-master1 slave]# kubectl get pods -n app -o wide |grep mysql
mysql-master-0                              1/1     Running   0               14m     10.10.36.73      k8s-node1     <none>           <none>
mysql-slave-0                               1/1     Running   0               38s     10.10.36.74      k8s-node1     <none>           <none>

主從POD都創(chuàng)建完成了,咱們登錄驗證一下,并配置一下主從同步

[root@k8s-master1 slave]# kubectl exec -it mysql-master-0 -n app -- mysql -uroot -proot
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.34 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

在從節(jié)點執(zhí)行,配置主從關(guān)系

mysql> change master to master_host='mysql-master-0.mysql-master-svc.app.svc.cluster.local',
    -> master_port=3306, master_user='root', master_password='root', master_log_file='master-bin.000003',
    -> master_log_pos=157,master_connect_retry=30,get_master_public_key=1;
Query OK, 0 rows affected, 11 warnings (0.03 sec)
master_host:這個參數(shù)是master的地址,kubernetes 提供的解析規(guī)則是 pod 名稱.service名稱.命名空間.svc.cluster.local,所以 master 的 mysql 地址是 deploy-mysql-master-0.deploy-mysql-master-svc.deploy-test.svc.cluster.local
master_port:主節(jié)點的 MySQL 端口,沒改默認(rèn) 3306
master_user:登錄到主節(jié)點的 mysql 用戶
master_password:登錄到主節(jié)點的用戶密碼
master_log_file:之前查看 mysql 主節(jié)點狀態(tài)時的 file 字段
master_log_pos:之前查看 mysql 主節(jié)點狀態(tài)時的 Position 字段
master_connect-retry:主節(jié)點重連時間
get_master_public_key:連接主 mysql 的公鑰獲取方式

啟動 slave

mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.01 sec)

查看slave的狀態(tài)

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: mysql-master-0.mysql-master-svc.app.svc.cluster.local
                  Master_User: root
                  Master_Port: 3306
                Connect_Retry: 30
              Master_Log_File: master-bin.000003
          Read_Master_Log_Pos: 157
               Relay_Log_File: mysql-slave-0-relay-bin.000002
                Relay_Log_Pos: 327
        Relay_Master_Log_File: master-bin.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

在主節(jié)點創(chuàng)建一個數(shù)據(jù)庫驗證一下主從同步情況文章來源地址http://www.zghlxwxcb.cn/news/detail-811544.html

到了這里,關(guān)于基于kubernetes部署MySQL主從環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 基于docker環(huán)境搭建Mysql主從

    基于docker環(huán)境搭建Mysql主從

    ? mysql主從復(fù)制的原理將主數(shù)據(jù)庫的增刪改查等操作記錄到二進(jìn)制日志文件中,從庫接收主庫日志文件,根據(jù)最后一次更新的 起始位置,同步復(fù)制到從數(shù)據(jù)庫中,使得主從數(shù)據(jù)庫保持一致。 Binary log:主數(shù)據(jù)庫的二進(jìn)制日志;Relay log:從服務(wù)器的中繼日志。 復(fù)制過程: 1,主

    2024年02月02日
    瀏覽(20)
  • 基于docker-compsoe.yml配置mysql8.0主從 (需要進(jìn)入主從容器執(zhí)行命令)

    主my.cnf文件 從my.cnf文件 主要的yml配置 主容器的操作 進(jìn)入主mysql容器 3306端口的 docker exec -it 容器id /bin/bash 登錄mysql mysql -uroot -p 創(chuàng)建主從復(fù)制的賬號 - 創(chuàng)建用戶slave,密碼123456 CREATE USER \\\'slave\\\'@\\\'%\\\' IDENTIFIED BY \\\'123456\\\'; 授權(quán)主從復(fù)制 GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO \\\'slave\\\'@

    2024年02月16日
    瀏覽(94)
  • 基于docker容器部署MySQL數(shù)據(jù)庫

    基于docker容器部署MySQL數(shù)據(jù)庫

    一,概要.... 2 二,環(huán)境準(zhǔn)備.... 3 2.1,docker部署.... 3 三,使用docker部署mysql 6 3.1、創(chuàng)建數(shù)據(jù)存放目錄.... 6 3.2、創(chuàng)建bridge網(wǎng)絡(luò)并指定IP區(qū)間.... 6 3.3、Docker安裝MySQL. 6 3.4、自定義配置.... 7 四,MySQL簡單的配置.... 9 4.1、在容器 mysql 中開啟一個交互模式的終端.... 9 4.2、mysql登錄....

    2024年02月04日
    瀏覽(17)
  • Docker 容器搭建mysql 集群(主從數(shù)據(jù)庫)

    Docker 容器搭建mysql 集群(主從數(shù)據(jù)庫)

    目錄 1.背景? ? ? ?? 2.設(shè)備及軟件版本 3.開始搭建(這里不介紹安裝docker及mysql) 3.1創(chuàng)建主數(shù)據(jù)庫容器(master) 3.2查看容器是否創(chuàng)建成功 3.3進(jìn)入修改容器下的/etc/my.cnf文件 3.3.1先拷貝my.cnf到容器外修改完再覆蓋容器原來的my.cnf文件 3.4重啟mysql容器使配置文件生效 3.5查看是否

    2024年02月08日
    瀏覽(31)
  • zabbix監(jiān)控mysql容器主從同步狀態(tài)并告警釘釘/企業(yè)微信

    zabbix監(jiān)控mysql容器主從同步狀態(tài)并告警釘釘/企業(yè)微信

    前言:被監(jiān)控的主機已經(jīng)安裝和配置mysql主從同步,和zabbix-agent插件。 mysql創(chuàng)建主從同步:http://t.csdn.cn/P4MYq centos安裝zabbix-agent2:http://t.csdn.cn/fx74i? mysql主從同步,主要監(jiān)控這2個參數(shù)指標(biāo): Slave_IO_Running: Yes Slave_SQL_Running: Yes 進(jìn)入zabbix目錄, cd?/etc/zabbix 創(chuàng)建目錄: mkdir scrip

    2024年02月14日
    瀏覽(25)
  • 【MySQL】主從復(fù)制&部署

    【MySQL】主從復(fù)制&部署

    SQL 什么是SQL? Structure Query Language(結(jié)構(gòu)化查詢語言) 它被美國國家標(biāo)準(zhǔn)局(ANSI)確定為關(guān)系型數(shù)據(jù)庫語言的美國標(biāo)準(zhǔn),后被國際化標(biāo)準(zhǔn)組織(ISO)采納為關(guān)系數(shù)據(jù)庫語言的國際標(biāo)準(zhǔn)。 數(shù)據(jù)庫管理系統(tǒng)可以通過SQL管理數(shù)據(jù)庫;定義和操作數(shù)據(jù),維護(hù)數(shù)據(jù)的完整性和安全性。 優(yōu)點 簡單

    2024年02月08日
    瀏覽(23)
  • MYSQL主從(主備)部署

    MYSQL主從(主備)部署

    1、主機規(guī)劃,示例環(huán)境用配置1主2從 類型 服務(wù)器IP 數(shù)據(jù)庫版本 Master 192.168.100.1 Mysql:5.7.27 Save1 192.168.100.2 Mysql:5.7.27 Save2 192.168.100.3 Mysql:5.7.27 2、服務(wù)器環(huán)境準(zhǔn)備 2.1 安裝docker 在3臺服務(wù)器上安裝docker,安裝過程跳過 2.2 mysql鏡像上傳 ...... 1、創(chuàng)建數(shù)據(jù)和配置文件掛載目錄(3臺服務(wù)

    2024年02月06日
    瀏覽(13)
  • docker Mysql部署主從集群

    docker Mysql部署主從集群

    目錄 1 docker安裝 2 docker mysql 安裝配置 遠(yuǎn)程連接 2.0 配置 2.0.1 文件夾 配置 2.0.2 主庫文件配置 my.cnf - 主庫 id 和 開啟二進(jìn)制日志? 2.0.3 從庫文件配置?- 從庫 id 2.1 mysql 主 - 第一個端口號和從庫不一樣 2.1.1 docker run 主庫 2.1.2? 查看主庫二進(jìn)制日志 2.2 mysql 從庫 2.2.1 docker run 從庫

    2024年02月02日
    瀏覽(15)
  • Docker集群部署-MySQL主從復(fù)制

    Docker集群部署-MySQL主從復(fù)制

    利用Docker實現(xiàn)MySQL主從復(fù)制架構(gòu)的部署,實現(xiàn)1主1從集群配置。 要求實驗主機能夠連接外網(wǎng),已經(jīng)正確安裝Docker,并關(guān)閉防火墻和selinux。 新建主服務(wù)器容器實例3307 # docker run -p 3307:3306 --name mysql-master -v /mydata/mysql-master/log:/var/log/mysql -v /mydata/mysql-master/data:/var/lib/mysql -v /m

    2024年02月12日
    瀏覽(17)
  • 使用Docker容器部署java運行環(huán)境(java8 + mysql5.7 + redis5.0 + nginx1.14.1

    使用Docker容器部署java運行環(huán)境(java8 + mysql5.7 + redis5.0 + nginx1.14.1

    環(huán)境:阿里云ECS服務(wù)器 1.1 安裝工具 1.2 為yum源添加docker倉庫位置 1.3 將軟件包信息提前在本地索引緩存 (非必要,建議執(zhí)行,可以提升yum安裝的速度,報錯去掉fast試試) 1.4 安裝Docker 傻瓜式安裝 點擊y 1.5 啟動Docker 1.6 設(shè)置開機自啟動 1.7 安裝完成后可以測試一下,是否安裝成功

    2024年02月02日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包