KubeSphere中间件部署

中间件部署实战 · 语雀

RuoYi-Cloud部署实战 · 语雀

https://www.bilibili.com/video/BV13Q4y1C7hS?p=79

应用部署三要素

应用的部署方式(Deployment、StatefulSet、DaemonSet)

应用的数据挂载(数据、配置文件)

应用的可访问性(Service)

在这里插入图片描述

部署MySQL

DockerHub官网了解

去DockerHub找到镜像

在这里插入图片描述

参考官网的命令,启动一个MySQL实例(比如用docker的话-e是指定环境变量)

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

在这里插入图片描述

官网上对镜像也有描述:MySQL的配置文件在/etc/mysql/my.cnf下,

在这里插入图片描述

使用自定义MySQL配置文件

MySQL的默认配置在/etc/mysql/my.cnf中。它可能会包含其他目录,如/etc/mysql/conf.d/etc/mysql/mysql.conf.d

请检查mysql镜像本身中的相关文件和目录以了解更多详细信息。

如果/my/custom/config-file.cnf是您的自定义配置文件的路径和名称,您可以像这样启动您的mysql容器(注意,只有自定义的目录路径config文件用于此命令)

docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

这将启动一个新的容器some-mysql,其中mysql实例使用/etc/mysql/my.cnf/etc/mysql/conf.d/config-file.cnf的组合启动设置,后者的设置优先。

不带cnf文件的配置

许多配置选项可作为标志传递给mysqld。这将使您能够灵活地自定义容器,而不需要cnf文件。例如,将所有表的默认编码和排序规则更改为使用UTF-8(utf8mb4),运行以下命令:

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

查看可用选项的完整列表,运行:

docker run -it --rm mysql:tag --verbose --help

以前用Docker启动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 

分析

在这里插入图片描述

Pod里面是使用官方镜像的Mysql容器

启动时指定环境变量MYSQL_ROOT_PASSWORD

MySql的所有数据在容器内/var/lib/mysql路径下,此目录应以PVC方式挂载出来

配置文件在容器内/etc/mysql/conf.d路径下,k8s中,中间件的配置文件可以以configMap的方式做配置集

Mysql配置

部署Mysql之前,先把Mysql的ConfigMap做出来,在/etc/mysql/conf.d路径下以.cnf结尾的文件都会被Mysql识别为配置文件,所以ConfigMap的key可以写作my.cnf

在这里插入图片描述

mysql配置具体内容(ConfigMap的Value)

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
init_connect='SET collation_connection = utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

PVC

本次采用先创建好,在后续创建副本集时直接选用,其实也可以在创建副本集时直接创建挂载卷。

系统内有默认的nfs存储类型

弹幕:没有nfs-storage的,要装一下nfs服务器,并设置为默认默认存储,参照kubernetes上安装kubesphere第三节的第一小节

有状态服务一般使用单节点读写,无状态的使用多节点读写

创建完后该卷是【未挂载】的状态。

在这里插入图片描述

创建有状态副本集

可以限制cpu和内存,但可以不预留

在这里插入图片描述

页面下边环境变量配置好MYSQL_ROOT_PASSWORD=my-secret-pw

勾选【同步主机时区】

添加存储卷,选择前一步创建好的PVC并设置路径

在这里插入图片描述

挂载配置文件或秘钥,选择先前创建好的并设置路径。创建ConfigMap时命名的key(my.cnf)将作为文件名添加到该路径下。

在这里插入图片描述

在这里插入图片描述

启动好之后,可以进容器内部查看文件

在这里插入图片描述

在页面上更改了ConfigMap的配置内容,会同步到容器里面的该配置文件,但Mysql不支持热更新,还是需要重启生效。

1、集群内部,直接通过应用的 【服务名.项目名】 直接访问mysql -uroot -hhis-mysql-glgf.his -p

2、集群外部,需要添加配置

在这里插入图片描述

部署Redis

以前用Docker启动Redis

# 创建配置文件
## 1、准备redis配置文件内容
mkdir -p /mydata/redis/conf && vim /mydata/redis/conf/redis.conf
## 2、配置文件内容示例
appendonly yes
port 6379
bind 0.0.0.0

# docker启动redis
## 弹幕:新版本好像变成/usr/local/etc/redis/路径存放配置文件了
docker run -d -p 6379:6379 --restart=always \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-v  /mydata/redis-01/data:/data \
 --name redis-01 redis:6.2.5 \
 redis-server /etc/redis/redis.conf

分析

Redis想持久化存储,加参数--appendonly yes

