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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 开源项目: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系统还是需要优化的,要不然修改的地方非常多~

相关文章
|
1月前
|
存储 自然语言处理 机器人
实战揭秘:当RAG遇上企业客服系统——从案例出发剖析Retrieval-Augmented Generation技术的真实表现与应用局限,带你深入了解背后的技术细节与解决方案
【10月更文挑战第3天】随着自然语言处理技术的进步,结合检索与生成能力的RAG技术被广泛应用于多个领域,通过访问外部知识源提升生成内容的准确性和上下文一致性。本文通过具体案例探讨RAG技术的优势与局限,并提供实用建议。例如,一家初创公司利用LangChain框架搭建基于RAG的聊天机器人,以自动化FAQ系统减轻客服团队工作负担。尽管该系统在处理简单问题时表现出色,但在面对复杂或多步骤问题时存在局限。此外,RAG系统的性能高度依赖于训练数据的质量和范围。因此,企业在采用RAG技术时需综合评估需求和技术局限性,合理规划技术栈,并辅以必要的人工干预和监督机制。
91 3
|
1月前
|
Kubernetes 持续交付 Docker
利用 Docker 和 Kubernetes 实现微服务部署
【10月更文挑战第2天】利用 Docker 和 Kubernetes 实现微服务部署
|
1月前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
120 60
|
1月前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
203 62
|
13天前
|
人工智能 自然语言处理 搜索推荐
选型攻略 | 智能客服系统该怎么选?(好用的智能客服系统推荐)
智能客服系统的选型需要综合考虑渠道功能、系统性能、客服工作管理、客户管理以及成本效益等因素。目前合力亿捷推出的智能知识库,梳理海量知识,根据不同主题对知识进行分类,使其结构更清晰。
42 0
|
14天前
|
人工智能 自然语言处理 安全
AI技术在智能客服系统中的应用与挑战
【10月更文挑战第28天】本文将深入探讨人工智能(AI)技术在智能客服系统中的应用及其面临的挑战。我们将通过实例分析,了解AI如何改善客户服务体验,提高效率和降低成本。同时,我们也将关注AI在实际应用中可能遇到的问题,如语义理解、情感识别和数据安全等,并提出相应的解决方案。
|
1月前
|
NoSQL 关系型数据库 Redis
高可用和性能:基于ACK部署Dify的最佳实践
本文介绍了基于阿里云容器服务ACK,部署高可用、可伸缩且具备高SLA的生产可用的Dify服务的详细解决方案。
|
1月前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
73 0
|
22天前
|
JSON Kubernetes 容灾
ACK One应用分发上线:高效管理多集群应用
ACK One应用分发上线,主要介绍了新能力的使用场景
|
23天前
|
Kubernetes 持续交付 开发工具
ACK One GitOps:ApplicationSet UI简化多集群GitOps应用管理
ACK One GitOps新发布了多集群应用控制台,支持管理Argo CD ApplicationSet,提升大规模应用和集群的多集群GitOps应用分发管理体验。