提升数据安全与性能,掌握Helm一键部署MySQL 8.0主从技巧

news2024/11/26 10:51:16

在云原生应用开发中,数据库的高可用性和数据一致性是至关重要的。MySQL作为一种常用的关系型数据库,在云原生环境中的部署和管理也变得愈发重要。本教程将介绍如何使用Helm一键部署MySQL 8.0的主从复制架构,以实现数据库的高可用和数据备份。

准备工作

在先前的文中,我们详细介绍了如何利用Helm管理Kubernetes(K8S)集群,相信这已经使大家对Helm的基本使用有了初步的了解。
在开始之前,确保你已经安装了以下工具:

  • Kubernetes集群
  • Helm包管理器

安装Helm Chart

首先,添加MySQL的Helm仓库,执行如下命令:

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

然后,执行下面的命令更新本地仓库索引:

helm repo update

搜索MySQL的版本

通过下面的命令,在仓库搜索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...

配置主从复制

MySQL Helm Chart提供了简单的配置选项来设置主从复制。你可以通过以下方式配置:

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

执行上述命令后,会返回一下结果,如下图:
返回的结果
等待几分钟之后,执行如下命令即可查看部署的情况:

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>

验证主从同步

  1. 执行如下命令,安装客户端软件。
apt install mysql-client -y
  1. 执行下面的命令,验证主节点
# 登录主容器
mysql -uroot -h192.168.1.7 -pmysql

# 查看主从状态
# 查看File和Position的值,在从库配置中会显示。
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)
  1. 执行下面的命令,验证从节点
# 登录从容器
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

遇到的问题总结

  1. 执行完部署命令后,提示"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

通过上述提示信息是由于resources的资源没有设置。

下载MySQL包到本地

通过下面的命令把MySQL包下载到本地。

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

执行下面的命令解压下载好的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

修改完之后保存退出,执行如下命令重新部署。

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

执行完上述的命令后,刚才那个警告就消失了。如下图:

写到最后

通过本教程,你学习了如何使用Helm一键部署MySQL 8.0的主从复制架构。这为你提供了一个简单而强大的方法来部署可扩展的、高可用的MySQL数据库集群,并确保了数据的备份和一致性。继续探索更多Helm Chart的配置选项,以满足你的特定需求,并构建稳健的云原生应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1582586.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

官网下载IDE插件并导入IDE

官网下载IDEA插件并导入IDEA 1. 下载插件2. 导入插件 1. 下载插件 地址&#xff1a;https://plugins.jetbrains.com/plugin/21068-codearts-snap/versions 说明&#xff1a;本次演示以IDEA软件为例 操作&#xff1a; 等待下载完成 2. 导入插件 点击File->setting->Pl…

白帽工具箱:初识Metasploit Framework(MSF)渗透测试框架

&#x1f31f;&#x1f30c; 欢迎来到知识与创意的殿堂 — 远见阁小民的世界&#xff01;&#x1f680; &#x1f31f;&#x1f9ed; 在这里&#xff0c;我们一起探索技术的奥秘&#xff0c;一起在知识的海洋中遨游。 &#x1f31f;&#x1f9ed; 在这里&#xff0c;每个错误都…

实验4 DHCP基础配置

实验4 DHCP基础配置 一、 原理描述二、 实验目的三、 实验内容四、 实验配置五、 实验步骤1.基本配置2.配置DHCPServer功能3.配置DHCP Client 一、 原理描述 动态主机配置协议 DHCP是一个局域网的网络协议&#xff0c;使用UDP协议工作&#xff0c;主要有两个用途&#xff1a;用…

昨天,“支付宝崩了”上热搜; 4 月编程语言排行榜:PHP 跌至历史最低点;老乡鸡 “开源” 了;微信 WCDB 迎来重大升级

0、支付宝崩了”上热搜&#xff0c;官方回应&#xff1a;短暂性访问不畅&#xff0c;已经快速恢复 昨日&#xff0c;有许多网友反映支付宝无法使用&#xff0c;用不了蚂蚁能量收集等功能&#xff0c;#支付宝崩了# 话题冲上微博热搜。 支付宝客服人员回应称&#xff0c;确实有系…

HJ102 字符统计(字符串,TreeMap,TreeMap是按照自身的顺序排序,比如数字的话,按照数字升序,ascII等。)

TreeMap是按照自身的顺序排序&#xff0c;比如数字的话&#xff0c;按照数字升序&#xff0c;ascII等。 import java.util.Scanner; import java.util.TreeMap;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] arg…

全志V851se开发板TinyVision镜像制作快速启动教程

制作系统启动镜像​ 烧写系统​ 硬件&#xff1a;TinyVision主板 x1硬件&#xff1a;TypeC-SUB x1硬件&#xff1a;TF卡读卡器 x1硬件&#xff1a;8GB以上的 Micro TF卡 x1软件&#xff1a;Tina系统TF卡烧录工具: PhoenixCard-V2.8软件&#xff1a;TinaTF卡最小系统镜像&…

福特长安福特 福克斯 2013款 两厢经典 1.8L MT基本型

http://www.huanqiuauto.com/cars/656021/ 【两厢经典 1.8L MT基本型_福克斯_报价_参数_油耗_图片】 好像还要加92的汽油这个方面就很难受 3.相关的测试和相关的说明信息 沿袭了福特 WRC赛车滴纯正血统&#xff0c;容易驾驭操控。使用福特C3P系统设计的后悬挂系统和强化底盘&…

