Docker---Prometheus监控

Docker—Prometheus监控

Prometheus_logo

Prometheus需要多种第三方工具来收集数据,如接下来要使用的**cAdvisornode-exporter**,最终Prometheus使用Grafana进行监控数据的展示

Docker跨主机web集群的weave网络

跨主机web集群的weave网络

实验环境

ip 服务 备注
192.168.1.11 nginx host1
192.168.1.12 Docker已安装 host2
192.168.1.13 Docker已安装 host3
192.168.1.14 Docker已安装 host4

Docker监控方案

Docker监控方案

docker中有几个自带的监控方案:sysdiguifdscope

sysdig是命令行界面的监控,而后两者是web页面的图形化监控

日后,作者将会去研究普鲁米修斯的容器监控

sysdig容器监控的下载使用

下载

[root@localhost ~]# docker pull sysdig/sysdig

weave网络跨主机容器通信

weave网络跨主机容器间通信

实验环境

ip 服务 备注
192.168.1.12 docker(已安装)、weave已安装 host1
192.168.1.13 docker(已安装) host2

实验目的

将host2加入host1的weave网络中,在各个主机创建一个容器,并进行通信

实验步骤

参考上两篇文档可以安装完weave

weave网络单主机容器间通信

weave网络单主机容器间通信

实验环境

已安装docker一台linux,并weave也安装启动完成,安装步骤参考上一篇文档

实验目的

单主机内两个使用weave网络的容器可以通信

实验步骤

进入weave网络范围

[root@localhost ~]# eval $(weave env)

Docker容器网络-weave

Weave网络介绍

Weave是 Weaveworks 开发的容器网络解决方案。weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来。对容器来说,weave 就像一个巨大的以太网交换机,所有容器都被接入这个交换机,容器可以直接通信,无需 NAT 和端口映射。除此之外,weave 的 DNS 模块使容器可以通过 hostname 访问。

使用环境

weave 不依赖分布式数据库(例如 etcd 和 consul)交换网络信息,每个主机上只需运行 weave 组件就能建立起跨主机容器网络。我们会在 host1 和 host2 上部署 weave 并实践 weave 的各项特性。

flannle网络中的web集群

flannle网络中的web集群

实验环境

物理机 服务 备注
192.168.1.12 docker(已安装)、etcd、flannel server1
192.168.1.13 docker(已安装)、etcd、flannel server2

flannel+docker-compose

flannel跨主机通信部署

flannel跨主机通信部署

既然是跨主机,至少需要两台docker主机

实验环境

ip 服务 备注
192.168.1.12 docker(已启动)、etcd、flannel server1
192.168.1.13 docker(已启动)、etcd、flannel server2

实验目的

让docker不同主机的容器通过flannel网络进行分配ip并完成通信

实验步骤

使用flannel要求关闭防火墙,关闭沙盒,开启路由转发

Docker跨主机容器-flannel介绍

flannel网络概述

flannel 是 CoreOS 开发的容器网络解决方案。flannel 为每个 host 分配一个 subnet(子网),容器从此 subnet 中分配 IP,这些 IP 可以在主机间路由,容器间无需 NAT 和 port mapping(端口映射) 就可以跨主机通信。

flannel的作用

因为flannel实现跨主机的子网通信是通过主机中的dr0网卡进行通信的,由flannel分配的子网都是从手动指定的一个大的子网中划分出来分配的。

Docker跨主机不同网络-overlay

Docker跨主机容器间不同网络间通信

实验环境

ip 服务 备注(别名)
192.168.1.12 Docker/consul server1
192.168.1.13 Docker server2

实验目的

server1:运行2个容器bbox1和bbox2

server2:运行2个容器bbox3和bbox4

net1(overlay网络):bbox1和bbox4使用通信

net2(overlay网络):bbox2和bbox3使用通信,并手动指定网段为10.10.10.0,且bbox2使用10.10.10.100/24地址,bbox3使用10.10.10.100/24地址

同时bbox1也可与net2网络的容器通信

Docker跨主机容器网络-overlay

Docker跨主机容器网络通信

前面已经有了 Docker 的几种网络方案:none、host、bridge 和 joined 容器,它们解决了单个 Docker主机内容器通信的问题。

本文将介绍docker的跨主机网络的一些基础概念以及简单的结构(overlay)

现在来想一个生产环境,在生产环境中,希望每一台docker主机都只去运行一个服务的集群即可。如

一台docker主机运行web集群

一台docker主机运行mysql集群

一台docke主机运行php集群

可是如果想要这些环境像我们所需要的那样,以LNMP的架构运行,务必每台主机间的容器之间是需要通信的。就用到了本文的跨主机容器通信的方案

docker-compose构建LNMP分离

docker-compose构建并启动LNMP

真的是太不容易了,这个实验贼**难

开始吧~~

奥里给!!!

创建docker-compose执行目录/lnmp

[root@localhost ~]# mkdir /lnmp

创建nginx/mysql/php的构建镜像目录

[root@localhost ~]# cd /lnmp
[root@localhost lnmp]# mkdir {nginx,mysql,php}

拖包

docker-compose编排wordpress博客

部署wordpress博客环境

编写docker-compose.yml

创建目录并编写服务内容

docker-compose编排web集群

启动两个nginx容器

编写docker-compose.yml

如果要编排的容器较多,建议使用目录将docker-compose.yml分隔开来

[root@localhost ~]# mkdir test
[root@localhost ~]# cd test/
[root@localhost test]# vim docker-compose.yml
nginx:
  container_name: nginx91
  image: nginx:latest
  ports:
    - "8091:80"
  volumes:
    - /www/wwwroot/8091:/usr/share/nginx/html
  hostname: nginx.test.com
#
nginx-php:
  container_name: nginx92
  image: nginx:latest
  ports:
    - "8092:80"
  volumes:
    - /www/wwwroot/8092/:/usr/share/nginx/html
  hostname: nginx-php.test.com

docker-compose.yml文件语法

docker-compose文件结构语法解析





正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0