亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么部署docker swarm集群監控

發布時間:2021-07-29 23:15:57 來源:億速云 閱讀:210 作者:chen 欄目:云計算

本篇內容主要講解“怎么部署docker swarm集群監控”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么部署docker swarm集群監控”吧!

前提

  1. Docker

前言

現在Docker Swarm已經徹底輸給了K8S,但是現在K8S依然很復雜,上手難度較Docker Swarm高,如果是小規模團隊且需要容器編排的話,使用Docker Swarm還是適合的。

目前Docker Swarm有一個問題一直沒有解決,如果業務需要知道用戶的請求IP,則Docker Swarm滿足不了要求。目前部署在Docker Swarm內的服務,無法獲取到用戶的請求IP。

具體可以看看這個ISSUE->Unable to retrieve user's IP address in docker swarm mode

整體思路

思路整體來說是使用Influxdb+Grafana+cadvisor,其中cadvisor負責數據的收集,每一臺節點都部署一個cadvisor服務,Influxdb負責數據的存儲,Grafana負責數據的可視化。

怎么部署docker swarm集群監控

演示環境

主機IP
master(manager)192.168.1.60
node1(worker)192.168.1.61
node2(worker)192.168.1.62

怎么部署docker swarm集群監控

我這里是將master節點當作監控數據存儲以及可視化服務的節點作為演示,一般是拿一個worker節點做這樣的工作。

初始化Docker Swarm

在master機器上初始化集群,運行
docker swarm init --advertise-addr {MASTER-IP}

[root@master ~]# docker swarm init --advertise-addr 192.168.1.60

Swarm initialized: current node (138n5rwjz83y8goyzepp1cdo7) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-67je7chylnpyt0s4k1ee63rhxgh0qijiah9gadvcr7i6uab909-535nf6qu6v7b8dscc0plghr9j 192.168.1.60:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions

在node節點運行提示的命令加入到集群中
docker swarm join --token SWMTKN-1-67je7chylnpyt0s4k1ee63rhxgh0qijiah9gadvcr7i6uab909-535nf6qu6v7b8dscc0plghr9j 192.168.1.60:2377
manager節點初始化集群后,都會有這樣一個提示,這個的命令只是給個示例,實際命令需要根據初始化集群后的真實情況來運行。

[root@node1 ~]#  docker swarm join --token SWMTKN-1-67je7chylnpyt0s4k1ee63rhxgh0qijiah9gadvcr7i6uab909-535nf6qu6v7b8dscc0plghr9j 192.168.1.60:2377
This node joined a swarm as a worker.
[root@node2 ~]#  docker swarm join --token SWMTKN-1-67je7chylnpyt0s4k1ee63rhxgh0qijiah9gadvcr7i6uab909-535nf6qu6v7b8dscc0plghr9j 192.168.1.60:2377
This node joined a swarm as a worker.

在master機器上查看當前的node節點

docker node ls

[root@master ~]# docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
138n5rwjz83y8goyzepp1cdo7 *   master              Ready               Active              Leader              18.09.8
q03by75rqur63lx36cmordf11     node1               Ready               Active                                  18.09.8
6shdf5ej4b5u7x877bg9nyjk3     node2               Ready               Active

到目前為止集群已經搭建完成了,接下來開始部署服務

在Docker Swarm部署監控服務

docker stack deploy -c docker-compose-monitor.yml monitor

[root@master ~]# docker stack deploy -c docker-compose-monitor.yml monitor
Creating network monitor_default
Creating service monitor_influx
Creating service monitor_grafana
Creating service monitor_cadvisor

docker-compose-monitor.yml文件內容

version: '3'

services:
 influx:
   image: influxdb
   volumes:
     - influx:/var/lib/influxdb
   deploy:
     replicas: 1
     placement:
       constraints:
         - node.role == manager

 grafana:
   image: grafana/grafana
   ports:
     - 0.0.0.0:80:3000
   volumes:
     - grafana:/var/lib/grafana
   depends_on:
     - influx
   deploy:
     replicas: 1
     placement:
       constraints:
         - node.role == manager

 cadvisor:
   image: google/cadvisor
   hostname: '{{.Node.Hostname}}'
   command: -logtostderr -docker_only -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influx:8086
   volumes:
     - /:/rootfs:ro
     - /var/run:/var/run:rw
     - /sys:/sys:ro
     - /var/lib/docker/:/var/lib/docker:ro
   depends_on:
     - influx
   deploy:
     mode: global

volumes:
 influx:
   driver: local
 grafana:
   driver: local

下載docker-compose-monitor.yml

查看服務的部署情況

docker service ls

[root@master ~]# docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE                    PORTS
qth5tssf2sm1        monitor_cadvisor    global              3/3                 google/cadvisor:latest   
p2vbxe7ic175        monitor_grafana     replicated          1/1                 grafana/grafana:latest   *:80->3000/tcp
von1rpeqq7vj        monitor_influx      replicated          1/1                 influxdb:latest

到目前為止,服務已經部署完成了,三臺機器各自部署一個cadvisor,在master節點部署了grafanainfluxdb

為cadvisor配置influxdb數據庫

查看一下master機器上的服務
docker ps

