0
点赞
收藏
分享

微信扫一扫

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


摘要

  • ​​效果​​
  • ​​前提​​
  • ​​docker部署​​
  • ​​kubernetes部署​​
  • ​​1、拉取镜像​​
  • ​​2、创建服务​​
  • ​​3、初始化数据库​​
  • ​​4、创建ingress代理​​
  • ​​集成ldap​​
  • ​​修改logo​​

效果

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


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


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

项目gitlab地址:

​​https://github.com/lanyulei/ferry​​

演示demo地址:
​​​http://fdevops.com:8001/​​ 账号密码:admin/123456

前提

本篇域名已经写死到容器内部了(前后端)
域名:devferry.wmqhealth.com
如果想修改成其他的,可以看下面介绍部署到kubernetes集群上的第一个点,然后就可以修改成其他域名的了。或者联系我给你们重新打下镜像

docker部署

​​javascript:void(0)​​

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_redis​​​、​​ferry_mysql​​​、​​ferry_backend​​​修改成​​ferry-redis​​​、​​ferry-mysql​​​、​​ferry-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

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


缓存服务

服务名称:ferry-redis

服务类型:statefulset

映射端口号:无

pvc挂载容器内路径:

/var/lib/redis/data

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


后端服务

服务名称: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​​,也就是上面提到的下划线改成中划线

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


再重新启动​​backend​​服务,就不会再重启了

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

前端服务
服务名称:ferry-web
服务类型:deployment
映射端口号:无
pvc挂载容器内路径:无

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

以上服务启动顺序
redis–>mysql–>backend–>web

3、初始化数据库

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

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

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


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

4、创建ingress代理

服务类型:ingress

绑定域名:devferry.wmqhealth.com

关联负载:ferry-web

容器端口号:8001

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

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

集成ldap

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

vi

0
basedn: ou=员工,xxxxx,dc=cn //配置从什么地方搜索用户
bindpwd: xxxx //管理员密码
binduserdn: cn=manager,xxxxx,dc=cn //管理员账号
host: ldap.xxxx.cn
port: 636
tls: 1

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

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

修改logo

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

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


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

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


之后就可以加载到图标了

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


举报

相关推荐

0 条评论