Docker使用Calico网络模式配置及问题处理

一.Calico介绍

Calico是一种容器之间互通的网络方案,在虚拟化平台中,比如OpenStack、Docker等都需要实现workloads之间互连,但同时也需要对容器做隔离控制,就像在Internet中的服务仅开放80端口、公有云的多租户一样,提供隔离和管控机制。而在多数的虚拟化平台实现中,通常都使用二层隔离技术来实现容器的网络,这些二层技术有一些弊端,比如需要依赖VLAN、Bridge和隧道技术。其中Bridge带来了复杂性,Vlan隔离和Tunnel隧道则消耗等多的资源并对物理环境有要求。随着网络规模的增大,整体会变得更加复杂。我们尝试把Host当做Internet中的路由器,使用BGP同步路由,并使用Iptables来做安全访问策略,最终设计出了Calico方案。

设计思想:Calico不使用隧道或者NAT来实现转发,而是巧妙的把所有二三层流量转换成三层流量,并通过host上路由配置完成跨host转发。

  • 更优的资源利用

二层网络通讯需要依赖广播消息机制,广播消息的开销与host的数量呈指数级增长,Calico使用的三层路由方法,则完全抑制了二层广播,减少了资源开销。此外,二层网络使用Vlan隔离技术,天生有4096个规格限制,即便可以使用Vxlan解决,但Vxlan又带来了隧道开销的问题。Calico不使用vlan或者vxlan技术,使资源利用率更高。

  • 可扩展性

Calico使用与Internet类似的方案,Internet的网络比任何数据中心都大,Calico同样天然具有扩展性。

  • 简单更容易调试

由于没有隧道,意味着workloads之间路径更短,配置更少,在host之间更容易进行debug调试。

  • 更少的依赖

Calico仅依赖三层路由可达

  • 可适配性

Calico较少的依赖性使它能适配所有的VM、Container、白盒或者混合环境场景。

三、环境介绍:

1、操作系统:CentOS 7

2、主机结点:node1(192.168.223.131) node2(192.168.223.130)

3、软件版本:calicoctl(version v1.6.1) etcdctl(version: 3.3.11) docker(version:20.10.21-ce)

四、配置ETCD集群

  • 错误处理:Job for etcd.service failed because the control process exited with error code. See “systemctl status etcd.service” and “journalctl -xe” for details.

  • 错误处理:etcdctl member list

  • 错误处理:publish error: etcdserver: request timed out

五、 安装Docker,配置使用集群存储

六、配置calico基于sysinit方式启动

七、测试calico网络

参考:

Original: https://www.cnblogs.com/Biuget-Golang/p/16936126.html
Author: Biuget-Golang
Title: Docker使用Calico网络模式配置及问题处理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/797605/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球