容器中跨主机的网络方案-Calico
容器中的网络是建立docker集群的重要内容。
本文将介绍如何用Calico实现容器的多节点互通。
Calico的组件结构如下:
Calico通过etcd同步Bridge的信息,各个Docker node间通过BGP进行路由的交互。Iptables实现NAT、访问控制等。
具体的安装过程如下,其中两个节点的IP地址分别是10.1.1.4和10.1.1.5,在10.1.1.4上安装etcd:
一 安装docker
yum install docker -y
vim /etc/docker/daemon.json
{
"registry-mirrors": ["registry.docker-cn.com"],
"cluster-store": "etcd://10.1.1.4:2379"
}
systemctl enable docker
systemctl start docker
二 安装etcd
yum install etcd -y
修改etcd的配置文件:
cat /etc/etcd/etcd.conf | grep -v ^# ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_NAME="master"
ETCD_ADVERTISE_CLIENT_URLS="http://10.1.1.4:2379"
启动etcd:
systemctl enable etcd
systemctl start etcd
三 安装Calico
1 下载Calico
wget -O /usr/local/bin/calicoctl https://github.com/projectcalico/calicoctl/releases/download/v1.6.1/calicoctl
chmod +x /usr/local/bin/calicoctl
2启动Calico
Calico启动时,会调取calico的配置文件,编辑etcd的信息:
vim /etc/calico/calicoctl.cfg apiVersion: v1
kind: calicoApiConfig
metadata:
spec:
datastoreType: "etcdv2"
etcdEndpoints: http://10.0.1.4:2379
3先下载calico node的docker image
docker pull quay.io/calico/node:v2.6.0
4 启动calico
calicoctl node run --node-image quay.io/calico/node:v2.6.0
5 检查calico的状态
calicoctl node status
6 创建docker的calico网络
docker network create --driver calico --ipam-driver calico-ipam net1
四 基于Calico网络创建容器
在node1上创建container:
docker run -d --net net2 --name c1 nginx
同样在node2上也创建contianer:
docker run -d --net net2 --name c2 nginx
两边可以互通。
查看两个node上的路由:
可以看到Calico是个扁平的网络,通过bgp宣告路由,容器网络的网段路由指向node的IP地址。
容器内部地址和路由:
五 Azure支持Calico的配置
由于公有云都采用SDN的网络架构,和数据中心的数据转发模型不同。在Azure需要做特别的配置,才能支持Calico的扁平网络的转发模式。
1 用户自定义路由
在node所在的网络配置用户自定义路由:
Node1的容器网络路由指向node1的IP地址
Node2的容器网络路由指向node2的IP地址
关联到subnet上:
2 每个node开启IP Forward
开启这两个功能后,Calico网络就可以通了。
总结:
Calico网络是通过BGP进行容器网络路由交互的一种Docker网络的实现方式。其实现方式相对比较简单,性能损耗更小。
容器中跨主机的网络方案-Calico的更多相关文章
- 容器中跨主机的网络方案-Weave
容器中的网络是建立docker集群的重要内容. 本文将介绍如何用Weave实现容器的多节点互通. Weave是一个开源的项目,其网站为: https://www.weave.works/ 其工作原理相 ...
- 容器中跨主机的网络方案-flannel
容器中的网络是建立docker集群的重要内容. 本文将介绍如何用flannel实现容器的多节点互通. 下图是flannel的实现原理,摘自: http://docker-k8s-lab.readthe ...
- 理解Docker(6):若干企业生产环境中的容器网络方案
本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- k8s网络之Calico网络
k8s网络主题系列: 一.k8s网络之设计与实现 二.k8s网络之Flannel网络 三.k8s网络之Calico网络 简介 Calico 是一种容器之间互通的网络方案.在虚拟化平台中,比如 Open ...
- centos7下安装docker(15.7容器跨主机网络---calico)
Calico是一个纯三层的虚拟网络方案,Calico为每个容器分配一个IP,每个host都是router,把不同host的容器连接起来.与vxlan不同的是:calico不对数据包进行封装,不需要NA ...
- Docker 跨主机网络方案分析
PS:文章首发公众号,欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家. 上篇文章介绍了容器网络的单主机网络,本文将进一步介绍多 ...
- Calico网络方案
参考文档: Difficulties with traditional overlay networks:https://www.projectcalico.org/learn/ Get Start( ...
- Kubernetes网络方案 Flannel和calico
摘抄某博客 1. Flannel Flannel是为kubernetes设计的一个非常简洁的多节点三层网络方案,解决不同host上的容器互联问题,原理是为每个host分配一个subnet,容器从此 ...
- Docker容器跨主机通信--overlay网络
一.Docker主机间容器通信的解决方案 Docker网络驱动 Overlay: 基于VXLAN封装实现Docker原生Overlay网络 Macvlan: Docker主机网卡接口逻辑上分为多个子接 ...
随机推荐
- All Classic Bluetooth profile for iPhone
iPhone BC profiles Profile Decription HFP1.6 1.通知客户端有电话拨入:2.免提功能:3.音频的输入输出机制. PBAP 1.下载通讯录:2.查找通讯录:3 ...
- PAT1076. Forwards on Weibo (30)
使用DFS出现超时,改成bfs DFS #include <iostream> #include <vector> #include <set> using nam ...
- Python基础笔记系列五:元组
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 元组 1)元组的结构和访问.使用方法和列表基本一致,区别主要有两点:1.使 ...
- CNI:容器网络接口
CNI 简介 不管是 docker 还是 kubernetes,在网络方面目前都没有一个完美的.终极的.普适性的解决方案,不同的用户和企业因为各种原因会使用不同的网络方案.目前存在网络方案 flann ...
- 新东方雅思词汇---8.3、apt
新东方雅思词汇---8.3.apt 一.总结 一句话总结:本身为词根 adj. 恰当的:有…倾向的:灵敏的 本身为词根 英 [æpt] 美 [æpt] adj. 恰当的:有…倾向的:灵敏的 n. ...
- 使用Selenium通过浏览器对网站进行自动化测试和相关问题
使用Selenium通过浏览器对网站进行自动化测试 自动化测试概念: 一般是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件. 广义上来讲 ...
- B树, B-树,B+树,和B*树的区别
B树: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中: 否则,如果查询关键字比结点关键字小,就进入左儿子:如果比结点关键字大,就进入 右儿子:如果左儿子或右儿子的指针为空, ...
- pxcook-高效易用的自动标注工具, 生成前端代码
1.pxcook.sketch(http://www.fancynode.com.cn/pxcook)
- 【zzulioj-2115】乘积最大(区间dp)
题目描述 今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得 ...
- 早上来开启eclipse,谁想代码都不见了,猜想是工作空间换了
1.试了下网上说的改eclipse配置文件,不好使,连接地址:http://blog.csdn.net/gnail_oug/article/details/53992580 2.然后看了下 eclip ...