栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Kubernetes 基础信息:对比 Kubernetes 和 Docker

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Kubernetes 基础信息:对比 Kubernetes 和 Docker

 

Kubernetes 基础信息:对比 Kubernetes 和 Docker

背景

简介

Kubernetes(常简称为 K8s,在希腊语意为 “舵手” 或 “驾驶员”)是用于自动部署、扩展和管理容器化(containerized)应用程序的开源系统。

由 Joe Beda、Brendan Burns 和 Craig McLuckie 创立,并由其他谷歌工程师,包括 Brian Grant 和 Tim Hockin 等进行加盟创作,并由谷歌在 2014 年首次对外宣布。该系统由 Google 捐赠给 Cloud Native Computing Foundation(今属 Linux 基金会)。

什么是 Docker?

Docker 是一种开源的轻量级容器化技术。它已在云和应用容器化领域中广泛流行。它使您可以自动在轻量和便携式容器中部署应用程序。

它是用于虚拟化的计算机软件。它还允许您在同一主机上运行多个操作系统。Docker 中的虚拟化是在系统级执行的,通常称为 Docker 容器。

什么是 Kubernetes?

Kubernetes 是在 Google 开源的容器管理软件。它可以帮助您在各种类型的物理,虚拟和云环境中管理容器化的应用程序。

作为一个容器工具,它高度灵活,能胜任复杂的应用场景。让你在成百上千个独立服务器集群上,轻松管理容器化的应用程序。

为什么会出现 Kubernetes?

Kubernetes 的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes 提供了应用部署,规划,更新,维护的一种机制。

传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新 / 回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。

新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。

容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容器可以在 build 或 release 的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。类似地,容器比虚拟机轻量、更 “透明”,这更便于监控和管理。

Kubernetes 特点

可移植:支持公有云,私有云,混合云,多重云(multi-cloud)
可扩展:模块化,插件化,可挂载,可组合
自动化:自动部署,自动重启,自动复制,自动伸缩 / 扩展

Kubernetes 的功能

 

Kubernetes 和 Docker 在 Stack Overflow 网站的问题数量对比图

以下是 kubernetes 的主要功能:

  • 提供自动编排
  • 自我修复的能力
  • 自动升级和回滚
  • 水平伸缩和负载均衡
  • 提供高密度的资源利用率
  • 提供商业级别的功能
  • 以应用程序为中心的管理
  • 自动伸缩的基础设施
  • 你可以根据自己的需求自由地组合基础设施
  • 提供声明式的配置
  • 以滚动的形式进行部署和升级软件
  • 为开发,测试和生产提供环境一致性

Docker 的功能

 

以下是 Docker 的基本特性:

  • 管理应用程序的独立环境
  • 易于建模
  • 版本控制
  • 应用程序灵活性
  • 开发人员生产力
  • 操作效率

Kubernetes 对比 Docker Swarm

 

参数 Docker Swarm Kubernetes
开发者 Docker Inc Google
发布年份 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, 等
 

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 的最大缺点是它不提供任何存储选项。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/388708.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号