KubeSphere学习---Mysql中间件安装部署实战

2023-05-16

在这里插入图片描述

前言

上一篇讲解了KubeSphere的多租户系统,并创建了众多用户,和众多项目,其中我们挑选:"dev-zhao"用户,和"his"项目来进行中间件的部署和学习。

应用部署需要关注的要素

因为这里我的KubeSphere是基于Kubernetes上部署的。那么我们在部署中间件的时候就和在Kubernetes上一样,比如:
1、应用的部署方式:你是使用无状态工作负载?还是有状态负载?或者说是守护进程式的负载?使
无状态负载:适用于部署个Nginx,Httpd等不需要后端数存储的。
有状态负载:用于部署Mysql,Redis,需要适合连接后面的存储的,比如一个mysql Pod宕机了,这时它的后面存储的数据还在,然后我们在传创建个Mysql它可以自动连接后面的数据存储。
守护进程集:适用于日志采集工具,需要部署在每个节点上Pod,然后众多个日志采集Pod合并数据,交给后端的xxx平台。

2、应用的数据挂载:我们知道在Kubernetes上存储卷是必要的,因此我们可以通过KubeSphere来实现

3、应用的可访问性:在部署完工作负载之后,我们需要为众多Pod创建Service来实现用户的访问,或者集群内部组件的访问,再或者,如果你想为整个Kubernetes搞个流量总入口,你也可以创建Ingress

以上三条就是在KubeSphere上部署中间件的三大要素,其实和Kubernetes在部署是一样的,而且在KubeSphere可以更方便的进行操作。

以上关系如下图:
在这里插入图片描述

图解KubeSphere部署组件的要素

首先用dev-zhao(你可以随便创建个账号),进入his项目:
在这里插入图片描述

部署MySQL

在部署之前,我们先来想一下:部署Mysql,需要符合以上三要素那几个?
(1)、首先Mysql就是存放数据的,我们需要数据挂在吧
(2)、在这Mysql有配置文件,我们可以适用ConfigMap进行注入配置信息,单独创建个Pod然后把Mysql的配置信息,注入进去。
(3)、我们需要负载吧,由于Mysql需要存储数据的地方,因此我们以有状态工作负载来实现。

docker run -p 3306:3306 --name mysql-01 \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
--restart=always \
-d mysql:5.7 

在这里插入图片描述
1、实现ConfigMap,进入his项目,在左测列表中,找到"配置中心------>配置",然后点击"创建"。
在这里插入图片描述
在这里插入图片描述

这样ConfigMap就配置好了。

2、创建PVC,用户存储Mysql的数据
进入his项目,在左测列表中,找到"存储管理------>存储卷",然后点击"创建"。
在这里插入图片描述
在这里插入图片描述
高级选项不用设置
这样Mysql的持久存储PVC就创建好了。

3、创建有状态负载
进入his项目,在左测列表中,找到"应用负载------>工作负载------>有状态副本集",然后点击"创建"。
在这里插入图片描述
下面的配置比较重要:
在这里插入图片描述

在这里插入图片描述
设置将Pod改在刚才才能关键的PVC卷,并关联刚才创建的ConfigMap
在这里插入图片描述

之后点击"创建"即可:
在这里插入图片描述

检测效果

1、进入到Mysql 的 Pod内部登陆Mysql
-h是使用的有Service自带DNS解析的
在这里插入图片描述

2、进入到此容器的终端,查看my.cnf文件
在这里插入图片描述

在这里插入图片描述
之后如果想要修改,直接找到"编辑"选项进行修改即可,并且他会自动将修改后的配置信息同步上去。
当然,我们也可以在Kubernetes平台上进行查看

[root@k8s-master ~]# kubectl get pods -A | grep mysql
his                            his-mysql-0                                                       1/1     Running     0          9m30s

现在呢,Mysql的Pod是创建好了,但是在集群外部我们还不能访问此Mysql服务,因此下面我们要设置Mysql的网络—Service。

部署Mysql负载均衡网络

在"服务"中进行创建
1、我们先来创建个集群内部Service
在这里插入图片描述
在这里插入图片描述
这个时候DNS域名就变成我们自己指定的了。

2、来创建个集群外部访问的Service
在这里插入图片描述

总结

这样关于Mysql的相关操作就做完了,在以后部署其它中间件的时候都是一样的步骤。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

