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 createnamespace 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 -fyaml-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 -fyaml-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 "CALLpartition_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/runkitty/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/runreport/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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容