自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

提升數(shù)據(jù)安全與性能,掌握Helm一鍵部署MySQL 8.0主從技巧

數(shù)據(jù)庫(kù) MySQL
本教程將介紹如何使用Helm一鍵部署MySQL 8.0的主從復(fù)制架構(gòu),以實(shí)現(xiàn)數(shù)據(jù)庫(kù)的高可用和數(shù)據(jù)備份。

在云原生應(yīng)用開發(fā)中,數(shù)據(jù)庫(kù)的高可用性和數(shù)據(jù)一致性是至關(guān)重要的。MySQL作為一種常用的關(guān)系型數(shù)據(jù)庫(kù),在云原生環(huán)境中的部署和管理也變得愈發(fā)重要。本教程將介紹如何使用Helm一鍵部署MySQL 8.0的主從復(fù)制架構(gòu),以實(shí)現(xiàn)數(shù)據(jù)庫(kù)的高可用和數(shù)據(jù)備份。

架構(gòu)圖

準(zhǔn)備工作

在先前的文中,我們?cè)敿?xì)介紹了如何利用Helm管理Kubernetes(K8S)集群,相信這已經(jīng)使大家對(duì)Helm的基本使用有了初步的了解。在開始之前,確保你已經(jīng)安裝了以下工具:

  • Kubernetes集群
  • Helm包管理器

安裝Helm Chart

首先,添加MySQL的Helm倉(cāng)庫(kù),執(zhí)行如下命令:

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

然后,執(zhí)行下面的命令更新本地倉(cāng)庫(kù)索引:

helm repo update

搜索MySQL的版本

通過(guò)下面的命令,在倉(cāng)庫(kù)搜索MySQL的版本。

controlplane $ helm search repo mysql
NAME                    CHART VERSION   APP VERSION     DESCRIPTION                                       
bitnami/mysql           10.1.1          8.0.36          MySQL is a fast, reliable, scalable, and easy t...
bitnami/phpmyadmin      16.0.1          5.2.1           phpMyAdmin is a free software tool written in P...
bitnami/mariadb         18.0.1          11.3.2          MariaDB is an open source, community-developed ...
bitnami/mariadb-galera  13.0.0          11.3.2          MariaDB Galera is a multi-primary database clus...

配置主從復(fù)制

MySQL Helm Chart提供了簡(jiǎn)單的配置選項(xiàng)來(lái)設(shè)置主從復(fù)制。你可以通過(guò)以下方式配置:

helm install mysql-cluster  \
        --set auth.rootPassword='mysql' \
        --set global.storageClass=local-path \
        --set architecture=replication \
        --set auth.password='mysql' \
        --set secondary.replicaCount=1 \
        --set auth.replicationPassword='replpass' \
        -n mysql --create-namespace \
        bitnami/mysql

執(zhí)行上述命令后,會(huì)返回一下結(jié)果,如下圖:

等待幾分鐘之后,執(zhí)行如下命令即可查看部署的情況:

controlplane $ k get pod -n mysql -o wide
NAME                        READY   STATUS    RESTARTS   AGE     IP            NODE           NOMINATED NODE   READINESS GATES
mysql-cluster-primary-0     1/1     Running   0          5m45s   192.168.1.7   node01         <none>           <none>
mysql-cluster-secondary-0   1/1     Running   0          5m45s   192.168.0.5   controlplane   <none>           <none>

驗(yàn)證主從同步

(1) 執(zhí)行如下命令,安裝客戶端軟件。

apt install mysql-client -y

(2) 執(zhí)行下面的命令,驗(yàn)證主節(jié)點(diǎn)

# 登錄主容器
mysql -uroot -h192.168.1.7 -pmysql

# 查看主從狀態(tài)
# 查看File和Position的值,在從庫(kù)配置中會(huì)顯示。
mysql> show master status\G
*************************** 1. row ***************************
             File: mysql-bin.000003
         Position: 157
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)

(3) 執(zhí)行下面的命令,驗(yàn)證從節(jié)點(diǎn)

