开源项目:kubernetes+rancher部署ferry工单系统(20210820)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 开源项目:kubernetes+rancher部署ferry工单系统(20210820)

效果


1675240644819.jpg

1675240649551.jpg

ferry是一个开源项目,主要使用go语言编写,想了解更多看下项目地址吧

项目gitlab地址:

https://github.com/lanyulei/ferry

演示demo地址:

http://fdevops.com:8001/

账号密码:admin/123456


前提


本篇域名已经写死到容器内部了(前后端)

域名:devferry.wmqhealth.com

如果想修改成其他的,可以看下面介绍部署到kubernetes集群上的第一个点,然后就可以修改成其他域名的了。或者联系我给你们重新打下镜像


docker部署


https://blog.csdn.net/zhanremo3062/article/details/115118613


kubernetes部署


下面不需要操作!只是说明一下我是怎么修改的。

该项目并没有提供在kubernetes上部署文档。

我本想给它封装成helm,大家可以直接安装,不过时间原因,先做到部署到kebernetes集群上吧~


基于使用docker部署方法,修改后部署到kubernetes集群中,主要修改项大概有以下几点:

1)修改访问域名

把端口号去掉,因为我们最后使用的是ingress 80端口代理

cat .env.production 
# just a flag
ENV = 'production'
# base api
VUE_APP_BASE_API = 'http://devferry.wmqhealth.com'


2)修改redis、mysql、backend的容器名称

ferry_redisferry_mysqlferry_backend修改成ferry-redisferry-mysqlferry-backend

这样做,只要是集群中不支持使用下划线命名,改为中划线在kubernetes集群中,不暴露端口号的情况下让它们互相访问

3)ferry-web服务需要修改转发路径

容器内的路径:/etc/nginx/nginx.conf,把所有字段ferry_backend改成ferry-backend

这也是为了之后部署在kubernets集群中,ferry-web服务可以访问到ferry-backend服务,因为下划线不是有效的命名规范


以上这些我都已经做完了,并打成了镜像上传到华为云SWR平台,使用方法请看下面!


开始操作吧!


1、拉取镜像


找一台k8s节点主机,操作即可

镜像一共是4个,其中ferry-backend和ferry-web比较重要,再就是redis和mysql部署必须使用指定的,注意mysql用户名和密码默认是root/123456

docker pull swr.ap-southeast-3.myhuaweicloud.com/ferry/mysql:20210819
docker pull swr.ap-southeast-3.myhuaweicloud.com/ferry/redis:20210819
docker pull swr.ap-southeast-3.myhuaweicloud.com/ferry/web:20210819
docker pull swr.ap-southeast-3.myhuaweicloud.com/ferry/backend:20210819


2、创建服务


数据库服务

服务名称:ferry-mysql

服务类型:statefulset

映射端口号:无

pvc挂载容器内路径:

/var/lib/mysql


1675240816662.jpg

缓存服务

服务名称:ferry-redis

服务类型:statefulset

映射端口号:无

pvc挂载容器内路径:

/var/lib/redis/data

1675240833744.jpg

后端服务

服务名称:ferry-backend

服务类型:deployment

映射端口号:无

pvc挂载容器内路径:

/opt/ferry/config
/opt/ferry/logs

这时候backend容器应该一直会报连接数据库错误,不断重启

解决方法:

找到映射容器文件的服务(主机映射、NFS服务映射等等),然后修改/opt/ferry/config/settings.yml文件,把所有ferry_mysql改成ferry-mysql,ferry_redis改成ferry-redis,也就是上面提到的下划线改成中划线

1675240875111.jpg再重新启动backend服务,就不会再重启了

1675240894382.jpg


前端服务

服务名称:ferry-web

服务类型:deployment

映射端口号:无

pvc挂载容器内路径:无

1675240901979.jpg


以上服务启动顺序


redis–>mysql–>backend–>web


3、初始化数据库


进入到ferry-backend服务pod中,执行命令

./ferry init -c=/opt/ferry/config/settings.yml

1675240927199.jpg

最后显示数据库初始化成功即可


4、创建ingress代理、


服务类型:ingress

绑定域名:devferry.wmqhealth.com

关联负载:ferry-web

容器端口号:8001

1675240974353.jpg

最后浏览器访问:devferry.wmqhealth.com


集成ldap


打开ferry-backend服务pod,修改settingsyml文件