KubeSphere学习---Mysql中间件安装部署实战 的相关文章

  • Mysql:计算访问频率

    我有这张桌子 CREATE OR REPLACE TABLE hits ip bigint page VARCHAR 256 agent VARCHAR 1000 date datetime 我想计算每个页面的 googlebot 访问频率
  • 当我耗尽 bigint 生成的密钥时会发生什么?怎么处理呢?

    我自己无法想象一个好的答案 所以我想在这里问 在我心里 我总是想知道 如果AUTO INCREMENT PRIMARY ID我的专栏MySQL表用完了吗 举例来说 我有一个有两列的表 一个ID auto increment primary
  • 未找到教义列:1054“字段列表”中未知列“s.features”

    我在站点表中添加了一个新列 features 并使用 Doctrine 重新生成了模型 此代码导致错误 siteTable Doctrine Core getTable Site site siteTable gt findOneByNam
  • django - 设置中带有数据库 url 的 MySQL 严格模式

    我在设置中使用数据库 URL 字符串 例如 DATABASES default mysql root localhost 3306 mydb 当我迁移时 我收到此警告 MySQL Strict Mode is not set for dat
  • 从 datagridview 选定的行更新 mysql 数据库

    我有一个 datagridview 它在表单加载事件上加载 mysql 数据库表 t pi clients 并且我有另一个选项卡 其中包含 t pi client 相应列的文本框 它能够从 fullrowselect 模式获取数据到这些文本
  • MySql JOINS 的优点/缺点

    当我从多个表中选择数据时 我经常使用 JOINS 最近我开始使用另一种方式 但我不确定从长远来看会产生什么影响 例子 SELECT FROM table 1 LEFT JOIN table 2 ON table 1 column table
  • 使用 RMySQL 会干扰 RPostgreSQL

    我有一个 R 脚本 我想从 MySQL 数据库中提取一些数据 然后从 PostgreSQL 数据库中提取一些数据 但是 从 RMySQL 加载 MySQL 驱动程序会阻止我从以下位置加载 PostgreSQL 驱动程序 PostgreSQL
  • 从 JSON 数组创建标记 php mySQL Google Maps v2 android

    我正在尝试从 mySQL 数据库在 Google Maps v2 上创建标记 但它不起作用 地图确实出现了 但没有标记 谁能告诉我出了什么问题以及我需要改变什么 我也尝试过让 getDouble 为 getDouble 0 和 getDou
  • 如何使组合键唯一?

    I am making a database of students in one school Here is what I have so far 如果您不喜欢阅读 请跳至 简而言之 部分 问题是我对这个设计并不满意 我想要的组合gra
  • 有关 payment_status 的帮助 PayPal 已退款 已撤销 部分退款 ION

    如果会员订阅和 或支付一次付款并且他们请求退款 撤销或部分退款 下面的脚本是否可以与通过 IPN 发送的 IPN 消息一起使用 if payment status Refunded payment status Reversed payme
  • MySQL - 查询合并具有相同 id 的行并保留该 id 的所有条目但作为一条记录

    我一直在处理本地保存在 wamp 服务器上的 mysql 数据库中的表 我正在使用 wamp 中的 phpmyadmin 区域来运行查询 我正在尝试获取数据来执行以下操作 谁能帮我制作一张包含许多植物记录的表格 植物可以有多个名称 表格将其
  • MySQL 获取时间优化

    o我有一个包含 200 万个寄存器的表 但它很快就会增长得更多 基本上 该表包含具有相应描述符的图像的兴趣点 当我尝试执行选择在空间上靠近查询点的点的查询时 总执行时间花费太长 更准确地说 持续时间 获取 0 484 秒 27 441 秒
  • PHP实现的机票预订系统

    如何防止预订系统中的座位被重复预订 我正在用 PHP 和 MYSQL 制作一个航空旅行预订系统模型作为一个项目 我有一个小问题 仅在付款后 门票和座位详细信息才会永久存储在此处 座位号在付款前分配 假设人 1 预订了飞机上的座位 x 并支付
  • PHP MySQL 查询带有 %s 和 %d

    SELECT COUNT AS test FROM s WHERE id d AND tmp mail lt gt 什么是 s and d for 这些是使用的格式符号 例如经过sprintf 例子 Output SELECT COUNT
  • Mac OS X Yosemite/El Capitan 上自动启动 MySQL 服务器

    我想在启动时自动启动 MySQL 服务器 这在小牛队是可能的 但在优胜美地似乎不起作用 edit 似乎这也适用于 El Capitan dcc 非常接近 这是 MySQL 在 Yosemite 上再次自动启动的方式 The com mysq
  • 如何在 MySQL Insert 语句中添加 where 子句?

    这不起作用 INSERT INTO users username password VALUES Jack 123 WHERE id 1 有什么想法如何通过 id 将插入范围缩小到特定行吗 在插入语句中 您不会有现有行来执行 where 语
  • MYSQL:SQL查询获取自增字段的值

    我有一张桌子 主键是id及其自动递增 现在 当我插入新记录时 我需要获取更新记录的 id 我怎样才能做到这一点 如果我使用查询 select max id from table name 执行后我可以获得id 但我能确定它是刚刚插入的记录的
  • MySQL中如何存储小数?

    我尝试过将 DECIMAL 与 2 2 一起使用 但它不允许我使用它 我只想存储一个数字 例如 7 50 或 10 50 我需要将这两个数字保留在小数点后 但是当我刷新数据库时 它会将值重置为 0 99 有什么建议么 第一个参数DECIMA
  • 使用 DBCP 配置 Tomcat

    在闲置一段时间 几个小时 后 我们收到了 CommunicationsException 来自 DBCP 错误消息 在异常中 位于这个问题的末尾 但我没有看到任何配置文件中定义的 wait timeout 我们应该看哪里 在 tomcat
  • 为什么我的浮点数大于 1 时在 MYSQL 中存储为 .9999?

    我将进程时间作为 float 4 4 存储在 MySQL 数据库中 start time microtime TRUE things happen in my script end time microtime TRUE process t

随机推荐