# 登錄從容器
mysql -uroot -h192.168.0.5 -pmysql
# 查看Slave_IO_Running和Slave_SQL_Running的值是否為Yes.
mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: mysql-cluster-primary
                  Master_User: replicator
                  Master_Port: 3306
                Connect_Retry: 10
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 157
               Relay_Log_File: mysql-relay-bin.000006
                Relay_Log_Pos: 373
        Relay_Master_Log_File: mysql-bin.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

遇到的問(wèn)題總結(jié)

(1) 執(zhí)行完部署命令后,提示"resources" sections in the chart not set,如下:

WARNING: There are "resources" sections in the chart not set. Using "resourcesPreset" is not recommended for production. For production installations, please set the following values according to your workload needs:
  - primary.resources
  - secondary.resources

通過(guò)上述提示信息是由于resources的資源沒(méi)有設(shè)置。

下載MySQL包到本地

通過(guò)下面的命令把MySQL包下載到本地。

controlplane $ helm pull bitnami/mysql --version=10.1.1
controlplane $ ls
filesystem  get_helm.sh  mysql-10.1.1.tgz  snap
controlplane $

執(zhí)行下面的命令解壓下載好的MySQL包:

controlplane $ tar zxvf mysql-10.1.1.tgz 
mysql/Chart.yaml
mysql/Chart.lock
mysql/values.yaml
...省略...

修改mysql/values.yaml中的resources,如下:

resources:
    requests:
      cpu:2
      memory:1024Mi
    limits:
      cpu:2
      memory:1024Mi

修改完之后保存退出,執(zhí)行如下命令重新部署。

helm install mysql-cluster  \
        --set auth.rootPassword='mysql' \
        --set global.storageClass=local-path \
        --set architecture=replication \
        --set auth.password='mysql' \
        --set secondary.replicaCount=1 \
        --set auth.replicationPassword='replpass' \
        --set useBundledSystemChart=true \
        -f /root/mysql/values.yaml \
        -n mysql --create-namespace \
        bitnami/mysql

執(zhí)行完上述的命令后,剛才那個(gè)警告就消失了。如下圖:

寫到最后

通過(guò)本教程,你學(xué)習(xí)了如何使用Helm一鍵部署MySQL 8.0的主從復(fù)制架構(gòu)。這為你提供了一個(gè)簡(jiǎn)單而強(qiáng)大的方法來(lái)部署可擴(kuò)展的、高可用的MySQL數(shù)據(jù)庫(kù)集群,并確保了數(shù)據(jù)的備份和一致性。繼續(xù)探索更多Helm Chart的配置選項(xiàng),以滿足你的特定需求,并構(gòu)建穩(wěn)健的云原生應(yīng)用。

責(zé)任編輯:趙寧寧 來(lái)源: 攻城獅成長(zhǎng)日記
相關(guān)推薦

2024-04-12 08:28:38

優(yōu)化查詢語(yǔ)句PostgreSQL索引

2012-04-13 15:12:07

2019-08-28 12:02:04

Helm云原生一鍵部署

2018-03-14 14:57:56

一鍵卡復(fù)印技巧

2023-06-15 10:00:00

Jenkins任務(wù)操作

2010-11-08 13:58:14

Check Point互聯(lián)網(wǎng)安全移動(dòng)訪問(wèn)軟件刀片

2024-06-25 15:31:21

2025-02-10 10:38:24

2024-05-23 10:58:49

2023-10-10 13:49:00

Docker容器

2024-08-13 08:22:04

緩存機(jī)制C#內(nèi)存緩存工具

2012-07-16 10:09:39

Windows 7操作系統(tǒng)

2018-08-02 11:05:00

安全狗

2024-04-08 13:59:03

大模型Replicate

2015-02-09 15:25:52

換膚

2010-06-22 15:46:52

數(shù)據(jù)安全丟失防護(hù)

2015-03-09 11:10:14

運(yùn)維

2024-06-04 07:46:05

2024-09-19 08:09:37

MySQL索引數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)