1.WGCLOUD介绍

WGCLOUD属于极简及高效的主机监控零碎,反对主机各种指标监测,并且反对故障告警信息推送,开源零碎足以满足咱们对测试环境机器的监控,所以用起来。

2.WGCLOUD基于K8S部署
2.1.官网下载v3.4.6版本tar.gz安装包

wgcloud-v3.4.6.tar.gz

2.2.新建数据库,导入数据

(1)解压wgcloud-v3.4.6.tar.gz安装包(2)在解压目录下会发现wgcloud-MySQL.sql、wgcloud-Oracle.sql和wgcloud-PostgreSQL.sql三份sql文件(3)依据本人的须要抉择对应的sql文件导入,笔者这里以mysql为主(4)批改server/config/application.yml文件的数据库连贯信息,更新为本人的数据库连贯信息及对应的驱动即可

2.3.编写server端Dockerfile

#根底镜像FROM java:8#作者MAINTAINER xxx <xxx@xxx.com>#切换镜像目录,进入usr目录WORKDIR /wgcloudRUN mkdir wgcloudADD . /wgcloud/RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeRUN echo 'Asia/Shanghai' >/etc/timezoneCMD ["/wgcloud/wgcloud/server/start.sh"]

2.4.制作镜像

docker buld -t harbor.xxx.xxx/qa-dev/wgcloud/wgcloud:v1 .

2.5.将镜像推送至harbor仓库

docker push harbor.xxx.xxx/qa-dev/wgcloud/wgcloud:v1

2.6.编写k8s yaml文件

kind: Deploymentmetadata:  name: wgcloud-deployment  labels:    app: wgcloud    namespace: k8s-jenkins  #这里依据本人的namespace做调整spec:  replicas: 1 #管制治理运行的pod个数  selector:    matchLabels:   #标签      app: wgcloud  template:    metadata:      labels:        app: wgcloud    spec:      containers:        - name: wgcloud          image: harbor.xxx.xxx/qa-dev/wgcloud/wgcloud:v1          imagePullPolicy: Always          ports:            - containerPort: 9997  #容器裸露的端口号-1            - containerPort: 9998  #容器裸露的端口号-2            - containerPort: 9999  #容器裸露的端口号-3      imagePullSecrets:        - name: docker-harbor-slave---apiVersion: v1kind: Servicemetadata:  name: wgcloud-servicespec:  selector:    app: wgcloud  ports:    - name: http-test1      port: 9997      protocol: TCP      nodePort: xxx-1  #依据本人的nodePort做调整    - name: http-test2      port: 9998      protocol: TCP      nodePort: xxx-2    - name: http-test3      port: 9999      protocol: TCP      nodePort: xxx-3  #指定节点凋谢的端口  type: NodePort  selector:    app: wgcloud

2.7.接入jenkins,pipeline

def label = "slave-${UUID.randomUUID().toString()}"podTemplate(label: label, serviceAccount: "xxx,领有某某个角色的账号",imagePullSecrets: [ 'xxx'  拉取镜像的明码],  containers: [  containerTemplate(name: 'kubectl', image: 'harbor.pwesports.net/qa-dev/kubectl:v1', command: 'cat', ttyEnabled: true)], volumes: [  hostPathVolume(mountPath: '/home/jenkins/.kube', hostPath: '/root/.kube'),],yaml: '''          spec:            containers:            - name: kaniko              image: harbor.pwesports.net/qa-dev/kaniko:v2              command:              - /busybox/cat              tty: true              volumeMounts:              - name: docker-config                mountPath: /kaniko/.docker            restartPolicy: Never            volumes:            - name: docker-config              secret:                secretName: docker-harbor-slave                items:                  - key: .dockerconfigjson                    path: config.json            hostAliases:            - ip: "172.16.xxx.xxx"              hostnames:  #代码仓库地址              - "gitlab.xxx.xxx"            - ip: "172.16.xxx.xxx"  ###harbor地址              hostnames:              - "harbor.xxx.xxx"          ''') {  node(label) {     stage('运行 Kubectl') {        git credentialsId: 'xxxx-4c16-479c-8cd3-2b29f828e71b', url: 'http://gitlab.xxx.xxx/QA/xxx.git', branch: 'master'        container('kubectl') {             sh """                kubectl apply -f ${workspace}/k8s-config/wgcloud.yaml             """        }     }  }}

3.拜访

http://nodeIP:nodePort/wgcloud/login/toLogin