Kubernetes 基础信息:对比 Kubernetes 和 Docker
什么是 Kubernetes?
Kubernetes 是在 Google 开源的容器管理软件。它可以帮助您在各种类型的物理,虚拟和云环境中管理容器化的应用程序。
作为一个容器工具,它高度灵活,能胜任复杂的应用场景。让你在成百上千个独立服务器集群上,轻松管理容器化的应用程序。
什么是Docker?
Docker是一种开源的轻量级容器化技术。它已在云和应用容器化领域中广泛流行。它使您可以自动在轻量和便携式容器中部署应用程序。
它是用于虚拟化的计算机软件。它还允许您在同一主机上运行多个操作系统。Docker 中的虚拟化是在系统级执行的,通常称为 Docker 容器。
Kubernetes 的功能
Kubernetes 和 Docker 在 Stack Overflow 网站的问题数量对比图
以下是 kubernetes 的主要功能:
- 提供自动编排
- 自我修复的能力
- 自动升级和回滚
- 水平伸缩和负载均衡
- 提供高密度的资源利用率
- 提供商业级别的功能
- 以应用程序为中心的管理
- 自动伸缩的基础设施
- 你可以根据自己的需求自由地组合基础设施
- 提供声明式的配置
- 以滚动的形式进行部署和升级软件
- 为开发,测试和生产提供环境一致性
Docker的功能
以下是 Docker 的基本特性:
- 管理应用程序的独立环境
- 易于建模
- 版本控制
- 应用程序灵活性
- 开发人员生产力
- 操作效率
Kubernetes 对比 Docker Swarm
参数 | Docker Swarm | Kubernetes |
---|---|---|
开发者 | Docker Inc | |
发布年份 | 2013 | 2014 |
自动伸缩 | 不支持 | 支持 |
群集设置 | 设置集群具有挑战性且复杂。集群强度更强。 | 设置集群很简单。只需要两个命令。集群实力没有那么强 |
安装 | 轻松快捷 | 复杂且耗时 |
存储卷 | 与任何其他容器共享存储卷 | 同一Pod中的多个容器之间共享存储卷 |
支持日志记录和监视工具 | 允许您使用ELK之类的第三方工具 | 它提供了用于记录和监视的内置工具。 |
负载平衡 | 自动负载平衡 | 手动配置您的负载平衡设置 |
可伸缩性 | 伸缩比K8S快。但是,它的集群强度没有那么强大。 | 与 Docker 相比,伸缩速度较慢。但是,要保证更强的群集状态负载平衡需要手动服务配置。 |
更新 | 可以就地执行。 | 集群可以就地升级。 |
专注于 | 针对单个大型集群进行了优化 | 针对多个较小的SDLC集群进行了优化 |
容错率 | 高 | 低 |
节点支持 | 支持 2000节点 | 支持多达5000个节点 |
容器数量限制 | 95000 | 300000 |
公共云服务提供商 | 仅 Azure | Google, Azure, 和 AWS. |
Slave | Worker | Nodes |
相容性 | 相容性和可定制范围较小 | 更全面,高度可定制 |
社区 | 活跃的用户群,可以定期更新软件。 | 提供来自开源社区和 Google,Amazon,Microsoft 和 IBM 等大型公司的强大支持 |
大型集群 | 对于强群集状态,考虑速度。 | 即使在大型群集中也无需考虑速度,即可提供容器部署和扩展。 |
公司使用 | Spotify, Pinterest, eBay, Twitter, 等. | 9GAG, Intuit, Buffer, Evernote, 等 |
Github starts | 53.8 k | 54.1 k |
Github forks | 15.5 k | 18.7 k |
Kubernetes 的优势
以下是使用 Kubernetes 的优势。
- 使用 Pod 轻松组织服务
- 它由 Google 开发,将多年宝贵的行业经验带到桌面
- 容器编排工具中最大的社区。
- 提供多种存储选项,包括本地 SAN 和公共云。
- 坚持不可变更的基础架构原则
Docker 的优势
以下是 Docker 的优势:
- 提供高效,简便的初始设置
- 集成并使用现有 Docker 工具
- 允许您详细描述您的应用程序生命周期
- Docker 允许用户轻松跟踪其容器版本,以检查先前版本之间的差异。
- 简单的配置,可与 Docker Compose 交互。
- Docker 提供了一个快速启动的环境,可以启动虚拟机并让应用程序在虚拟环境中快速运行。
- 文档提供了所有信息。
- 提供简单快速的配置以促进您的业务
- 确保应用程序隔离
Kubernetes 的缺点
以下是 Kubernetes 容器的劣势:
- 迁移到无状态需要付出很多努力
- 相比 Docker 可用性 API 来讲,功能有限
- 高度复杂的安装/配置过程
- 与现有Docker CLI和 Docker Compose 工具不兼容
- 复杂的手动群集部署和自动水平伸缩设置
Docker 的劣势
以下是 Docker 的缺点:
- 不提供存储选项
- 监控功能较弱
- 没有自动重新计划非活动节点
- 复杂的自动水平伸缩设置
- 所有操作都必须在CLI中执行。
- 基本的基础架构处理
- 手动处理多个实例
- 需要支持其他用于生产方面的工具-监视、修复、伸缩
- 复杂的手动群集部署
- 不支持运行状况检查
- Docker 是营利性 SaaS 公司。许多关键组件,如 Docker Engine、Docker Desktop 都是不开源的。
总结:
- Kubernetes 是在 Google 平台上开发的开源容器管理软件。
- Docker 是开源轻量级容器技术。
- Kubernetes 提供自动调度功能。
- Docker 为管理您的应用程序提供一个独立的环境。
- Docker Swarm 由 Docker Inc 开发,而 Kubernetes 由 Google 开发。
- Kubernetes 拥有容器编排工具中最大的社区。
- Docker 提供了一个高效易用的初始设置
- Kubernetes 最大的缺点是它的安装/配置过程非常复杂。
- Docker 的最大缺点是它不提供任何存储选项。
推荐文章: