Kubernetes 是一个开源解决方案,用于自动部署、扩展和监视容器化应用程序。
容器是与底层基础架构分离的软件。借助容器,一切都能虚拟化到操作系统级别。这意味着无论应用程序运行在何处,它都将以相同的方式运行。
今天,大多数容器都在 Kubernetes 平台上运行。该组织表示:“Kubernetes 提供一个以容器为中心管理环境。它代表用户的工作负载协调计算、网络和存储基础架构...并支持跨基础架构提供商的可移植性。” ⁽¹⁾
Kubernetes 概述
Kubernetes 起源于谷歌,当时一个工程师团队开发了一个名为 Borg 的集群管理系统。2014 年,该公司推出了名为 Kubernetes 的 Borg 开源版本。
Kubernetes 的第一版于 2015 年发布,旨在为分布式应用程序提供容器编排。与此同时,谷歌与 Linux 基金会合作成立了“云原生计算基金会”(Cloud Native Computing Foundation),并提供了 Kubernetes 作为种子技术。
Kubernetes 可以帮助开发人员利用容器技术,实现跨系统的可移植性,自首次亮相以来,变得越来越受欢迎。Kubernetes 开源社区拥有 1,400 多个贡献者,现已成为世界上最大的社区之一。
Docker 是最常用的容器技术,但 Kubernetes 也支持其他技术。Docker 定义了用于将软件打包为标准化单元的模板,这些单元包括运行应用程序的所有元素。
Kubernetes 协调容器环境 - 同时优化服务器使用和空间。它使用智能调度、负载均衡、可扩展性、存储管理和批处理执行等功能来管理容器的部署位置和方式。
一些关键概念:
- Kubernettes 基本管理单元是一个容器或一组容器。容器中的容器共享相同的存储器、资源和 IP 地址。
- Kubernetes 集群由主节点和工作节点组成。(节点是运行容器的主机或服务器,可以是虚拟机或物理机。)
- 主节点管理容器工作负载并指导整个系统的通信。它包含一个控制性能、容量和可用性的调度程序。
- 工作节点在主节点的指导下运行容器。
- 配置文件允许团队指定操作参数,例如可以一次运行的容器数量。使用 Kubernetes,可以像管理单个系统一样管理整个数据中心的资源。
Kubernetes 为何重要
大型企业应用程序可能包含大量容器。这种架构很快就会变得非常复杂。
组织需要能够协调容器环境中的所有移动部件,最好是从单个有利位置完成一切操作。许多组织选择 Kubernetes 作为解决方案。
Kubernetes 管理生态系统,调整计算和存储,以确保容器可用并高效部署。一直以来,开发人员可以随时查看所有内容。
Kubernetes 可以帮助组织简化新应用程序的部署,简化容器和资源管理,降低升级风险并避免宕机。它可以单独或成组扩展应用程序组件,并支持可移植的云原生应用程序。
Matt Johnsen 在他的 IBM 博客(英文)中概述了 Kubernetes 可以带来一些好处:
- 节省成本: Kubernettes 集群以维护成本低而著称。团队不必编写自己的容器自动化脚本。他们可以利用共享的基础架构。他们可以通过更有效地使用当前硬件来降低硬件成本。
- 缩短产品上市时间: Kubernetes 非常适合 DevOps。良好的容器管理意味着只要软件运行,部署几乎总会很轻松。
- IT 灵活性:在现代企业中,软件在任何数量的私有和共享基础架构上运行。使用容器管理解决方案意味着,团队无需牺牲性能或进行重大调整就可以移动应用程序。他们可以在业务需要的任何地方运行软件。
Kubernetes 的另一个优点是横向扩展,这有助于解决不断变化的性能需求。
“如果您已经在应用程序中利用了 Docker 和容器,那么将它们移至 Kubernetes 可以帮助您解决几乎每个应用程序在扩展时都会遇到的一些运营开销问题”,IBM 开发者大使 Sai Vennam 如此说道。
Kubernetes 即服务
组织可以使用内部的 Kubernetes 系统来协调容器部署。或者,组织可以使用服务提供商的基于 Kubernetes 的平台或基础架构即服务。
后一种方法不仅让客户可以从相同的功能中受益,同时所承担的复杂性和开销更低。IBM Cloud 副总裁兼 IBM 院士 Jason McGee 表示:
“用于将一组资源安装、连接和配置到运行良好的容器集群中的机制并不简单。它需要工作,也需要知识。如果您需要在容器环境中添加或删除容量,该怎么办?发生故障时如何恢复?同时,容器和 Kubernetes 也在以惊人的速度变化。
“如果自己动手,很难跟上。管理服务的优点之一是,能够为您完成所有这些操作,您只需专注于应用程序。”
像 IBM 这样的管理服务提供商可以处理每个节点集群中的计算、网络和存储资源。IBM 服务提供智能调度、简化的集群管理、容器安全和隔离策略以及基础架构升级。
IBM 客户还可以在裸机云基础架构上使用 Kubernetes 服务。这为需要极高计算性能的应用程序(如机器学习或 AI 工作负载)带来了敏捷性和速度。
“开发人员现在可以选择满足其需求的裸机配置,无论是隔离、增强的处理能力还是大型本地磁盘存储,同时还能利用容器的优势,例如,轻松地在系统中移动数据或允许多个团队成员同时处理应用程序的多个部分,”McGee(英文) 说道。
The Weather Company 扩展 Web 服务,帮助确保人员安全(英文)
Kubernetes 资源
什么是容器以及为什么需要容器?
Kubernetes 采用和应用性能管理的重要性
了解基于 Kubernetes 的云环境为何能够带来显著的业务转型(英文)
Kubernetes 与 Docker:为什么不能两者兼而有之?
了解 Kubernettes 与 Docker 之间的差异(英文)
IBM 通过在裸机上管理的 Kubernetes,轻松地将容器的简单性融入复杂的工作负载
探索在裸机云基础架构上将 Kubernetes 容器作为管理服务运行的好处(英文)
向 Watson 学习:容器如何扩展 AI 工作负载
使用 Outlyer 监视 IBM Cloud 服务
了解在 IBM Cloud Kubernetes Service 上使用 Outlyer 自助服务监视的好处(英文)
特色服务
热门内容
1. https://blog.risingstack.com/the-history-of-kubernetes/
2. https://en.wikipedia.org/wiki/Kubernetes
3. https://softwareengineeringdaily.com/2017/11/29/how-ibm-runs-its-cloud-with-jason-mcgee/