[root@master ~]# docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS               NAMES
55965fdf13a3        grafana/grafana:latest   "/run.sh"                3 hours ago         Up 3 hours          3000/tcp            monitor_grafana.1.l9uh0ov7ltk7q2yollmk4x1v9
0bf544c7d81c        google/cadvisor:latest   "/usr/bin/cadvisor -…"   3 hours ago         Up 3 hours          8080/tcp            monitor_cadvisor.138n5rwjz83y8goyzepp1cdo7.l53vufoivp0oe8tyy14nh0jof
3ce050f0483e        influxdb:latest          "/entrypoint.sh infl…"   3 hours ago         Up 3 hours          8086/tcp            monitor_influx.1.vraeh8ektium1j1jd27qvq1au
[root@master ~]#

可以看到是符合預期的,接下來進一步查看cadvisor容器的日志
docker logs -f 0bf544c7d81c

[root@master ~]# docker logs -f 0bf544c7d81c
W0209 09:32:15.730951       1 manager.go:349] Could not configure a source for OOM detection, disabling OOM events: open /dev/kmsg: no such file or directory
E0209 09:33:15.783705       1 memory.go:94] failed to write stats to influxDb - {"error":"database not found: \"cadvisor\""}
E0209 09:34:15.818661       1 memory.go:94] failed to write stats to influxDb - {"error":"database not found: \"cadvisor\""}
E0209 09:35:16.009312       1 memory.go:94] failed to write stats to influxDb - {"error":"database not found: \"cadvisor\""}
E0209 09:36:16.027113       1 memory.go:94] failed to write stats to influxDb - {"error":"database not found: \"cadvisor\""}
E0209 09:37:16.107051       1 memory.go:94] failed to write stats to influxDb - {"error":"database not found: \"cadvisor\""}
E0209 09:38:16.215684       1 memory.go:94] failed to write stats to influxDb - {"error":"database not found: \"cadvisor\""}
E0209 09:39:16.305772       1 memory.go:94] failed to write stats to influxDb - {"error":"database not found: \"cadvisor\""}

可以看到現在一直是在報錯的,因為目前的influx容器中沒有cadvisor這樣的數據庫存在,接下來我們進入influx容器并創建對應的cadvisor數據庫,在master機器上執行以下命令即可。

docker exec `docker ps | grep -i influx | awk '{print $1}'` influx -execute 'CREATE DATABASE cadvisor'

當然,也可以分步驟執行

  1. 找到influxdb的容器

  2. 進入到influxdb容器內并登陸influx

  3. 創建數據庫

這里就不演示了。

配置grafana

到目前為止,數據已經在收集了,并且數據存儲在influxdb中。接下來配置grafana將數據進行可視化。

因為docker-compose-monitor.yml文件內給grafna配置的端口是80,這里直接訪問master機器的IP就可以訪問到grafana,在瀏覽器打開192.168.1.60.
grafana
默認的帳號是admin
默認的密碼是admin
首次登陸后會提示修改密碼,新密碼繼續設置為admin也沒關系。

登陸成功后開始設置數據源

配置數據源

  1. 打開左邊菜單欄進入數據源配置頁面 怎么部署docker swarm集群監控

  2. 添加新的數據源,我這里是添加過了,所以會有一個influxdb的數據源顯示。
    怎么部署docker swarm集群監控

  3. 選擇influxdb類型的數據源
    怎么部署docker swarm集群監控

  4. 填寫influxdb對應的信息,Name填寫influx,因為待會要用到一個grafana模版,所以這里叫influx名字,URL填http://influx:8086,這個也不是固定的,本次docker-compose-monitor.yml文件內influxdb的容器名叫influx,端口開放出來的為8086(默認),所以這里填influx:8086
    怎么部署docker swarm集群監控

到目前為止,數據源相關的內容已經配置完成了。

配置grafana視圖模版

這里使用模版只是為了演示效果,如果模版的樣式不太滿意,可以研究下grafana自行調整。

  1. 首先打開grafana的dashboard市場下載模版https://grafana.com/grafana/dashboards/4637/reviews
    怎么部署docker swarm集群監控

  2. 選中dashboard菜單,選中import進行導入 怎么部署docker swarm集群監控

  3. 打開dashboard就已經可以看到dashboard模版的內容了.
    怎么部署docker swarm集群監控

總結

一個基本的Docker Swarm集群監控就搭建完成了

還有更高級的也許后面會更新一篇blog進行講述.例如當某個值(CPU)達到某個閥值,發送釘釘或者slack消息進行告警

只要明白思路,實操基本上沒有什么問題。

到此,相信大家對“怎么部署docker swarm集群監控”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

漠河县| 蒲城县| 临城县| 贺兰县| 靖宇县| 石家庄市| 右玉县| 沁水县| 安多县| 南江县| 桐城市| 洱源县| 南昌市| 马关县| 平乡县| 兴国县| 长宁县| 固安县| 启东市| 成武县| 峨眉山市| 临西县| 双城市| 海盐县| 桑植县| 兴安县| 泸州市| 灵山县| 巴东县| 会东县| 周口市| 嘉兴市| 通化县| 彭阳县| 潍坊市| 东城区| 米脂县| 怀化市| 高淳县| 安西县| 吴江市|