定制化开发【云原生】3.3 Kubernetes 中间件部署实战

 哈喽~大家好呀,定制化开发这篇继续上篇的实战讲解——定制化开发开始我们的中间件部署实战

 🥇个人主页:             

🥈 系列专栏:

🥉定制化开发与这篇相关的文章:            

【云原生】2.5 Kubernetes 核心实战(下)
【云原生】3.1 Kubernetes平台安装KubeSpher
【云原生】3.2 Kubernetes 定制化开发实战之多租户系统实战

目录


一、前言

在前面呢,定制化开发我们做了一个多租户系统,定制化开发这次用上次的一个普通定制化开发用户登入进去系统。

定制化开发我们如何在云上部署一个应用?是以什么样的方式?该应用又是什么样子?

在 KubeSphere 里面有个叫工作负载里面有部署、有状态副本集、守护进程集,对应的就是以前的部署(Deployment)、有状态副本集(StatefulSet)、守护进程集(DaemonSet)

 一个项目总会有数据吧?数据存那里呢?在前面我们讲过,很明显直接存在数据卷里面(PVC),例如 MySQL的数据。比如 MySQL有自己的配置文件、Redis 有自己的配置文件、也有自己的配置文件,将它们挂在到配置集里面(ConfigMap),服务采用的是 ClusterlP 与
NodePort。

二、部署MySQL有状态副本集

无论部署一个中间件,都要执行第一步——在 docker hub 里面在到中间件的镜像。

在配置中心——>配置里面创建一个配置(名称,描述信息),添加数据(Key 与 value)

🎡配置一下值

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

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

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

在这里我们的 MySQL 有状态副本集就创建好了,到此时应用还不能访问

🎡mysql配置示例

  1. [client]
  2. default-character-set=utf8mb4
  3. [mysql]
  4. default-character-set=utf8mb4
  5. [mysqld]
  6. init_connect='SET collation_connection = utf8mb4_unicode_ci'
  7. init_connect='SET NAMES utf8mb4'
  8. character-set-server=utf8mb4
  9. collation-server=utf8mb4_unicode_ci
  10. skip-character-set-client-handshake
  11. 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


🎡配置示例

  1. appendonly yes
  2. port 6379
  3. bind 0.0.0.0


🎡docker启动redis

  1. docker run -d -p 6379:6379 --restart=always \
  2. -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
  3. -v  /mydata/redis-01/data:/data \
  4.  --name redis-01 redis:6.2.5 \
  5.  redis-server /etc/redis/redis.conf

🎡配置中心——>配置里面配置一对 KV 。

🎡应用负载——>工作负载里面再创建一个有状态副本集(redis 的)

五、部署 ElasticSearch

1、es容器启动

🎡创建数据目录

mkdir -p /mydata/es-01 && chmod 777 -R /mydata/es-01

🎡容器启动

  1. docker run --restart=always -d -p 9200:9200 -p 9300:9300 \
  2. -e "discovery.type=single-node" \
  3. -e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
  4. -v es-config:/usr/share/elasticsearch/config \
  5. -v /mydata/es-01/data:/usr/share/elasticsearch/data \
  6. --name es-01 \
  7. elasticsearch:7.13.4

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

 (求关注)持续更新中……

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发