docker swarm和 k8s对比

Swarm的优点:
swarm API兼容docker API,使得swarm 学习成本低,同时架构简单,部署运维成本较低。
Swarm的劣势:
一样是由于API兼容,没法提供集群的更加精细的管理。
在网络方面,默认docker容器是经过桥接与NAT和主机外网络通讯,这样就出现2个问题,一个是由于是NAT,外部主机没法主动访问到容器内(除了端口映射),另外默认桥接IP是同样的,这样会出现不一样主机的容器有相同的IP的状况。这样两容器更加不能通讯。同时网络性能方面,有人测试通过桥接的网络性能只有主机网络性能的70%。固然以上问题能够经过其余工具解决,好比用 Flannel 或者 OVS网桥。
在容器可靠性方面,相较于K8s的Replication Controllers能够监控并维持容器的生命,swarm在启动时刻能够控制容器启动,在启动后,若是容器或者容器主机崩溃,swarm没有机制来保证容器的运行。docker

在网络方面,k8s 默认使用Flannel做为overlay网络。
Flannel是CoreOS 团队针对 Kubernetes 设计的一个覆盖网络(OverlayNetwork)工具,其目的在于帮助每个使用 Kuberentes 的CoreOS 主机拥有一个完整的子网。
简单来讲,它的功能是让集群中的不一样节点主机建立的Docker容器都具备全集群惟一的虚拟IP地址。网络

K8s 的优点:
容器的高可用性,集群的精细管理,复杂的网络场景。
K8s 的劣势:
K8s的学习曲线陡峭,同时运维的成本相对高点。架构

相关文章
相关标签/搜索