编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

十次方社交系统 第10章-容器管理与容器监控

wxchong 2024-10-15 17:20:29 开源技术 12 ℃ 0 评论

学习目标:

能够说出Rancher软件的作用,能够在Rancher中部署微服务

能够说出influxDB的作用,能够创建数据库、用户、赋予权限

能够说出cAdvisor 的作用,能够创建容器与influxDB连接

能够说出Grafana 的作用,能够使用Grafana监控容器的内存数据,并配置警告

1容器管理工具Rancher

1.1什么是Rancher

Rancher是一个开源的企业级全栈化容器部署及管理平台。Rancher为容器提供一揽 子基础架构服务:CNI兼容的网络服务、存储服务、主机管理、负载均衡、防护墙…… Rancher让上述服务跨越公有云、私有云、虚拟机、物理机环境运行,真正实现一键式应 用部署和管理。

https://www.cnrancher.com/

1.2Rancher安装

(1)下载Rancher 镜像

docker pull rancher/server

(2)创建Rancher容器

docker run ‐d ‐‐name=rancher ‐‐restart=always ‐p 9090:8080 rancher/server

restart为重启策略

no,默认策略,在容器退出时不重启容器

on-failure,在容器非正常退出时(退出状态非0),才会重启容器

on-failure:3,在容器非正常退出时重启容器,最多重启3次always,在容器退出时总是重启容器

unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动 时就已经停止了的容器

(3)在浏览器输入地址: http://192.168.184.136:9090 即可看到高端大气的欢迎页

点击Got It 进入主界面

(4)切换至中文界面

点击右下角的English 在弹出菜单中选择中文

切换后我们就可以看到亲切的中文界面啦~

1.3Rancher初始化

1.3.1添加环境

Rancher 支持将资源分组归属到多个环境。 每个环境具有自己独立的基础架构资源及服务,并由一个或多个用户、团队或组织所管理。

例如,您可以创建独立的“开发”、“测试”及“生产”环境以确保环境之间的安全隔离,将“开 发”环境的访问权限赋予全部人员,但限制“生产”环境的访问权限给一个小的团队。

(1)选择“Default -->环境管理” 菜单

(2)填写名称,点击“创建”按钮

(3)按照上述步骤,添加十次方测试环境和生产环境

(4)你可以通过点击logo右侧的菜单在各种环境下切换

1.3.2添加镜像库

192.168.184.135

1.3.3添加主机

(1)选择基础架构–>主机 菜单,点击添加主机

(2)拷贝脚本

(3)在服务器(虚拟机)上运行脚本

(4)点击关闭按钮后,会看到界面中显示此主机。我们可以很方便地管理主机的每个容器的开启和关闭

1.3.4添加应用

点击应用–>全部(或用户) ,点击“添加应用”按钮

填写名称和描述

点击“创建”按钮,列表中增加了新增的应用

1.4应用部署

1.4.1MySQL部署

镜像:centos/mysql-57-centos7 增加数据库服务

注意:添加环境变量 MYSQL_ROOT_PASSWORD=123456

点击创建按钮,完成创建上述操作相当于以下docker命令

docker run ‐di ‐‐name mysql ‐p 3306:3306 ‐e MYSQL_ROOT_PASSWORD=123456 centos/mysql‐57‐centos7

完成后服务列表中存在并且状态为激活使用SQLyog测试链接,执行建表语句

1.4.2RabbitMQ部署

镜像:rabbitmq:management端口映射5671 5672 436915671 15672 25672

浏览器访问 http://192.168.184.136:15672/

1.4.3Redis部署 (学员实现)

进入应用,点击添加服务名称redis ,镜像redis ,端口映射6379

创建后使用客户端测试链接

redis‐cli ‐h 192.168.184.136

测试成功

1.4.4MongoDB部署(学员实现)

名称mongo 镜像mongo端口映射27017

1.4.5ElasticSearch部署(学员实现)

名称elasticsearch 镜像elasticsearch:5.6.8 端口映射9300 9200

添加后,浏览器测试: http://192.168.184.136:9200/

1.5微服务容器部署

1.5.1Eureka微服务容器化部署

(1)在用户应用界面中点击“添加服务”

(2)填写名称、描述、镜像和端口映射,点击创建按钮

名称eureka 镜像 192.168.184.135:5000/tensquare_eureka:1.0-SNAPSHOT

(3)服务添加成功

(4)我们现在访问以下我们的系统

http://192.168.184.136:6868/ 可以正常访问

1.5.2配置中心微服务部署

创建容器

添加服务config 镜像 192.168.184.135:5000/tensquare_config:1.0-SNAPSHOT

映射端口:12000

测试 浏览器输入 http://192.168.184.135:12000/base-dev.yml 可以查看到配置文件内容

1.5.3基础微服务部署

(1)添加服务base-service 镜像tensquare_base:1.0-SNAPSHOT端口映射9001

(2)测试微服务 浏览器打开网址 http://192.168.184.136:9001/label 看是否可以看到标签列表

1.6扩容与缩容

1.6.1扩容

(1)在Rancher将创建的base-service(基础信息微服务)删除

(2)重新创建base-service ,不设置端口映射

(3)在选择菜单API -->WebHooks ,点击“添加接收器”按钮

(4)填写名称等信息,选择要扩容的服务,点击创建按钮

(5)接收器列表中新增了一条记录 ,点击触发地址将地址复制到剪切板

(6)使用postman测试:

测试后,发现容器由原来的1个变为了3个

打开erueka,发现服务也有3个

1.6.2缩容

刚才我们实现了扩容,那么如何减少容器数量呢?我们来试试如何缩容

(1)添加接收器 ,选择缩容,步长为1表示每次递减1个 ,点击创建按钮

(2)创建成功后,复制触发地址

(3)使用postman测试

2influxDB

2.1什么是influxDB

influxDB是一个分布式时间序列数据库。cAdvisor仅仅显示实时信息,但是不存储 监视数据。因此,我们需要提供时序数据库用于存储cAdvisor组件所提供的监控信息, 以便显示除实时信息之外的时序数据。

2.2influxDB安装

(1)下载镜像

docker pull tutum/influxdb

(2)创建容器

docker run ‐di \
‐p 8083:8083 \
‐p 8086:8086 \
‐‐expose 8090 \
‐‐expose 8099 \
‐‐name influxsrv \ tutum/influxdb

端口概述: 8083端口:web访问端口8086:数据写入端口

打开浏览器 http://192.168.184.135:8083/

2.3influxDB常用操作

2.3.1创建数据库

CREATE DATABASE "cadvisor"

回车创建数据库

SHOW DATABASES

查看数据库

2.3.2创建用户并授权

创建用户

CREATE USER "cadvisor" WITH PASSWORD 'cadvisor' WITH ALL PRIVILEGES

查看用户

SHOW USRES

用户授权

grant all privileges on cadvisor to cadvisor 
grant WRITE on cadvisor to cadvisor
grant READ on cadvisor to cadvisor

2.3.3查看采集的数据

切换到cadvisor数据库,使用以下命令查看采集的数据

SHOW MEASUREMENTS

现在我们还没有数据,如果想采集系统的数据,我们需要使用Cadvisor软件来实现

3cAdvisor

3.1什么是cAdvisor

Google开源的用于监控基础设施应用的工具,它是一个强大的监控工具,不需要任 何配置就可以通过运行在Docker主机上的容器来监控Docker容器,而且可以监控Docker 主机。更多详细操作和配置选项可以查看Github上的cAdvisor项目文档。

3.2cAdvisor安装

(1)下载镜像

docker pull google/cadvisor

(2)创建容器

docker run ‐‐volume=/:/rootfs:ro ‐‐volume=/var/run:/var/run:rw ‐‐ volume=/sys:/sys:ro ‐‐volume=/var/lib/docker/:/var/lib/docker:ro ‐‐ publish=8080:8080 ‐‐detach=true ‐‐link influxsrv:influxsrv ‐‐name=cadvisor google/cadvisor ‐storage_driver=influxdb ‐storage_driver_db=cadvisor ‐ storage_driver_host=influxsrv:8086

WEB前端访问地址http://192.168.184.135:8080/containers/

性能指标含义参照如下地址https://blog.csdn.net/ZHANG_H_A/article/details/53097084 再次查看influxDB,发现已经有很多数据被采集进去了。

4Grafana

4.1什么是Grafana

Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器。支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。

Grafana主要特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式; 多个数据源。

4.2Grafana安装

(1)下载镜像

docker pull grafana/grafana

(2)创建容器

docker run ‐d ‐p 3001:3000	‐e INFLUXDB_HOST=influxsrv ‐e INFLUXDB_PORT=8086 ‐e INFLUXDB_NAME=cadvisor ‐e INFLUXDB_USER=cadvisor ‐e INFLUXDB_PASS=cadvisor ‐‐link influxsrv:influxsrv ‐‐name grafana grafana/grafana

(3)访问

http://192.168.184.135:3001

用户名密码均为admin

(4)登录后提示你修改密码

(5)之后进入主页面

4.3Grafana的使用

4.3.1添加数据源

(1)点击设置,DataSource

(2)点击添加data source

(3)为数据源起个名称,指定类型、地址、以及连接的数据库名、用户名和密码

点击保存。数据源建立成功

4.3.2添加仪表盘

(1)选择Dashboards --Manager

(2)点击“添加”按钮

(3)点击Graph 图标

(4)出现下面图表的界面 ,点击Panel Title 选择Edit (编辑)

(5)定义标题等基础信息

(6)设置查询的信息为内存,指定容器名称

(7)指定y轴的单位 为M

(8)保存

填写名称

4.4.3预警通知设置

(1)选择菜单 alerting–> Notification channels

(2)点击Add channel 按钮

(3)填写名称,选择类型为webhook ,填写钩子地址

这个钩子地址是之前对base微服务扩容的地址

(4)点击SendTest 测试 观察基础微服务是否增加容器

(5)点击save保存

(6)按照同样的方法添加缩容地址

4.4.4仪表盘预警设置

(1)再次打开刚刚编辑的仪表盘

(2)点击 Create Alert

设置预警线

(3)选择通知

保存更改

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表