kubernetes|图文并茂!带你深度解析Kubernetes

kubernetes|图文并茂!带你深度解析Kubernetes

文章图片

kubernetes|图文并茂!带你深度解析Kubernetes

文章图片

kubernetes|图文并茂!带你深度解析Kubernetes

文章图片

kubernetes|图文并茂!带你深度解析Kubernetes

文章图片

kubernetes|图文并茂!带你深度解析Kubernetes

文章图片

kubernetes|图文并茂!带你深度解析Kubernetes

文章图片

kubernetes|图文并茂!带你深度解析Kubernetes

文章图片

kubernetes|图文并茂!带你深度解析Kubernetes

文章图片

kubernetes|图文并茂!带你深度解析Kubernetes


来源公众号:腾讯云开发者 / 原文链接
导语 |在云原生技术发展的浪潮之中 , Kubernetes作为容器编排领域的事实标准和云原生领域的关键项目 , 其诞生与完善有着对应的技术历史背景 , 了解这个过程 , 对于系统的理解Kubernetes的核心思想、架构设计、实现原理等会很有帮助 。
在云原生技术发展的浪潮之中 , Kubernetes伴随着容器技术的发展 , 成为了目前云时代的操作系统 。 Kubernetes作为容器编排领域的事实标准和云原生领域的关键项目 , 已经是云原生时代工程师最需要理解与实践的核心技术 。
但技术的发展从来都不是一蹴而就 , Kubernetes的诞生与完善也有其对应的技术历史背景 , 了解其诞生与发展的过程 , 对于更加系统的理解其核心思想、架构设计、实现原理等内容会大有帮助 。 因此 , 本文从Kubernetes的诞生背景与Why Kubernetes两个方面 , 来完成对Kubernetes的概述 。
一、Kubernetes诞生背景
如果要了解Kubernetes的诞生 , 就绕不开整个云计算的发展历程 。 了解了云计算的发展的过程 , 就会明白 , Kubernetes是云计算发展到一定程度的必然产物 。
(一)云计算发展历程云计算发展历程的时间轴如下图所示 , 从物理机过渡到传统的IaaS阶段 , 进而发展为早期的PaaS , 直至发展到如今的基于Kubernetes架构的新兴PaaS平台 。

用户使用资源的形态也由早期的物理机过渡到虚拟机 , 再进化到目前更轻量的Docker容器 。 本质上云计算实现的关键突破就在于资源使用方式的改变 , 其最初解决的核心的问题就是应用的托管即应用部署与管理问题 。
(二)早期物理机时代云计算之前 , 开发者如需部署管理服务 , 需要根据需求 , 进行配置、管理与运维物理机 。 整体上维护困难 , 成本高昂 , 重复劳动 , 风险随机 。 以至于当年流传着运维的传统艺能:上线拜祖 , 如下图所示:

在那个时代 , 应用部署与管理面临着以下诸多问题:
  • 硬件、机房等维护成本高 。 各个团队独立搭建机群、运维机器 。
  • 应用部署、迁移、修复困难 。 缺少统一的部署发布平台;面对突发情况 , 缺少自动化工具 , 排查解决问题依赖人工 , 低效且成本巨大 。
  • 资源利用率低 。 物理机的平均资源率不到10% , 有的甚至在5%左右 , 造成了资源的巨大浪费 。
  • 应用隔离性差 。 多业务混部在一台机器时 , 会产生干扰 。 例如:当某一应用资源使用率突然提升 , 会抢占其他应用的可用资源 。
(三)IaaS平台Infrastructure as a service (IaaS) 基础设施即服务 , 用户可以按需去申请基础设施资源(包括:计算、存储、网络) 。
IaaS商业化道路上的一个标志性事件:2006年AWS推出了EC2(亚马逊弹性云端运算) , 其基于Xen虚拟化技术 , 用户可以在web界面上配置、获取虚拟机资源 , 部署应用 。 通过规模化来降低边际成本 。
  • 虚拟化技术
IaaS的底层核心技术是虚拟化技术 。 虚拟化技术是一种资源关联技术 , 是将计算机的各种实体资源 , 如服务器、网络、存储等 , 进行抽象、整合、管理与再分配的一种技术 。 最常用的一种方案是基于虚拟机(Hypervisor-based)的虚拟化实现 。 其通过一个软件层的封装 , 提供和物理硬件相同的输入输出表现 , 实现了操作系统和计算机硬件的解耦 , 将OS和计算机从一对一转变为多对多(实际上是一对多)的关系 。 该软件层称为虚拟机管理器(VMM/Hypervisor) , 它分为两大类:裸金属架构、宿主机架构 。