随笔分类 -  Docker

摘要:Rex-Ray 安装和配置方法 Rex-Ray 是一个优秀的 Docker volume driver 安装和配置方法 Rex-Ray 以 standalone 进程的方式运行在 Docker 主机上,安装方法很简单,在需要使用 Rex-Ray driver 的主机 host1 和 host2上运行 阅读全文
posted @ 2019-04-23 14:45 gsophy 阅读(258) 评论(0) 推荐(0)
摘要:从业务数据的角度看,容器可以分为两类: 无状态(stateless)容器 无状态是指容器在运行过程中不需要保存数据,每次访问的结果不依赖上一次访问,比如提供静态页面的 web 服务器。 有状态(stateful)容器 有状态是指容器需要保存数据,而且数据会发生变化,访问的结果依赖之前请求的处理结果, 阅读全文
posted @ 2019-04-18 09:51 gsophy 阅读(146) 评论(0) 推荐(0)
摘要:Docker 起初只提供了简单的 single-host 网络,显然这不利于 Docker 构建容器集群并通过 scale-out 方式横向扩展到多个主机上。 跨主机网络方案: Docker Overaly Macvaln Flannel Weave Calico 根据不同场景选择最合适的方案: 网 阅读全文
posted @ 2019-04-17 09:57 gsophy 阅读(211) 评论(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 阅读(205) 评论(0) 推荐(0)
摘要:定制 Calico 网络 Policy Calico 默认的 policy 规则是:容器只能与同一个 calico 网络中的容器通信。 Calico 能够让用户定义灵活的 policy 规则,精细化控制进出容器的流量 实践一个场景: 1、创建一个新的 calico 网络 cal_web 并部署一个 阅读全文
posted @ 2019-04-15 10:44 gsophy 阅读(167) 评论(0) 推荐(0)
摘要:相同calico 网络之间的连通性 测试一下 bbox1 与 bbox2 的连通性: ping 成功,数据包流向如下图所示。 1)根据 bbox1 的路由表,将数据包从 cal0 发出。 2)数据经过 veth pair 到达 host1,查看路由表,数据由 ens192 发给 host2(10.1 阅读全文
posted @ 2019-04-12 13:59 gsophy 阅读(331) 评论(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 阅读(216) 评论(0) 推荐(0)
摘要:0、准备工作 Calico 是一个纯三层的虚拟网络方案,Calico 为每个容器分配一个 IP,每个 host 都是 router,把不同 host 的容器连接起来。 与 VxLAN 不同的是,Calico 不对数据包做额外封装,不需要 NAT 和端口映射,扩展性和性能都很好。 Calico 优势: 阅读全文
posted @ 2019-04-10 17:46 gsophy 阅读(199) 评论(0) 推荐(0)
摘要:Weave 与外网通信 weave 是一个私有的 VxLAN 网络,默认与外部网络隔离。 外部网络如果要访问到 weave 中的容器:1、首先将主机加入到 weave 网络。2、然后把主机当作访问 weave 网络的网关。 要将主机加入到 weave,执行 weave expose。 这个 IP 1 阅读全文
posted @ 2019-04-09 10:02 gsophy 阅读(184) 评论(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 阅读(209) 评论(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 阅读(219) 评论(0) 推荐(0)
摘要:如何使用 Weave 网络? weave 是 Weaveworks 开发的容器网络解决方案。 weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来。 对容器来说,weave 就像一个巨大的以太网交换机,所有容器都被接入这个交换机,容器可以直接通信,无需 NAT 和端口映射。 除此之外,we 阅读全文
posted @ 2019-04-03 14:46 gsophy 阅读(184) 评论(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 阅读(219) 评论(0) 推荐(0)
摘要:flannel 的连通与隔离 测试 bbox1 和 bbxo2 的连通性: bbox1 能够 ping 到位于不同 subnet 的 bbox2,通过 traceroute 分析一下 bbox1 到 bbox2 的路径。 1) bbox1 与 bbox2 不是一个 subnet,数据包发送给默认网关 阅读全文
posted @ 2019-04-01 14:12 gsophy 阅读(255) 评论(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 阅读(135) 评论(0) 推荐(0)
摘要:安装配置 flannel 1) build flannel flannel 没有现成的执行文件可用,必须自己 build,最可靠的方法是在 Docker 容器中 build。 不过用于做 build 的 docker 镜像托管在 gcr.io,国内可能无法直接访问,所以使用参考文档中提供的镜像,构建 阅读全文
posted @ 2019-03-28 18:40 gsophy 阅读(201) 评论(0) 推荐(0)
摘要:flannel 概述 flannel 是 CoreOS 开发的容器网络解决方案。 flannel 为每个 host 分配一个 subnet,容器从此 subnet 中分配 IP,这些 IP 可以在 host 间路由,容器间无需 NAT 和 port mapping 就可以跨主机通信。 每个 subn 阅读全文
posted @ 2019-03-28 16:09 gsophy 阅读(252) 评论(0) 推荐(0)
摘要:macvlan 网络隔离和连通 验证 macvlan 之间的连通性。 bbox1 能 ping 通 bbox3,bbox2 能 ping 通 bbox4。 即:同一 macvlan 网络能通信。 bbox1 无法 ping 通 bbox2 和 bbox4。 即:不同 macvlan 网络之间不能通信 阅读全文
posted @ 2019-03-26 16:23 gsophy 阅读(279) 评论(0) 推荐(0)
摘要:macvlan 网络结构分析 macvlan 不依赖 Linux bridge,brctl show 可以确认没有创建新的 bridge。 查看一下容器 bbox1 的网络设备: 除了 lo,容器只有一个 eth0,请注意 eth0 后面的 @if2,这表明该 interface 有一个对应的 in 阅读全文
posted @ 2019-03-25 11:31 gsophy 阅读(194) 评论(0) 推荐(0)
摘要:1、创建 macvlan 网络 在 host1 和 host2 中创建 macvlan 网络 mac_net1: docker network create -d macvlan --subnet=172.16.86.0/24 --gateway=172.16.86.1 -o parent=ens1 阅读全文
posted @ 2019-03-22 15:37 gsophy 阅读(172) 评论(0) 推荐(0)