部署Mysql

创建ConfigMap

我们将mysql的配置文件内容配置进ConfigMap中,点击创建

KubeSphere:部署常用中间件

KubeSphere:部署常用中间件

添加键值对数据:

KubeSphere:部署常用中间件

配置示例:

[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

对于mysql来说,我们需要将容器内部的数据挂载到外部存储,防止数据丢失,对于k8s来说,我们可以先创建一个pvc。

KubeSphere:部署常用中间件

存储卷设置:

KubeSphere:部署常用中间件

点击创建:

KubeSphere:部署常用中间件

创建mysql的有状态应用

KubeSphere:部署常用中间件

设置名称:

KubeSphere:部署常用中间件

添加mysql镜像:并点击使用默认端口

KubeSphere:部署常用中间件

限制cpu和内存:

KubeSphere:部署常用中间件

添加环境变量:主要是为mysql设置mysql登录密码

KubeSphere:部署常用中间件

配置:MYSQL_ROOT_PASSWORD,并点击同步主机时区。

KubeSphere:部署常用中间件

点击对号,点击下一步。点击添加存储卷并配置:

KubeSphere:部署常用中间件

挂载配置文件:

KubeSphere:部署常用中间件

KubeSphere:部署常用中间件

点击下一步,点击创建:

KubeSphere:部署常用中间件

稍等几分钟,这个StatefulSet就创建好了。

KubeSphere:部署常用中间件

我们看能不能容器里面连上mysql:

KubeSphere:部署常用中间件

可以直接连上:

KubeSphere:部署常用中间件

但是我们并不能在外部访问这个mysql应用,只能在集群内访问。

因为kebesphere在给我们部署这个mysql的时候,给我们自动创建了一个service,type是ClusterIP,并没有向外部暴露端口。

KubeSphere:部署常用中间件

并且服务名称是自动生成的,所以对应DNS也是不规则的,我们有必要自己创建service。

自定义服务

先删除自动创建的svc

KubeSphere:部署常用中间件

直接删除,不要点击有状态副本集,这样会直接把StatefulSet都删了的。

KubeSphere:部署常用中间件

点击创建,指定工作负载:

KubeSphere:部署常用中间件

指定名称,点击下一步

KubeSphere:部署常用中间件

指定我们创建的mysql:

KubeSphere:部署常用中间件

添加端口,点击下一步

KubeSphere:部署常用中间件

选择暴露给外网,访问方式选择NodePort,点击创建

KubeSphere:部署常用中间件

这样就创建了名为his-mysql-svc的service,暴露31772端口

KubeSphere:部署常用中间件

外部连接:

KubeSphere:部署常用中间件

配置集群内部访问:

KubeSphere:部署常用中间件

KubeSphere:部署常用中间件

KubeSphere:部署常用中间件

然后就会生成his-mysql-cluster.his给集群内部访问

KubeSphere:部署常用中间件

KubeSphere:部署常用中间件

部署Redis

一般来说,我们要知道怎么部署一个中间件,我们需要知道它的配置文件路径、数据目录、以及环境变量参数等等。

这个我们需要去DockerHub网站看镜像的官方说明:

redis官方说明的很清楚:数据存储在/data下面,自定义配置文件放在/usr/local/etc/redis/下面,并启动命令加上自定义配置文件路径来启动。

KubeSphere:部署常用中间件

所以我们根据说明,就应该知道部署的配置。

第一步,创建ConfigMap:

KubeSphere:部署常用中间件

配置键值对,键就是配置文件名,值就是配置文件内容:

KubeSphere:部署常用中间件

创建redis的有状态副本集:

KubeSphere:部署常用中间件

查找redis,并使用默认端口:

KubeSphere:部署常用中间件

限制CPU和内存:

KubeSphere:部署常用中间件

设置启动命令(这里我设置redis配置文件存放路径是/etc/redis/redis.conf),并设置同步主机时区,保存

KubeSphere:部署常用中间件

点击添加存储卷模板:

KubeSphere:部署常用中间件

KubeSphere:部署常用中间件

选择挂载配置文件,即刚才创建的redis-conf,路径/etc/redis,与前面启动命令的配置文件路径对应上。

KubeSphere:部署常用中间件

点击下一步,点击创建

KubeSphere:部署常用中间件

KubeSphere:部署常用中间件

设置redis-svc,先删除它自己创建的service,再创建一个,指定工作负载:

KubeSphere:部署常用中间件

KubeSphere:部署常用中间件

配置端口:

KubeSphere:部署常用中间件

KubeSphere:部署常用中间件

点击创建,就会生成一个服务:

KubeSphere:部署常用中间件

如果想要集群内部访问,就仿照上面mysql的做法,这里不再赘述。

部署ElasticSearch

docker部署es的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

配置configMap:

KubeSphere:部署常用中间件

KubeSphere:部署常用中间件

创建有状态副本集:

KubeSphere:部署常用中间件

选择es镜像:

KubeSphere:部署常用中间件

限制cpu、内存:

KubeSphere:部署常用中间件

添加环境变量:

KubeSphere:部署常用中间件

添加存储卷模板:

KubeSphere:部署常用中间件

挂载配置文件:挂载子路径

KubeSphere:部署常用中间件

KubeSphere:部署常用中间件

创建服务:

KubeSphere:部署常用中间件

KubeSphere:部署常用中间件

暴露给外网,并创建:

KubeSphere:部署常用中间件

KubeSphere:部署常用中间件

访问暴露出来的端口:31858

KubeSphere:部署常用中间件

相关文章: