当前位置:网站首页>【云原生】3.3 Kubernetes 中间件部署实战
【云原生】3.3 Kubernetes 中间件部署实战
2022-07-31 05:21:00 【m0_67392409】
哈喽~大家好呀,这篇继续上篇的实战讲解——开始我们的中间件部署实战
??个人主页:个人主页???
??系列专栏:【云原生系列】
??与这篇相关的文章:
【云原生】2.5 Kubernetes 核心实战(下)
【云原生】2.5 Kubernetes 核心实战(下)_的博客-CSDN博客
【云原生】3.1 Kubernetes平台安装KubeSpher
【云原生】3.1 Kubernetes平台安装KubeSpher_的博客-CSDN博客
【云原生】3.2 Kubernetes 实战之多租户系统实战
目录
一、前言
在前面呢,我们做了一个多租户系统,这次用上次的一个普通用户登入进去系统。
我们如何在云上部署一个应用?是以什么样的方式?该应用又是什么样子?
在KubeSphere 里面有个叫工作负载里面有部署、有状态副本集、守护进程集,对应的就是以前的部署(Deployment)、有状态副本集(StatefulSet)、守护进程集(DaemonSet)
一个项目总会有数据吧?数据存那里呢?在前面我们讲过,很明显直接存在数据卷里面(PVC),例如 MySQL的数据。比如 MySQL有自己的配置文件、Redis 有自己的配置文件、微服务也有自己的配置文件,将它们挂在到配置集里面(ConfigMap),服务采用的是 ClusterlP 与
NodePort。
二、部署MySQL有状态副本集
无论部署一个中间件,都要执行第一步——在 docker hub 里面在到中间件的镜像。
在配置中心——>配置里面创建一个配置(名称,描述信息),添加数据(Key 与 value)
??配置一下值
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

再创建一个存储的地方(存储卷)使用单个节点读写(ReadWriteOnce(RW0))

设置下容器镜像(记得勾选同步主机时区)、挂在存储(配置文件一般为只读的方式)、高级设置等设置

在这里我们的 MySQL 有状态副本集就创建好了,到此时应用还不能访问
??mysql配置示例
[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
三、部署MySQL负载均衡网络
我们在上面创建好的有状态副本集只能在集群里面访问,在集群内部,直接通过应用的 【服务名.项目名】 直接访问
mysql -uroot -hhis-mysql-glgf.his -p
在应用负载——>服务里面设置基本信息(设置名称,描述信息)、服务设置(设置访问类型,添加一个端口)、高级设置(设置访问方式,像外网访问一样)

**??**启动 MySQL 添加连接名字,IP 地址等信息

??这里我们部署的项目在 MySQL 也能访问了
四、部置Redis设置网络
??同样的,先找到Redis 官方镜像,然后进行设置
1、redis容器启动
??创建配置文件,准备redis配置文件内容
mkdir -p /mydata/redis/conf && vim /mydata/redis/conf/redis.conf
??配置示例
appendonly yes
port 6379
bind 0.0.0.0
??docker启动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
??配置中心——>配置里面配置一对 KV 。
??应用负载——>工作负载里面再创建一个有状态副本集(redis 的)
五、部署 ElasticSearch
1、es容器启动
??创建数据目录
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

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

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
猜你喜欢
随机推荐
alert弹框处理,div块处理,上传文件
接口报错no message avaliable
Webrtc从理论到实践二: 架构
闭包,装饰器,类方法,静态方法,委托属性
浅析重复线性渐变repeating-linear-gradient如何使用
LVM和磁盘配额
5G的用途和工作原理
第一次实践——计算器
nacos1.4.1创建配置报错
DOM-DOM的介绍以及通过方法获取元素
ES6-Map、Set与Arrary的转换
What is float?What is document flow?Several ways and principles of clearing floats?What is BFC, how to trigger BFC, the role of BFC
FRP穿透教程
Skywalking UI使用
cp 的用法
银河麒麟v10 sp1 安装 PostgreSQL 11.16
常用浏览器内核的了解、ES5和ES6的区别、ES6的更新的笔试题
多线程(1)
数据库/表的基本操作
ES6-03-解构赋值










