首先下載 dubbo-monitor源碼包 7-200
dubbo-monitor是監控zookeeper狀態的一個服務,另外還有dubbo-admin,效果一樣,感興趣的可以自己研究一下。
# cd /opt/src
# wget https://github.com/Jeromefromcn/dubbo-monitor/archive/master.zip
# yum -y install unzip # unzip master.zip # mv dubbo-monitor-mster dubbo-monitor # cd /opt/src/dubbo-monitor
修改配置文件:對應修改,不要全部刪除內容。
# vi /opt/src/dubbo-monitor/dubbo-monitor-simple/conf/dubbo_origin.properties
dubbo.registry.address=zookeeper://zk1.od.com:2181?backup=zk2.od.com:2181,zk3.od.com:2181 dubbo.protocol.port=20880 dubbo.jetty.port=8080 dubbo.jetty.directory=/dubbo-monitor-simple/monitor dubbo.statistics.directory=/dubbo-monitor-simple/statistics dubbo.charts.directory=/dubbo-monitor-simple/charts dubbo.log4j.file=logs/dubbo-monitor.log
優化修改Dockerfile並限制jvm資源,將最后的exec命令的后台&符號刪除,並且將exec命令下面的都干掉:
# sed -r -i -e '/^nohup/{p;:a;N;$!ba;d}' ./dubbo-monitor-simple/bin/start.sh && sed -r -i -e "s%^nohup(.*)%exec \1%" ./dubbo-monitor-simple/bin/start.sh
執行docker build並上傳鏡像到我們的私有倉庫:
# cp -a dubbo-monitor/ /data/dockerfile/
# cd /data/dockerfile/dubbo-monitor
# docker build . -t harbor.od.com/infra/dubbo-monitor:latest
# docker push harbor.od.com/infra/dubbo-monitor:latest
制作資源配置清單:
1、dp.yaml
# mkdir /data/k8s-yaml/dubbo-monitor
# cd /data/k8s-yaml/dubbo-monitor
# vi dp.yaml
kind: Deployment apiVersion: extensions/v1beta1 metadata: name: dubbo-monitor namespace: infra labels: name: dubbo-monitor spec: replicas: 1 selector: matchLabels: name: dubbo-monitor template: metadata: labels: app: dubbo-monitor name: dubbo-monitor spec: containers: - name: dubbo-monitor image: harbor.od.com/infra/dubbo-monitor:latest ports: - containerPort: 8080 protocol: TCP - containerPort: 20880 protocol: TCP imagePullPolicy: IfNotPresent imagePullSecrets: - name: harbor restartPolicy: Always terminationGracePeriodSeconds: 30 securityContext: runAsUser: 0 schedulerName: default-scheduler strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 1 maxSurge: 1 revisionHistoryLimit: 7 progressDeadlineSeconds: 600
2、svc.yaml
# vi svc.yaml
kind: Service apiVersion: v1 metadata: name: dubbo-monitor namespace: infra spec: ports: - protocol: TCP port: 8080 targetPort: 8080 selector: app: dubbo-monitor
3、ingress.yaml
# vi ingress.yaml
kind: Ingress apiVersion: extensions/v1beta1 metadata: name: dubbo-monitor namespace: infra spec: rules: - host: dubbo-monitor.od.com http: paths: - path: / backend: serviceName: dubbo-monitor servicePort: 8080
應用資源配置清單:node節點
# kubectl apply -f http://k8s-yaml.od.com/dubbo-monitor/dp.yaml # kubectl apply -f http://k8s-yaml.od.com/dubbo-monitor/svc.yaml # kubectl apply -f http://k8s-yaml.od.com/dubbo-monitor/ingress.yaml
驗證:
# kubectl get pod -n infra
這個服務是有web頁面的,我們添加dns解析:
# vi /var/named/od.com.zone
# systemctl restart named
# dig -t A dubbo-monitor.od.com @10.4.7.11 +short
這里已經可以看到我們之前部署的dubbo-demo-service服務了,啟動了兩個進程來提供服務。
至此,dubbo-monitor監控服務已經部署完成。