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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 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系统还是需要优化的,要不然修改的地方非常多~

相关文章
|
13天前
|
机器学习/深度学习 自然语言处理 搜索推荐
深度分析 | 2024主流的智能客服系统有哪些?他们是怎么实现的?
本文深入探讨了智能客服系统的使用方法和相关技术实现逻辑,涵盖前端交互、服务接入、逻辑处理、数据存储四大层面,以及自然语言处理、机器学习、语音识别与合成、数据分析与挖掘、知识库管理和智能推荐系统等核心技术,帮助企业更好地理解和应用智能客服系统,提升服务效率和客户满意度。
76 1
|
6天前
|
存储 Kubernetes 容器
K8S部署nexus
该配置文件定义了Nexus 3的Kubernetes部署,包括PersistentVolumeClaim、Deployment和服务。PVC请求20Gi存储,使用NFS存储类。Deployment配置了一个Nexus 3容器,内存限制为6G,CPU为1000m,并挂载数据卷。Service类型为NodePort,通过30520端口对外提供服务。所有资源位于`nexus`命名空间中。
|
23天前
|
存储 人工智能 运维
最新榜单 | 盘点2024年10大主流工单系统
随着互联网的发展,工单系统因其多样化功能和高效管理能力,成为企业运营的重要工具。本文介绍了10大主流工单系统,包括合力亿捷、阿里云服务中台、华为云ROMA ServiceCore等,它们各具特色,帮助企业提升服务质量和运营效率,实现数字化转型。
44 7
|
29天前
|
Kubernetes Cloud Native 微服务
云原生入门与实践:Kubernetes的简易部署
云原生技术正改变着现代应用的开发和部署方式。本文将引导你了解云原生的基础概念,并重点介绍如何使用Kubernetes进行容器编排。我们将通过一个简易的示例来展示如何快速启动一个Kubernetes集群,并在其上运行一个简单的应用。无论你是云原生新手还是希望扩展现有知识,本文都将为你提供实用的信息和启发性的见解。
|
1月前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
1月前
|
自然语言处理 数据可视化 搜索推荐
构建一个基于通义千问的智能客服系统
公司开发一个智能客服系统,帮助用户快速找到他们需要的商品信息、解决问题,并提供个性化的购物建议。系统需要能够处理大量的用户提问,并以自然语言的形式给出准确的回答。
76 1
|
1月前
|
存储 Kubernetes Devops
Kubernetes集群管理和服务部署实战
Kubernetes集群管理和服务部署实战
56 0
|
1月前
|
人工智能 自然语言处理 搜索推荐
选型攻略 | 智能客服系统该怎么选?(好用的智能客服系统推荐)
智能客服系统的选型需要综合考虑渠道功能、系统性能、客服工作管理、客户管理以及成本效益等因素。目前合力亿捷推出的智能知识库,梳理海量知识,根据不同主题对知识进行分类,使其结构更清晰。
69 0
|
1月前
|
人工智能 自然语言处理 安全
AI技术在智能客服系统中的应用与挑战
【10月更文挑战第28天】本文将深入探讨人工智能(AI)技术在智能客服系统中的应用及其面临的挑战。我们将通过实例分析,了解AI如何改善客户服务体验,提高效率和降低成本。同时,我们也将关注AI在实际应用中可能遇到的问题,如语义理解、情感识别和数据安全等,并提出相应的解决方案。
|
1天前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。