首页 > 其他分享 >K8s安装乐维5.0应用部署文档

K8s安装乐维5.0应用部署文档

时间:2022-11-17 20:57:26浏览次数:82  
标签:5.0 kubectl 乐维 nginx server yaml pvc lw K8s

 

乐维产品包具体打包为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

标签:5.0,kubectl,乐维,nginx,server,yaml,pvc,lw,K8s
From: https://www.cnblogs.com/lwops/p/16900900.html

相关文章

  • K8s存储管理—volume、pv、pvc
    介绍---------来自官方文档    存储的管理是一个与计算实例的管理完全不同的问题。PersistentVolume子系统为用户和管理员提供了一组API,将存储如何供应的细节从其......
  • K8s集群环境搭建
    K8s集群环境搭建1、环境规划1.1集群类型Kubernetes集群大体上分为两类:一主多从和多主多从一主多从:一台master节点和多台node节点,搭建简单,但是有单机故障风险,适用于......
  • k8s的亲和和反亲和
    亲和和反亲和,包含两种类型:“节点亲和”和“pod间亲和/反亲和”为何要做node亲和我们在日常工作中经常会遇到要在k8s环境下维护多条产品线,甚至在微服务架构中,又有前端......
  • k8s:bootstrap方式部署 kubelet的相关参数设置:【重点一篇文章】
    重点!!相关参数必须适应!!有些参数不可以配置!!!!! kube-apiserver特别注意:使用bootstrap,apiserver中千万 【不可以】 配置以下kubelet认证相关参数--kubelet-certifica......
  • Kubernetes(K8S) 安装Nacos,报 No DataSource set
    原因,数据库为MySQL5.7需要在yaml加上参数mysql.db.param:"characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&server......
  • CentOS 卸载 K8S
    1、删除 k8s 组件kubeadmreset-f2、删除其它容器和所有镜像dockerkill$(dockerps-a-q)dockerrm$(dockerps-a-q)dockerrmi-f$(dockerimages-q)3、清除ip......
  • K8s如何启用cgroup2支持?
    什么是cgroup......
  • k8s集群搭建
    1准备三台linux服务器2docker安装三台机器全部执行docker安装操作2.1移除以前docker相关包sudoyumremovedocker\docker-client\......
  • 开发访问k8s集群的几种方法(路由和kt)
    现状k8s集群内是有一套完整网络环境,我们不能直接通过IP访问到k8s集群内的pod或者service,只能通过nodeport或者ingress才能访问到服务.痛点开发人员进行微服务开发的......
  • K8s中大量Pod是Evicted状态,这是咋回事?
    线上被驱逐实例数据最近在线上发现很多实例处于Evicted状态,通过podyaml可以看到实例是因为节点资源不足被驱逐,但是这些实例并没有被自动清理,平台的大部分用户在操作......