Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。
使用Kubernetes可以:
1. 自动化容器的部署和复制
2. 随时扩展或收缩容器规模
3. 将容器组织成组,并且提供容器间的负载均衡
4. 很容易地升级应用程序容器的新版本
4. 提供容器弹性,如果容器失效就替换它,等等…
Kubernetes解决的问题:
1. 调度 - 容器应该在哪个机器上运行
2. 生命周期和健康状况 - 容器在无错的条件下运行
3. 服务发现 - 容器在哪,怎样与它通信
4. 监控 - 容器是否运行正常
5. 认证 - 谁能访问容器
6. 容器聚合 - 如何将多个容器合并成一个工程
Docker适用于:发展中公司,中等规模集群。
集群的维护不需要 Zookeeper,不需要 Etcd,自己内置
可以随时将容器当虚拟机来使用
不用太关系细节,很容易就能将集群运行起来。
就是不好定制化,不好 Debug,不好干预。当你发现有一部分性能不行时,你需要改整个代码,全部重新编译,当社区更新了,合并分支是很头疼的事情。当出现问题时,由于 Manager 大包大揽干了很多活,不知道哪一步出错了,反正就是没有返回,停在那里,如果重启整个 Manager,影响面又很大。
Kubernetes适用于:千节点集群,少定制
Kubernetes 模块划分得更细,模块比较多。模块之间完全的松耦合,可以非常方便地进行定制化。
而且 Kubernetes 的数据结构的设计层次比较细,非常符合微服务的设计思想。例如从容器->Pods->Deployment->Service,本来简单运行一个容器,被封装为这么多的层次,每个层次有自己的作用,每一层都可以拆分和组合,这样带来一个很大的缺点,就是学习门槛高,为了简单运行一个容器,需要先学习一大堆的概念和编排规则。
本文对比了Kubernetes与Docker的应用场景和技术特点。Kubernetes适用于大规模集群管理和微服务架构,提供高度定制化的容器编排解决方案;而Docker更适合发展中公司和较小规模的集群,以其简便快捷的特点受到欢迎。

668

被折叠的 条评论
为什么被折叠?