redis默认数据目录是/data,

准备一个Redis的Pod,

在这里插入图片描述

Redis要自定义配置文件,启动命令就变了

后续在页面上的创建操作与前面Mysql雷同

部署ElasticSearch

以前用Docker启动

# 创建数据目录
mkdir -p /mydata/es-01 && chmod 777 -R /mydata/es-01

# 容器启动
docker run --restart=always -d -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-v es-config:/usr/share/elasticsearch/config \
-v /mydata/es-01/data:/usr/share/elasticsearch/data \
--name es-01 \
elasticsearch:7.13.4

分析

数据可以挂载到外边的PVC

但是配置文件只想挂载该路径下所有文件中的两个:elasticsearch.yml和jvm.options,需要在ConfigMap中准备两个配置项,key分别是两个文件的文件名

在这里插入图片描述

注意: 子路径挂载,配置修改后,k8s不会对其Pod内的相关配置文件进行热更新,需要自己重启Pod

页面上操作时,因为不是映射全部的/usr/share/elasticsearch/config,所以要注意设置子路径

在这里插入图片描述

在【选择特定的键和路径】下选择ConfigMap中对应的配置

在这里插入图片描述

应用商店

可以使用具有更高权限的管理员账户登录,从应用商店部署

应用仓库

使用企业空间管理员登录,设置应用仓库

学习Helm即可,去helm的应用市场添加一个仓库地址,比如:bitnami

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【AngularJs】前端使用iframe预览pdf文件报错

<iframe style"width: 100%; height: 100%;" src"{{vm.previewUrl}}"></iframe> 出现报错信息&#xff1a;Cant interpolate: {{vm.previewUrl}} 在ctrl文件中信任该文件就可以了 vm.trustUrl $sce.trustAsResourceUrl(vm.previewUrl);//信任…

二期 1.3 Spring Cloud Alibaba微服务组件Nacos注册中心介绍

文章目录 一、注册中心有什么用?二、注册中心对比三、Nacos是什么?3.1 Nacos 基本概念3.2 Nacos 主要功能3.3 Nacos 优势一、注册中心有什么用? 谈起微服务架构,总会提到注册中心,它是微服务架构必不可少的组件之一,那么注册中心作用到底是什么? 话说微服务架构下 服务…

AI大模型探索之路-应用篇9:Langchain框架LangSmith模块-AI模型监控神器

目录 前言 一、概述 二、准备工作 三、代码实践 二、监控查看 总结 前言 在经过前面多个篇章的学习后&#xff0c;我们已经了解到Langchain框架是一个为开发人员提供的全方位服务方案。从模型封装调用、提示词模板封装、Chain链式操作、检索增强&#xff0c;再到上线部署…

通过Transform与Animation,来探索CSS中的动态视觉效果

在 transform 和 animation 出现之前&#xff0c;前端开发者通常需要编写大量的 JavaScript 代码来实现动态效果。然而&#xff0c;这两个 CSS 属性的引入极大地简化了丰富动效和过渡效果的实现&#xff0c;从而让用户界面更加引人入胜&#xff0c;交互体验更为流畅。本文将深入…

每日OJ题_BFS解决FloodFill④_力扣130. 被围绕的区域

目录 力扣130. 被围绕的区域 解析代码 力扣130. 被围绕的区域 130. 被围绕的区域 难度 中等 给你一个 m x n 的矩阵 board &#xff0c;由若干字符 X 和 O &#xff0c;找到所有被 X 围绕的区域&#xff0c;并将这些区域里所有的 O 用 X 填充。 示例 1&#xff1a; 输入&…

【VUE】Vue3自由拖拽标签

效果&#xff1a; 代码&#xff1a; <template> <div><div v-move class"box"><label class"move">拽我</label> </div> </div> </template> <script setup lang"ts">import { ref, …

Mac电脑安装蚁剑

1&#xff1a; github 下载源码和加载器&#xff1a;https://github.com/AntSwordProjectAntSwordProject GitHubAntSwordProject has 12 repositories available. Follow their code on GitHub.https://github.com/AntSwordProject 以该图为主页面&#xff1a;antSword为源码…

MySQL 快问快答

我写这篇文章的目的只有一个&#xff1a;通过这些问题来帮助我去将我脑子里的MySQL脑图给巩固熟悉&#xff0c;通过回答这些问题&#xff0c;让我对脑子里的MySQL知识有更深的印象&#xff0c;当什么时候我的MySQL脑图不熟的时候&#xff0c;我就可以拿这篇文章来去巩固一下&am…