Day36:LeedCode 435. 无重叠区间 763.划分字母区间 56. 合并区间 蓝桥杯 管道

435. 无重叠区间 给定一个区间的集合 intervals &#xff0c;其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量&#xff0c;使剩余区间互不重叠 。 示例 1: 输入: intervals [[1,2],[2,3],[3,4],[1,3]] 输出: 1 解释: 移除 [1,3] 后&#xff0c;剩下的区间…

基于Dell 3930 RACK服务器的RAID1配置

**背景&#xff1a;**项目上使用的Dell 3930 RACK服务器需要配置RAID1冗余备份功能&#xff0c;设置比较简单&#xff0c;此处也做个记录&#xff0c;以免忘记。 步骤&#xff1a; 1、重启服务器&#xff0c;启动过程中按F12&#xff0c;进入设置界面 2、先选中进入BIOS Setup…

maven中两个打包命令的区别:install命令与package命令

package命令&#xff1a;        将项目打包&#xff08;jar/war&#xff09;&#xff0c;将打包结果放到项目下的 target 目录下 install命令&#xff1a;        1. 将项目打包&#xff08;jar/war&#xff09;&#xff0c;将打包结果放到项目下的 target 目录…

汪静波谈全球资产配置策略:洞悉大势,智绘未来

在全球经济一体化的今天,如何进行科学合理的全球资产配置,成为了投资者必须面对的重要课题。诺亚财富的创始人汪静波女士,以其专业的视角和丰富的经验,为我们提供了宝贵的建议。 汪静波女士认为,全球资产配置的核心在于洞悉大势、把握机遇。她指出,在当前全球经济不确定性增加的…

Vue - 4( 8000 字 Vue 入门级教程)

一&#xff1a; Vue 初阶 1.1 关于不同版本的 Vue Vue.js 有不同版本&#xff0c;如 vue.js 与 vue.runtime.xxx.js&#xff0c;这些版本主要针对不同的使用场景和需求进行了优化&#xff0c;区别主要体现在以下几个方面&#xff1a; 完整版 vs 运行时版&#xff1a; vue.js&…

无货源,0基础做电商,6个选品逻辑快速出单!

首先我们要先解决货源问题&#xff0c;再来谈选品逻辑。初入电商行业&#xff0c;进货渠道建议使用1688。首先1688是国内最大的B2B批发平台&#xff0c;平台服务和安全性都提供了一定的保障&#xff0c;以及丰富的货源选择。你可以浏览不同供应商的产品&#xff0c;对比价格、质…

SCI期刊“on hold”状态是什么意思?

“on hold”状态是什么&#xff1f; 期刊“on hold”直译为“暂停服务”&#xff0c;表示科睿唯安担忧该期刊所发表内容的质量&#xff0c;并决定根据标准进行重新评估。在重新评估过程中&#xff0c;新的内容将不会被索引。 当评估完成后&#xff0c;该期刊将有两种可能的结果…

SpringBoot集成Skywalking日志收集

在实际项目中&#xff0c;为了方便线上排查问题&#xff0c;尤其是微服务之间调用链路比较复杂的系统中&#xff0c;通过可视化日志的手段仍然是最直接也很方便的排查定位问题的手段&#xff0c;比如大家熟悉的ELK就是一种比较成熟的可视化日志展现方式&#xff0c;在skywalkin…

OpenCV-python安装教程

先安装opencv-contrib-python pip install opencv-contrib-python 再换源安装opencv-python pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple 如果出现 使用这个&#xff0c;3.6环境下不能安装opencv的最新版本 pip install opencv-python4.5.5.62…

AI论文速读 | 线性时间序列预测模型分析

论文标题&#xff1a;An Analysis of Linear Time Series Forecasting Models 作者&#xff1a; William Toner&#xff0c; Luke Darlow 机构&#xff1a;爱丁堡大学&#xff08;Edinburgh&#xff09;&#xff0c;华为研究中心&#xff08;爱丁堡&#xff09; 论文链接&am…

【C++题解】1601. 挖胡萝卜

问题&#xff1a;1601. 挖胡萝卜 类型&#xff1a;基本运算、小数运算 题目描述&#xff1a; 小兔朱迪挖了 x 个胡萝卜&#xff0c;狐狸尼克挖到胡萝卜数量是小兔挖到的 3 倍&#xff0c;小羊肖恩挖到胡萝卜的数量比狐狸尼克少 8 个。 请你编程计算一下狐狸尼克和小羊肖恩分别…

winform入门篇3 -- 手工创建窗口

手工创建窗口 Form, 窗口 可以手工创建一个窗口类 class MyFrom : Form { } 1.创建一个windows 窗体应用 这样就自动创建了一个窗体应用Form1 现在不使用这个自动创建的&#xff0c;手工写一个 2.手动创建 1.删除Form1.cs 2.添加 新建MyForm 类 让该类继承Form 在构造…

面试题:MQ

一、常见的mq产品 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMqRabbitMQ: One broker to queue them all | RabbitMQhttps://www.rabbitmq.com/ 二、作用&#xff08;面试题&#xff09; 为什么用MQ&#xff1f; 1、异步处理 2、应用解耦 3、流量削峰 三、交换机…