vi /opt/ferry/config/settings.yml
ldap:
    anonymousquery: 0
    basedn: ou=员工,xxxxx,dc=cn   //配置从什么地方搜索用户
    bindpwd: xxxx                  //管理员密码
    binduserdn: cn=manager,xxxxx,dc=cn   //管理员账号
    host: ldap.xxxx.cn            
    port: 636
    tls: 1                    //是否开启ldaps://连接,默认是ldap://
    userfield: uid            //登录名字段


1675241007299.jpg

我这里需要问题了,ldap默认登录不能切回普通登录,只能在数据库里修改了。

1675241007299.jpg


修改logo


由于是强行迁移到K8s集群中,有些数据并没有改变

1675241021822.jpg

之后点击保存,会出问题,然后打开ferry-mysql数据库服务,把域名后得端口号去掉

1675241030180.jpg


之后就可以加载到图标了


大家也发现了,ferry系统还是需要优化的,要不然修改的地方非常多~

相关文章
|
2月前
|
网络协议 NoSQL API
转转客服IM系统的WebSocket集群架构设计和部署方案
客服IM系统是转转自研的在线客服系统,是用户和转转客服沟通的重要工具,主要包括机器人客服、人工客服、会话分配、技能组管理等功能。在这套系统中,我们使用了很多开源框架和中间件,今天讲一下客服IM系统中WebSocket集群的的实践和应用。
211 0
|
4月前
|
前端开发 JavaScript Java
智能客服系统的技术栈解析-唯一客服系统技术架构优势
“唯一客服系统”采用 Vue.js 2.x + ElementUI 构建前端,实现响应式界面,支持多端适配;后端基于 Golang + Gin + GORM,具备高性能与高并发处理能力。系统支持私有化部署,提供灵活定制、AI 扩展能力,技术栈简洁易维护,兼顾开发者友好与企业级应用需求。
253 1
|
3月前
|
数据安全/隐私保护 容器 Go
开源IM即时通讯系统调研
Lumen IM 是一款企业级开源即时通讯工具,前端采用 Vue3 + Naive UI,后端基于 Go 语言,使用 WebSocket 协议。支持 Docker + Nginx 快速部署,适合私有化环境。功能包括文本、图片、文件消息,内置笔记、群聊及消息历史记录。界面美观、功能完善,适用于企业沟通、团队协作及开发者学习。提供前后端源码,便于快速搭建 IM 系统。
开源IM即时通讯系统调研
|
3月前
|
移动开发 网络协议 小程序
鸿蒙NEXT即时通讯/IM系统RinbowTalk v2.4版发布,基于MobileIMSDK框架、ArkTS编写
RainbowTalk是一套基于开源即时通讯讯IM框架 MobileIMSDK 的产品级鸿蒙NEXT端IM系统。纯ArkTS编写、全新开发,没有套壳、也没走捷径,每一行代码都够“纯血”。与姊妹产品RainbowChat和RainbowChat-Web 技术同源,历经考验。
206 1
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
从0搭建AI智能客服教程(AI智能客服系统选型和实战指南)
针对智能客服技术与业务脱节的痛点,合力亿捷通过 NLP、知识图谱及人机协同策略,助企业实现首次解决率超 70%、人力成本降 43%、年省成本超千万。其方案提升制造业问题解决率 40%,投诉转接成功率达 99%,以分场景选型助力超万家企业平衡业务与成本,成行业首选。
|
4月前
|
移动开发 缓存 前端开发
可二次开发的在线客服系统-前后端混合渲染模式
服务端渲染(SSR)结合API交互,提升首屏加载速度与SEO友好性,适用于混合渲染模式的Web应用。
97 0
|
4月前
|
Kubernetes Go 数据库
客服系统命令行程序-Cobra 命令行应用入口
唯一客服系统是基于 Go 语言与 Cobra 框架构建的命令行工具,用于管理在线客服系统。支持启动、安装和停止服务,具备清晰的命令结构和良好的扩展性,便于维护与功能拓展。
141 0
|
1月前
|
人工智能 算法 调度
阿里云ACK托管集群Pro版共享GPU调度操作指南
本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。
221 2
|
1月前
|
弹性计算 监控 调度
ACK One 注册集群云端节点池升级:IDC 集群一键接入云端 GPU 算力,接入效率提升 80%
ACK One注册集群节点池实现“一键接入”,免去手动编写脚本与GPU驱动安装,支持自动扩缩容与多场景调度,大幅提升K8s集群管理效率。
223 89
|
6月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
ACK One 的多集群应用分发,可以最小成本地结合您已有的单集群 CD 系统,无需对原先应用资源 YAML 进行修改,即可快速构建成多集群的 CD 系统,并同时获得强大的多集群资源调度和分发的能力。
272 9

推荐镜像

更多
下一篇
oss云网关配置