摘要: sysdig 是一个轻量级的系统监控工具,同时它还原生支持容器。 通过 sysdig 我们可以近距离观察 linux 操作系统和容器的行为。 Linux 上有很多常用的监控工具,比如 strace,tcpdump,htop, iftop,lsof ...... 而 sysdig 则是将这些工具的功能 阅读全文
posted @ 2019-04-26 11:06 gsophy 阅读(194) 评论(0) 推荐(0) 编辑
摘要: Docker 最常用的监控方案 当 Docker 部署规模逐步变大后,可视化监控容器环境的性能和健康状态将会变得越来越重要。 Docker 自带的几个监控子命令: ps 、top 、stats 功能更强的开源监控工具: sysdig 、Weave Scope 、 cAdvisor 、Promethe 阅读全文
posted @ 2019-04-25 14:54 gsophy 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 跨主机使用 Rex-Ray volume 在docker1上创建mysql容器,并挂载使用mysqldata数据卷 磁盘文件直接挂载在了docker1 上 验证数据 也是存在的 Rex-Ray 可以提供跨主机的 volume,其生命周期不依赖 Docker Host 和容器,是 stateful 容 阅读全文
posted @ 2019-04-24 11:11 gsophy 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 使用 Rex-Ray volume 在 docker1 或 docker2 上执行如下命令创建 volume: rexray volume create --size 2 'C:\share\mydata' --size 2 指定磁盘大小是2 单位是GB 磁盘路径含有特殊符号用单引号引起来 可以直接 阅读全文
posted @ 2019-04-24 10:57 gsophy 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 配置 VirtualBox backend 在 VirtualBox 宿主机上启动 vboxwebsrv 服务: C:\Program Files\Oracle\VirtualBox > VBoxWebSrv.exe -H 0.0.0.0 执行如下命令关闭 VirtualBox 的登录认证: C:\ 阅读全文
posted @ 2019-04-23 21:17 gsophy 阅读(170) 评论(0) 推荐(0) 编辑
摘要: Rex-Ray 安装和配置方法 Rex-Ray 是一个优秀的 Docker volume driver 安装和配置方法 Rex-Ray 以 standalone 进程的方式运行在 Docker 主机上,安装方法很简单,在需要使用 Rex-Ray driver 的主机 host1 和 host2上运行 阅读全文
posted @ 2019-04-23 14:45 gsophy 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 从业务数据的角度看,容器可以分为两类: 无状态(stateless)容器 无状态是指容器在运行过程中不需要保存数据,每次访问的结果不依赖上一次访问,比如提供静态页面的 web 服务器。 有状态(stateful)容器 有状态是指容器需要保存数据,而且数据会发生变化,访问的结果依赖之前请求的处理结果, 阅读全文
posted @ 2019-04-18 09:51 gsophy 阅读(132) 评论(0) 推荐(0) 编辑
摘要: Docker 起初只提供了简单的 single-host 网络,显然这不利于 Docker 构建容器集群并通过 scale-out 方式横向扩展到多个主机上。 跨主机网络方案: Docker Overaly Macvaln Flannel Weave Calico 根据不同场景选择最合适的方案: 网 阅读全文
posted @ 2019-04-17 09:57 gsophy 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 定制IP池 首先定义一个 IP Pool,比如: calicoctl create -f ipPool.yml 用此 IP Pool 创建 calico 网络。 docker network create --driver calico --ipam-driver calico-ipam --sub 阅读全文
posted @ 2019-04-16 09:54 gsophy 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 定制 Calico 网络 Policy Calico 默认的 policy 规则是:容器只能与同一个 calico 网络中的容器通信。 Calico 能够让用户定义灵活的 policy 规则,精细化控制进出容器的流量 实践一个场景: 1、创建一个新的 calico 网络 cal_web 并部署一个 阅读全文
posted @ 2019-04-15 10:44 gsophy 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 相同calico 网络之间的连通性 测试一下 bbox1 与 bbox2 的连通性: ping 成功,数据包流向如下图所示。 1)根据 bbox1 的路由表,将数据包从 cal0 发出。 2)数据经过 veth pair 到达 host1,查看路由表,数据由 ens192 发给 host2(10.1 阅读全文
posted @ 2019-04-12 13:59 gsophy 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 分析 Calico 的网络结构 在 host1 中运行容器 bbox1 并连接到 cal_net1: docker container run --network cal_net1 --name bbox1 -tid busybox 查看 bbox1 的网络配置 cali0 是 calico int 阅读全文
posted @ 2019-04-12 13:20 gsophy 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 0、准备工作 Calico 是一个纯三层的虚拟网络方案,Calico 为每个容器分配一个 IP,每个 host 都是 router,把不同 host 的容器连接起来。 与 VxLAN 不同的是,Calico 不对数据包做额外封装,不需要 NAT 和端口映射,扩展性和性能都很好。 Calico 优势: 阅读全文
posted @ 2019-04-10 17:46 gsophy 阅读(181) 评论(0) 推荐(0) 编辑
摘要: Weave 与外网通信 weave 是一个私有的 VxLAN 网络,默认与外部网络隔离。 外部网络如果要访问到 weave 中的容器:1、首先将主机加入到 weave 网络。2、然后把主机当作访问 weave 网络的网关。 要将主机加入到 weave,执行 weave expose。 这个 IP 1 阅读全文
posted @ 2019-04-09 10:02 gsophy 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 首先在host2 执行如下命令: weave launch 10.12.31.22 这里必须指定 host1 的 IP 10.12.31.22,这样 host1 和 host2 才能加入到同一个 weave 网络。 运行容器 bbox3: eval $(weave env) docker run - 阅读全文
posted @ 2019-04-08 13:36 gsophy 阅读(190) 评论(0) 推荐(0) 编辑
摘要: Weave 网络结构分析 在 host1 中运行容器 bbox1: eval $(weave env) docker run --name bbox1 -itd busybox 首先执行 eval $(weave env) 很重要,其作用是将后续的 docker 命令发给 weave proxy 处 阅读全文
posted @ 2019-04-04 14:46 gsophy 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 如何使用 Weave 网络? weave 是 Weaveworks 开发的容器网络解决方案。 weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来。 对容器来说,weave 就像一个巨大的以太网交换机,所有容器都被接入这个交换机,容器可以直接通信,无需 NAT 和端口映射。 除此之外,we 阅读全文
posted @ 2019-04-03 14:46 gsophy 阅读(158) 评论(0) 推荐(0) 编辑
摘要: flannel host-gw backend flannel 支持多种 backend:(1)vxlan backend;(2)host-gw; 与 vxlan 不同,host-gw 不会封装数据包,而是在主机的路由表中创建到其他主机 subnet 的路由条目,从而实现容器跨主机通信。 要使用 h 阅读全文
posted @ 2019-04-02 10:56 gsophy 阅读(206) 评论(0) 推荐(0) 编辑
摘要: flannel 的连通与隔离 测试 bbox1 和 bbxo2 的连通性: bbox1 能够 ping 到位于不同 subnet 的 bbox2,通过 traceroute 分析一下 bbox1 到 bbox2 的路径。 1) bbox1 与 bbox2 不是一个 subnet,数据包发送给默认网关 阅读全文
posted @ 2019-04-01 14:12 gsophy 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 在 Docker 中使用 flannel 编辑 host1 的 Docker 配置文件 /etc/systemd/system/docker.service.d/10-machine.conf 设置 --bip 和 --mtu。 这两个参数的值必须与 /run/flannel/subnet.env 阅读全文
posted @ 2019-03-29 22:15 gsophy 阅读(127) 评论(0) 推荐(0) 编辑