一.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/
转载文章受原作者版权保护。转载请注明原作者出处!