Docker Swarm 默认在一台机器上, 用 docker-compose 就可以跑起来, 我目前就用这个方法在一台机器上跑了好几个网站
但是我发现 k8s 要跑起来 需要 3-4 台机器
这是不是说明,k8s 自身的一些组建 需要消耗更多的性能?
如果在同一台机器上, 比如 [ 2 vCPU 4 GB ] 的配置
运行一个简单的网站, 是不是这 2 种方案中, Swarm 所运行的网站,有更好的并发,速度,性能 ?
谢谢
1
zpf124 2019-01-11 16:23:38 +08:00 1
一般情况下功能越复杂资源占用越多, 所以 k8s 应该比 swarm 更占资源。
不过 既然单个机器了为什么要用分布式集群.... docler-compose 本身也有这个命令行工具, 连 swarm 集群都不需要启动。。。 所以如果在没有集群仅仅一台机器,直接使用 compose 更合适,https://docs.docker.com/compose/install/ |
2
josephpei 2019-01-11 16:39:11 +08:00 1
简单一个网站,用 docker-compose 足以,不用 swarm/k8s
k8s 要跑起来,1 台机器也可以,考虑到容灾之类的,需要多台,比如 master 节点要 3 台,因为在 3 台情况下允许有一台坏掉,整个系统依然健全 |
3
hilbertz 2019-01-11 16:46:08 +08:00 1
k8s 的可见开销主要是 overlay network,一般网络 io 只能达到实际系统的 60%~80%,swarm 也是差不多的,但 swarm 还有很多不稳定,没实现好的功能
|
4
zcl0621 2019-01-11 17:00:46 +08:00 1
swarm 也是集群呀 也是多节点的呀
docker-compose 只是一个容器编排最简单的工具了 和 swarm 并没有什么关系 swarm 支持 docker-compose 的方式罢了 kubernetes 是比 swarm 更复杂的集群实现 系统开销肯定会更大 如果网站流量,开销,稳定度要求不高,单节点用 docker-compose 拉起来就好了 kubenetes cni 网络目前根据多篇评测 能达到真实网络的 85%~ 90%之间了 |