K8s安装乐维5.0应用部署文档
乐维产品包具体打包为4个镜像包,分别为:mysql5.7.36.tar、zabbix_server.tar、itops_v1_4_x86_64.tar、bpm0.1.tar,对应的配置文件分别为:data.tar、conf.tar、nginx-v1.3.tar.gz、bpm12.zip。
K8s yaml文件具体打包为strogeclass、pv、pvc、deployment、service,执行时也请按照这个顺序进行执行。
具体安装如下所示。
前期准备工作
1、 上传文件
上传yaml-pvc.tar至master节点根目录下并解压
2、 创建namespace(测试环境的namespace名称为lw-server)
kubectl create namespace lw-server
ps:如客户现场给的namespace为其他名称,所有yaml文件的namespace都需要进行修改
MySQL安装
1、上传文件
上传mysql5.7.36.tar到k8s镜像仓库,上传data.tar文件到存储节点(测试环境存储节点为ceph03)
2、解压配置文件(在ceph03节点执行)
mkdir -p /itops/
tar -xf data.tar -C /itops/
chown mysql.mysql /itops/mysql -R
3、执行yaml文件创建storageclass(在master节点执行)
kubectl apply -f
yaml-pvc/mysql-pvc/storage_mysql.yaml
kubectl apply -f yaml-pvc/mysql-pvc/storage_mysql-data.yaml
可通过 :kubectl get
storageclass查看是否创建成功
4、执行yaml文件创建pv(在master节点执行)
kubectl apply -f yaml-pvc/mysql-pvc/pv-mysql.yaml
kubectl apply -f yaml-pvc/mysql-pvc/pv-mysql-data.yaml
可通过(这是挂载成功的情况,仅供参考):kubectl get -n lw-server pv
5、执行yaml文件创建pvc(在master节点执行)
kubectl apply -f yaml-pvc/mysql-pvc/pvc-mysql.yaml
kubectl apply -f yaml-pvc/mysql-pvc/pvc-mysql.yaml
可通过(这是挂载成功的情况,仅供参考):kubectl get -n lw-server pvc
6、执行yaml文件创建deployment(在master节点执行)
kubectl apply -f yaml-pvc/lw-mysql.yaml
可通过(这是挂载成功的情况,仅供参考):kubectl get -n lw-server deployment
7、执行yaml文件创建service(在master节点执行)
kubectl apply -f yaml-pvc/lw-mysql-service.yaml
可通过(这是挂载成功的情况,仅供参考):kubectl get -n lw-server svc
账号:root
密码:ITIM_p@ssw0rd
账号:zabbix
密码:zabbix
Zabbix server安装
1、上传文件
上传zabbix_server.tar到k8s镜像仓库,上传conf.tar文件到存储节点(测试环境存储节点为ceph03)
2、解压配置文件(在ceph03节点执行)
mkdir -p /itops/zabbix_server
tar -xf conf.tar -C /itops/zabbix_server
3、修改配置文件(在ceph03节点执行)
sed -i 's/DBHost=192.168.229.17/DBHost=mysql-proxy/g' /itops/zabbix_server/etc/zabbix_server.conf
sed -i 's/JavaGateway=192.168.229.17/JavaGateway=zabbix-proxy/g' /itops/zabbix_server/etc/zabbix_server.conf
4、执行yaml文件创建storageclass(在master节点执行)
kubectl apply -f
yaml-pvc/zabbix-pvc/storage_zabbix.yaml
可通过 :kubectl get
storageclass查看是否创建成功
5、执行yaml文件创建pv(在master节点执行)
kubectl apply -f yaml-pvc/zabbix-pvc/pv-zabbix.yaml
可通过(这是挂载成功的情况,仅供参考):kubectl get -n lw-server pv
6、执行yaml文件创建pvc(在master节点执行)
kubectl apply -f yaml-pvc/zabbix-pvc/pvc-zabbix.yaml
可通过(这是挂载成功的情况,仅供参考):kubectl get -n lw-server pvc
7、执行yaml文件创建deployment(在master节点执行)
kubectl apply -f yaml-pvc/lw-zabbix.yaml
可通过(这是挂载成功的情况,仅供参考):kubectl get -n lw-server deployment
8、执行yaml文件创建service(在master节点执行)
kubectl apply -f yaml-pvc/lw-zabbix-service.yam
可通过(这是挂载成功的情况,仅供参考):kubectl get -n lw-server svc
Nginx安装
1、上传文件
上传itops_v1_4_x86_64.tar到k8s镜像仓库,上传nginx-v1.3.tar.gz文件到存储节点(测试环境存储节点为ceph03)
2、解压配置文件(在ceph03节点执行)
mkdir -p /itops/
tar -xf nginx-v1.3.tar.gz -C /itops/
3、修改配置文件(在ceph03节点执行)
vi /itops/nginx/html/zabbix/conf/zabbix.conf.php
vi
/itops/nginx/html/lwjk_v3/web/z/conf/zabbix.conf.php
vi /itops/nginx/html/lwjk_v3/config/db.php
4、执行yaml文件创建storageclass(在master节点执行)
kubectl apply -f
yaml-pvc/nginx-pvc/storage_nginx.yaml
kubectl apply -f yaml-pvc/nginx-pvc/storage_nginx-data.yaml
可通过 :kubectl get
storageclass查看是否创建成功
5、执行yaml文件创建pv(在master节点执行)
kubectl apply -f yaml-pvc/nginx-pvc/pv-nginx.yaml
kubectl apply -f yaml-pvc/nginx-pvc/pv-nginx-data.yaml
可通过(这是挂载成功的情况,仅供参考):kubectl get -n lw-server pv
6、执行yaml文件创建pvc(在master节点执行)
kubectl apply -f yaml-pvc/nginx-pvc/pvc-nginx.yaml
kubectl apply -f yaml-pvc/nginx-pvc/pvc-nginx-data.yaml
可通过(这是挂载成功的情况,仅供参考):kubectl get -n lw-server pvc
7、执行yaml文件创建deployment(在master节点执行)
kubectl apply -f yaml-pvc/lw-nginx.yaml
可通过(这是挂载成功的情况,仅供参考):kubectl get -n lw-server deployment
8、执行yaml文件创建service(在master节点执行)
kubectl apply -f yaml-pvc/lw-nginx-service.yaml
可通过(这是挂载成功的情况,仅供参考):kubectl get -n lw-server svc
9、定时任务设置(在宿主机配置)
方法一:适用于存储挂在宿主机本机
此方法php在宿主机执行任务
crontab -e
50 23 * * * mysql -h mysql-proxy -uzabbix -pzabbix 'zabbix' -e "CALL
partition_maintenance_all('zabbix')" >/dev/null
0 1 * * * echo 'LW_ID_PUBLIC_DEFAULT_TASK' | php
/itops/nginx/html/lwjk_v3/run report/daily-report &
0 8 * * * echo 'LW_ID_PUBLIC_DEFAULT_TASK' | php
/itops/nginx/html/lwjk_v3/run report/send-daily-mail &
0 3 * * 1 echo 'LW_ID_PUBLIC_DEFAULT_TASK' | php
/itops/nginx/html/lwjk_v3/run report/weekly-report &
0 8 * * 1 echo 'LW_ID_PUBLIC_DEFAULT_TASK' | php
/itops/nginx/html/lwjk_v3/run report/send-weekly-mail &
50 1 1 * * echo 'LW_ID_PUBLIC_DEFAULT_TASK' | php
/itops/nginx/html/lwjk_v3/run report/monthly-report &
0 8 1 * * echo 'LW_ID_PUBLIC_DEFAULT_TASK' | php
/itops/nginx/html/lwjk_v3/run report/send-monthly-mail &
*/1 * * * * echo 'LW_ID_PUBLIC_DEFAULT_TASK' | php
/itops/nginx/html/lwjk_v3/run bsmlist &
*/30 * * * * echo 'LW_ID_PUBLIC_DEFAULT_TASK' | php
/itops/nginx/html/lwjk_v3/run kitty/create-reportdata-queue &
*/20 * * * * echo 'LW_ID_PUBLIC_DEFAULT_TASK' | php /itops/nginx/html/lwjk_v3/run
kitty/create-subscribe-queue &
0 */1 * * * echo 'LW_ID_PUBLIC_DEFAULT_TASK' | php
/itops/nginx/html/lwjk_v3/run flowreport-trends-data/index &
*/5 * * * * echo 'LW_ID_PUBLIC_DEFAULT_TASK' | php
/itops/nginx/html/lwjk_v3/run hosts/profile-renew &
*/1 * * * * echo 'LW_ID_PUBLIC_DEFAULT_TASK' | php
/itops/nginx/html/lwjk_v3/run queue/run &
*/1 * * * * echo 'LW_ID_PUBLIC_DEFAULT_TASK' | php
/itops/nginx/html/lwjk_v3/runalert/history &
*/1 * * * * echo 'LW_ID_PUBLIC_DEFAULT_TASK' | php
/itops/nginx/html/lwjk_v3/runalert/r-history &
0 2 * * * echo 'LW_ID_PUBLIC_DEFAULT_TASK' | php
/itops/nginx/html/lwjk_v3/run logger/flush &
*/1 * * * * echo 'LW_ID_PUBLIC_DEFAULT_TASK' | php
/itops/nginx/html/lwjk_v3/run hosts &
*/5 * * * * echo 'LW_ID_PUBLIC_DEFAULT_TASK' | php
/itops/nginx/html/lwjk_v3/run threshold-task/index &
清除定时任务:
0 0 * * 0 /usr/bin/rm
/itops/zabbix_server/logs/zabbix_traps.tmp >/dev/null
方法二:适用于存储不挂在宿主机本机
此方法php脚本在pod内部执行
crontab -e
50 23 * * * kubectl exec -it $(kubectl get pods -n lw-server | grep nginx | awk
'{print $1}') -n lw-server -- mysql -h mysql-proxy -uzabbix -pzabbix 'zabbix'
-e "CALL partition_maintenance_all('zabbix')"
0 1 * * * kubectl exec -it $(kubectl get pods -n lw-server | grep nginx | awk
'{print $1}') -n lw-server -- php /itops/nginx/html/lwjk_v3/run
report/daily-report &
0 8 * * * kubectl exec -it $(kubectl get pods -n lw-server | grep nginx | awk
'{print $1}') -n lw-server -- echo 'LW_ID_PUBLIC_DEFAULT_TASK' |
php /itops/nginx/html/lwjk_v3/run report/send-daily-mail &
0 3 * * 1 kubectl exec -it $(kubectl get pods -n lw-server | grep nginx | awk
'{print $1}') -n lw-server -- echo 'LW_ID_PUBLIC_DEFAULT_TASK' |
php /itops/nginx/html/lwjk_v3/run report/weekly-report &
0 8 * * 1 kubectl exec -it $(kubectl get pods -n lw-server | grep nginx | awk
'{print $1}') -n lw-server -- echo 'LW_ID_PUBLIC_DEFAULT_TASK' |
php /itops/nginx/html/lwjk_v3/run report/send-weekly-mail &
50 1 1 * * kubectl exec -it $(kubectl get pods -n lw-server | grep nginx | awk
'{print $1}') -n lw-server -- echo 'LW_ID_PUBLIC_DEFAULT_TASK' |
php /itops/nginx/html/lwjk_v3/run report/monthly-report &
0 8 1 * * kubectl exec -it $(kubectl get pods -n lw-server | grep nginx | awk
'{print $1}') -n lw-server -- echo 'LW_ID_PUBLIC_DEFAULT_TASK'
| php /itops/nginx/html/lwjk_v3/run report/send-monthly-mail
&
*/1 * * * * kubectl exec -it $(kubectl get pods -n lw-server | grep nginx | awk
'{print $1}') -n lw-server -- echo 'LW_ID_PUBLIC_DEFAULT_TASK' |
php /itops/nginx/html/lwjk_v3/run bsmlist &
*/30 * * * * kubectl exec -it $(kubectl get pods -n lw-server | grep nginx |
awk '{print $1}') -n lw-server -- echo 'LW_ID_PUBLIC_DEFAULT_TASK'
| php /itops/nginx/html/lwjk_v3/run kitty/create-reportdata-queue
&
*/20 * * * * kubectl exec -it $(kubectl get pods -n lw-server | grep nginx |
awk '{print $1}') -n lw-server -- echo 'LW_ID_PUBLIC_DEFAULT_TASK'
| php /itops/nginx/html/lwjk_v3/run kitty/create-subscribe-queue
&
0 */1 * * * kubectl exec -it $(kubectl get pods -n lw-server | grep nginx | awk
'{print $1}') -n lw-server -- echo 'LW_ID_PUBLIC_DEFAULT_TASK' |
php /itops/nginx/html/lwjk_v3/run flowreport-trends-data/index &
*/5 * * * * kubectl exec -it $(kubectl get pods -n lw-server | grep nginx | awk
'{print $1}') -n lw-server -- echo 'LW_ID_PUBLIC_DEFAULT_TASK' |
php /itops/nginx/html/lwjk_v3/run hosts/profile-renew &
*/1 * * * * kubectl exec -it $(kubectl get pods -n lw-server | grep nginx | awk
'{print $1}') -n lw-server -- echo 'LW_ID_PUBLIC_DEFAULT_TASK' |
php /itops/nginx/html/lwjk_v3/run queue/run &
*/1 * * * * kubectl exec -it $(kubectl get pods -n lw-server | grep nginx | awk
'{print $1}') -n lw-server -- echo 'LW_ID_PUBLIC_DEFAULT_TASK' |
php /itops/nginx/html/lwjk_v3/runalert/history &
*/1 * * * * kubectl exec -it $(kubectl get pods -n lw-server | grep nginx | awk
'{print $1}') -n lw-server -- echo 'LW_ID_PUBLIC_DEFAULT_TASK' |
php /itops/nginx/html/lwjk_v3/run alert/r-history &
0 2 * * * kubectl exec -it $(kubectl get pods -n lw-server | grep nginx | awk
'{print $1}') -n lw-server -- echo 'LW_ID_PUBLIC_DEFAULT_TASK' |
php /itops/nginx/html/lwjk_v3/run logger/flush &
*/1 * * * * kubectl exec -it $(kubectl get pods -n lw-server | grep nginx | awk
'{print $1}') -n lw-server -- echo 'LW_ID_PUBLIC_DEFAULT_TASK' |
php /itops/nginx/html/lwjk_v3/run hosts &
*/5 * * * * kubectl exec -it $(kubectl get pods -n lw-server | grep nginx | awk
'{print $1}') -n lw-server -- echo 'LW_ID_PUBLIC_DEFAULT_TASK' |
php /itops/nginx/html/lwjk_v3/run threshold-task/index &
清除定时任务配置在文件服务器上:
0 0 * * 0 /usr/bin/rm
/itops/zabbix_server/logs/zabbix_traps.tmp >/dev/null
Bpm安装
上传文件
上传bpm0.1.tar到k8s镜像仓库,上传bpm12.zip文件到存储节点(测试环境存储节点为ceph03)
1、数据库准备工作:
1.1、调整MySql配置(Window下可忽略)(在ceph03节点执行)
vi /itops/mysql/etc/my.cnf
于[mysqld]下追加一行: lower_case_table_names = 1
1.2、远程连接数据库并按顺序执行一下SQL语句
//创建bpm数据库
CREATE
DATABASE bpm DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
//创建bpm用户
CREATE
USER 'bpm'@'%' IDENTIFIED BY '123456';
//授权
grant
all privileges on bpm.* to 'bpm'@'%';
//刷新权限
flush
privileges;
//切换数据库
use
bpm;
//导入数据库
source
/root/bpm12.sql;
// bpm跳转地址更新,把IP修改为bpm IP
update bpm_devdefaultcode set
DefaultCode='<script>location.href = \'http://node地址:30080\';</script>'
whereWF_OrUnid='41B5701B0EE2904D0E0835D0D27ACB8B9D49';
1.3、重启MySQL服务(在master节点执行)
kubectl delete -f yaml-pvc/lw-mysql.yaml
kubectl apply -f yaml-pvc/lw-mysql.yaml
2、TOMCAT部署(在ceph03节点执行)
tar -xvf bpm12.tar -C /itops
vi /itops/bpm/bpm12/apache-tomcat-8.5.58/conf/Catalina/localhost
3、监控平台调整
3.1、上传文件(在ceph03节点执行)
上传params.php文件至/itops/nginx/html/lwjk_v3/local/
3.2、修改配置文件(在ceph03节点执行)
vi /itops/nginx/html/lwjk_v3/local/params.php
IP修改为实际node IP
3.3、安装bpm模块(在nginx pod内执行)
cd /itops/nginx/html/lwjk_v3/
php run mm/i bpm
3.4、安装ext(在ceph03节点执行)
unzip ext.zip -d /itops/nginx/html/lwjk_v3/
容器安装
1、执行yaml文件创建storageclass(在master节点执行)
kubectl apply -f yaml-pvc/bpm-pvc/storage_bpm.yaml
可通过 :kubectl get
storageclass查看是否创建成功
执行yaml文件创建pv(在master节点执行)
kubectl apply -f yaml-pvc/bpm-pvc/pv-bpm.yaml
可通过(这是挂载成功的情况,仅供参考):kubectl get -n lw-server pv
执行yaml文件创建pvc(在master节点执行)
kubectl apply -f yaml-pvc/bpm-pvc/pvc-bpm.yaml
可通过(这是挂载成功的情况,仅供参考):kubectl get -n lw-server pvc
执行yaml文件创建deployment(在master节点执行)
kubectl apply -f yaml-pvc/lw-bpm.yaml
可通过(这是挂载成功的情况,仅供参考):kubectl get -n lw-server deployment
执行yaml文件创建service(在master节点执行)
kubectl apply -f yaml-pvc/lw-bpm-service.yaml
可通过(这是挂载成功的情况,仅供参考):kubectl get -n lw-server svc
9、增加菜单
访问http://nodeip:30800/dev
自动化运维安装
1、上传文件
上传ansiblemodule.tar文件到存储节点(测试环境存储节点为ceph03)
mv ansiblemodule.tar /itops/nginx/html/
tar -xvf /itops/nginx/html/ansiblemodule.tar
2、进入nginx pod内部执行安装脚本
cd /itops/nginx/html/ansiblemodule
sh ansiblemodule_install.sh web
执行结束就可以在web看到自动化运维界面
以上就是今天要跟大家分享的内容,我是乐维IT君,专注运维技术分享,更多乐维技术及其他运维技术内容还可查看往期内容,https://www.lwops.cn/index.php/anl/10962。
K8s安装乐维5.0应用部署文档的更多相关文章
- hadoop2.6.0汇总:新增功能最新编译 32位、64位安装、源码包、API下载及部署文档
相关内容: hadoop2.5.2汇总:新增功能最新编译 32位.64位安装.源码包.API.eclipse插件下载Hadoop2.5 Eclipse插件制作.连接集群视频.及hadoop-eclip ...
- keepalived双机热备,安装部署文档
keepalived双击热备,安装部署文档: 下载目录:/apps/keepalived-1.2.7.tar.gz 1:---> yum install -y make wget 2:---&g ...
- LVS+Heartbeat安装部署文档
LVS+Heartbeat安装部署文档 发表回复 所需软件: ipvsadm-1.24-10.x86_64.rpmheartbeat-2.1.3-3.el5.centos.x86_64.rpmhear ...
- Sqlserver2008安装部署文档
Sqlserver2008部署文档 注意事项: 如果你要安装的是64位的服务器,并且是新机器.那么请注意,你需要首先需要给64系统安装一个.net framework,如果已经安装此功能,请略过这一步 ...
- PPTP部署文档
PPTP部署文档 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入:高级运维工程师之路 598432640 前言:这款VPN部署起来特别简单,想对OPENVON配 ...
- HP DL160 Gen9服务器集群部署文档
HP DL160 Gen9服务器集群部署文档 硬件配置=======================================================Server Memo ...
- CDH简易离线部署文档
CDH 离线简易部署文档 文档说明 本文为开发部署文档,生产环境需做相应调整. 以下操作尽量在root用户下操作,避免权限问题. 目录 文档说明 2 文档修改历史记录 2 目录 3 ...
- rabbitmq 3.7.8基于centos7部署文档
rabbitmq 3.7.8部署文档 安装erlang 安装依赖环境 yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel ope ...
- 部署文档(centos7.x\nginx\mysql5.6\jdk1.8\ssl\jboot)
部署文档(centos7.x\nginx\mysql5.6\jdk1.8\ssl\jboot) 1.基础环境********************************************** ...
- kettle开源项目部署文档
kettle开源项目部署文档 1.kettle简介 kettle是一款国外开源的ETL(Extract Transform Load)工具,纯java编写,可以在Windows.Linux.Unix上 ...
随机推荐
- day02-代码实现01
多用户即时通讯系统02 4.编码实现01 4.1功能实现-用户登录 4.1.1功能说明 因为还没有学习数据库,我们人为规定 用户名/id = 100,密码为 123456 就可以登录,其他用户不能登录 ...
- Traefik 2.0 暴露 Redis(TCP) 服务
文章转载自:https://mp.weixin.qq.com/s?__biz=MzU4MjQ0MTU4Ng==&mid=2247484452&idx=1&sn=0a17b907 ...
- 「国产系统」Tubian 0.3,兼容Windows和Android的GNU/Linux系统!
0.4版已发布:https://www.cnblogs.com/tubentubentu/p/16741197.html Sourceforge.net主页(提供下载):https://sourcef ...
- [题解] Atcoder Regular Contest ARC 146 A B C D 题解
点我看题 A - Three Cards 先把所有数按位数从多到少排序,答案的位数一定等于位数最多的三个数的位数之和\(tot\).对于每个i,把有i位的数排序,并记录每个i的排序结果.最后枚举答案中 ...
- C++面向对象编程之转换函数、explicit、one-argument
1.转换函数 转换函数不需要返回值和参数,直接 "operator 类型名称() {}" ,类型名称就决定了返回值: 在一开始在执行 d = 4 + f; 时,先看有木有重载 + ...
- 一文讲清楚 JVM Safe Point
大家好,我是树哥. 关于 Safe Point 是 JVM 中很关键的一个概念,但我估计有不少同学不是很懂.于是今天跟大家来深入聊聊 Safe Point,希望通过这篇文章能解答这样几个问题: 什么是 ...
- vscode markdown WYSIWYG 所见即所得编辑和预览
一直使用Typora编写markdown,随着vscode在工作中使用的越来越多,产生了一个想法:能不能在vscode中写markdown,减少软件的成本? 可是vscode官方自带的的markdow ...
- 自己动手写线程池——向JDK线程池进发
自己动手写线程池--向JDK线程池进发 前言 在前面的文章自己动手写乞丐版线程池中,我们写了一个非常简单的线程池实现,这个只是一个非常简单的实现,在本篇文章当中我们将要实现一个和JDK内部实现的线程池 ...
- LcdToos如何实现PX01自动调Flicker及VCOM烧录
准备工作: LcdTools+PX01点亮需调Flicker的屏:F118 Flicker探头,用于自动Flicker校准测量,F118连接PX01上电后,探头屏会提示零点校准,此时需盖住探头窗口再按 ...
- 从 QFramework 重新开始
自从上一篇博文写完后,就进入了繁忙工作状态,直到最近才开始有一点空闲时间. 这次繁忙的状态从 2022 年 10 月 11 日 持续到 2022 年 11 月 5 日. 主要的工作就是 QFramew ...