KubeSphere使用(minio、ftp、redis、rabbitmq)
KubeSphere是将docker部署进行了页面化。
KubeSphere所有容器创建来源源自于docker。
minio为分布式文件储存服务器。docker部署使用 minio/minio
ftp为ftp文件服务器。docker部署使用fauria/vsftpd
此次方案为:
minio使用单机模式部署方式,使用ftp服务器存储目录。
达到同时支持ftp访问和ftp访问文件目录下载的效果。
注意:minio新版本改了存储机制,单机部署也会产生纠删码校验。导致无法ftp服务器识别文件。
ftp使用docker部署的根目录为/home/vsftpd/admin
需要将ftp存储根目录/home/vsftpd/admin和minio文件服务器存储目录/data进行使用中间卷挂载。
创建ftp服务:
先创建ftp有状态副本集的工作负载,工作负载即为搭载了这一工作需要使用的容器(1对多)。
ftp容器部署需要开放tcp 21 22端口,同时需要指定被动模式的ip地址,不然会自动绑定为docker主机的内网ip地址,无法与之建立连接。
需要设置被动模式开放的连接端口。在与ftp服务器21端口发送连接请求之后会随机返回开放的被动模式的ip地址和连接端口进行连接通信。
环境变量设置:
将docker部署的ftp服务器默认保存地址/home/vsftpd/admin绑定存储卷
需要注意工作负载设置好之后,需要去服务里将默认的无外网连接的有状态服务删除,新建指定工作负载的自定义服务。
给服务添加你容器需要的端口
将访问设置为外部访问,并将外部访问模式设置为NodePort。
同时需要注意主机之间的通信,k8s会将你的容器网络端口随机分配主机端口,会造成ftp建立连接时拿到的是容器网络端口,而不是指向容器网络端口的主机端口。
需要编辑服务的yaml文件将nodeport端口修改为和ftp容器被动模式开放端口号一致。
ftp服务器部署结束。
创建minio服务:
先创建minio有状态副本集的工作负载,工作负载即为搭载了这一工作需要使用的容器(1对多)。
minio容器自带api接口为9000,可以进行修改,不建议,minio自带控制台,但是需要自己指定端口去进行绑定启动。
设置一个9000端口和9001端口。
minio部署需要添加启动命令,不然启动会失败。
minio为内置minio服务命令,server:启动服务,/data:将文件根目录设置在/data,--console-address,:9001:控制台端口绑定为9001。
环境变量可以设置用户账号和密码,不设置会默认使用minioadmin。
将minio存储根目录/data挂载存储卷
同ftp一样去删除默认创建的服务,自己创建服务,指定外部访问,设置nodeport外部访问模式,开放端口即可。
不需要容器端口和主机端口一致。因为minio文件服务器和ftp文件服务器建立连接传输需要进行ftp协议进行加密解密握手操作。
部署redis:
创建redis工作负载,需要注意redis默认启动需要有配置文件,无配置文件无法启动。
1、去redis github或者redis官网上面下载redis.conf文件。
2、在kubesphere添加配置字典为redis-conf,键为redis.conf 值为redis.conf里的数据
3、创建redis工作负载,添加redis容器
添加启动命令 redis-server 参数 /etc/redis/redis.conf
勾选同步主机时区
4、给redis挂载配置字典,相当于将配置文件挂载进redis里面
5、redis可以开启持久化配置,配置文件里面可以设置 appendonly 为true,redis就会将数据存入/data目录
可以选择将/data挂载出来进行持久化
6、redis默认不开启外部访问,只能使用本机访问
如果需要开启外部访问,需要将 protect-mode 设置为no
将端口绑定属性bind 127.0.0.1 注释掉
7、redis密码在配置文件里为 requirepass,默认未配置,可以自己手动添加此配置
8、创建自定义服务,设置外部访问方式,开放端口映射操作见ftp操作
部署rabbitmq:
docker仓库rabbitmq有两个版本,一个自带开始配置插件(ui辅助界面)的版本,后缀为management(3.10-management),
另一个为未默认开启此插件的版本(3.10),如果要使用,需要自己去终端执行 rabbitmq-plugins enable rabbitmq_management 命令。看自己需求选择版本,建议选择开启配置插件的。
1、创建rabbitmq工作负载,选择rabbit容器,使用默认端口
2、rabbitmq可以在启动时使用环境变量设置用户和密码,如不设置,则为默认guest/guest
3、勾选同步主机时区即可
4、将rabbitmq数据和日志文件挂载出来
5、创建自定义服务,设置外部访问方式,开放端口映射操作见ftp操作
附:
KubeSphere数据存储卷可以理解为一个挂在的目录中间卷。可以进行数据持久化与容器之间数据同步。
kubesphere配置字典可以理解为配置文件,文件名为键,文件内容为值。可以采取挂载配置字典的方式映射需要配置文件的docker容器
服务为带有网络端口的工作负载。
工作负载为一组配合的容器组。
容器组管理容器。
docker部署的容器数据一般保存在 /var/lib/ + 容器名下面,注意有些容器时有自己的数据保存目录,比如redis就是直接在根目录的 /data 目录下
docker部署的容器日志数据一般保存在 /var/log/ + 容器名下面
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律