OpenHarmony南向开发案例:【智能体重秤】

一、简介 本demo基于OpenHarmony3.1Beta版本开发&#xff0c;该样例能够接入数字管家应用&#xff0c;通过数字管家应用监测体重秤上报数据&#xff0c;获得当前测量到的体重&#xff0c;身高&#xff0c;并在应用端形成一段时间内记录的体重值&#xff0c;以折线图的形式表现…

创维:在博鳌论坛 叩响世界之门

出走半生&#xff0c;归来仍是少年。 2024年4月8日&#xff0c;一个离开海南近半个世纪的“少年”回到琼海博鳌&#xff0c;“下一站&#xff0c;1000亿&#xff01;”&#xff0c;他的承诺掷地有声。“1000亿”&#xff0c;意指创维集团在2025年前冲击千亿营收&#xff0c;这…

RocketMQ消息重试机制

1 生产者重试 生产者发送消息失败会重试&#xff0c;可以通过参数来设置&#xff1a; 创建producer实例设置参数&#xff1a; // 失败的情况重发3次 producer.setRetryTimesWhenSendFailed(3); // 消息在1S内没有发送成功&#xff0c;就会重试 producer.send(msg, 1000); a…

CentOS7用convert2rhel转Redhat7

CentOS 停更时间表 版本停更时间CentOS 62020/11/30CentOS 72024/6/30CentOS 82021/12/1 支持的转换路径&#xff0c;表示官方测试过 CentOS 转换 RHEL 示例 转换示例环境 本示例模拟以下环境&#xff0c;使用 RHEL 7.9 ISO 文件作为转换使用的 yum repository 源&#xff…

3A大流电输出低压差线性稳压器TO-236封装

概述 PCD3933 是一款低噪声、低压差线性稳压器 (LDO)&#xff0c;可提供 3A 输出电流&#xff0c;最大压降仅为 210mV。该器件提供两种输出电压范围。 PCD3933 的输出电压可通过外部电阻分压器在 0.5V 至 5.15V 范围内进行调节&#xff0c;同时还提供固定输出电压版本。 PCD3…

【Entity Framework】聊一聊EF中继承关系

【Entity Framework】聊一聊EF中继承关系 文章目录 【Entity Framework】聊一聊EF中继承关系一、概述二、实体类型层次结构映射三、每个层次结构一张表和鉴别器配置四、共享列五、每个类型一张表配置六、每个具体类型一张表配置七、TPC数据库架构八、总结 一、概述 Entity Fra…

Unity TMP Inputfield 输入框 框选 富文本 获取真实定位

一、带富文本标签的框选是什么 UGUI的InputField提供了selectionAnchorPosition和selectionFocusPosition&#xff0c;开始选择时的光标下标和当前光标下标 对于未添加富文本标签时&#xff0c;直接通过以上两个值&#xff0c;判断一下框选方向&#xff08;前向后/后向前&…

【热门话题】PyTorch:深度学习领域的强大工具

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 PyTorch&#xff1a;深度学习领域的强大工具一、PyTorch概述二、PyTorch核心特性…

C语言洛谷题目分享(9)奇怪的电梯

目录 1.前言 2.题目&#xff1a;奇怪的电梯 1.题目描述 2.输入格式 3.输出格式 4.输入输出样例 5.说明 6.题解 3.小结 1.前言 哈喽大家好啊&#xff0c;前一段时间小编去备战蓝桥杯所以博客的更新就暂停了几天&#xff0c;今天继续为大家带来题解分享&#xff0c;希望大…

性能再升级!UNet+注意力机制,新SOTA分割准确率高达99%

UNet结合注意力机制能够有效提升图像分割任务的性能。 具体来说&#xff0c;通过将注意力模块集成到UNet的架构中&#xff0c;动态地重新分配网络的焦点&#xff0c;让其更集中在图像中对于分割任务关键的部分。这样UNet可以更有效地利用其跳跃连接特性&#xff0c;以精细的局…

2024-4-15-ARM作业

实现字符串数据收发函数的封装 源代码&#xff1a; main.c #include "gpio.h"#include "uart4.h"int main(){uart4_config();while (1){// char agetchar();// putchar(a1);char s[20];gets(s);puts(s);//putchar(\n);putchar(\r);}return 0;}uart4.c …

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十二 简单把视频的水印去掉效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十二 简单把视频的水印去掉效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十二 简单把视频的水印去掉效果 一、简单介绍 二、简单把视频的水印去掉效果实现原理 …