一文了解Kubernetes的前世今生

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 近十几年来,IT领域新技术、新概念层出不穷,例如DevOps、微服务(Microservice)、容器(Container)、云计算(Cloud Computing)和区块链(Blockchain)等,直有“乱花渐欲迷人眼”之势。

近十几年来,IT领域新技术、新概念层出不穷,例如DevOps、微服务(Microservice)、容器(Container)、云计算(Cloud Computing)和区块链(Blockchain)等,直有“乱花渐欲迷人眼”之势。另外,出于业务的需要,IT应用模型也在不断地变革,例如,开发模式从瀑布式(Waterfall)到敏捷(Agile)再到精益(Lean),甚至是与QA和Operations融合的DevOps,应用程序架构从单体(monolithic)模型到分层模型再到微服务,部署及打包方式从面向物理机到虚拟机再到容器,应用程序的基础架构从自建机房到托管再到云计算,等等,这些变革使得IT技术应用的效率大大提升,同时却以更低的成本交付更高质量的产品。
尤其是以Docker为代表的容器技术的出现,终结了DevOps中交付和部署环节因环境、配置及程序本身的不同而造成的动辄几种甚至十几种部署配置的困境,将它们统一在容器镜像(image)之上。如今,越来越多的企业或组织开始选择以镜像文件作为交付载体。容器镜像之内直接包含了应用程序及其依赖的系统环境、库、基础程序等,从而能够在容器引擎上直接运行。于是,IT运维工程师(operator)无须关注开发应用程序的编程语言、环境配置等,甚至连业务逻辑本身也不必过多关注,而只需要掌握容器管理的单一工具链即可。

部署的复杂度虽然降低了,但以容器格式运行的应用程序间的协同却成了一个新的亟待解决的问题,这种需求在微服务架构中表现得尤为明显。结果,以Kubernetes为代表的容器编排系统应需而生。
222

尽管公开面世不过短短数年时间,Kubernetes业已成为容器编排领域事实上的标准,其近一两年的发展状态也在不断地验证着Urs H?lzle曾经的断言:无论是公有云、私有云抑或混合云,Kubernetes都将作为一个为任何应用、任何环境提供的容器管理框架而无处不在。

Kubernetes(来自希腊语,意为“舵手”或“飞行员”)由Joe Beda、Brendan Burns和Craig McLuckie创立,而后Google的其他几位工程师,包括Brian Grant和Tim Hockin等加盟共同研发,并由Google在2014年首次对外宣布。Kubernetes的开发和设计都深受Google内部系统Borg的影响,事实上,它的许多顶级贡献者之前也是Borg系统的开发者。

Borg是Google内部使用的大规模集群管理系统,久负盛名。它建构于容器技术之上,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率最大化。2015年4月,Borg论文《Large-scale cluster management at Google with Borg》伴随Kubernetes的高调宣传被Google首次公开,人们终于有缘得窥其全貌。

事实上,正是由于诞生于容器世家Google,并站在Borg这个巨人的肩膀之上,充分受益于Borg过去十数年间积累的经验和教训,Kubernetes甫一面世就立即广受关注和青睐,并迅速称霸了容器编排技术领域。很多人将Kubernetes视为Borg系统的一个开源实现版本,在Google内部,Kubernetes的原始代号曾经是Serven of Nine,即星际迷航中友好的“Borg”角色,它标识中的舵轮有七个轮辐就是对该项目代号的致意,如图所示。
111
Kubernetes v1.0于2015年7月21日发布,紧随其后,Google与Linux基金会合作组建了Cloud Native Computing Foundation(云原生计算基金会,简称为CNCF),并将Kubernetes作为种子技术予以提供。这之后,Kubernetes进入了版本快速迭代期,从此不断地融入着新功能,如Federation、Network Policy API、RBAC、CRD和CSI,等等,并增加了对Windows系统的支持。

2017年可谓是容器生态发展史上具有里程碑意义的一年。这一年,AWS、Azure和Alibaba Cloud都相继在其原有容器服务上新增了对Kubernetes的支持,而Docker官方也在2017年10月宣布同时支持Swarm和Kubernetes编排系统。这一年,RKT容器派系的CoreOS舍弃掉自己的调度工具Fleet,将其商用平台Tectonic的重心转移至Kubernetes。这一年,Mesos也于9月宣布了对Kubernetes的支持,其平台用户可以安装、扩展和升级多个生产级的Kubernetes集群。这一年,Rancher Labs推出了其2.0版本的容器管理平台并宣布all-in Kubernetes,放弃了其内置多年的容器编排系统Cattle。类似的故事依然在进行,并且必将在一个时期内持续上演。

本文摘编自《Kubernetes进阶实战》,经出版方授权发布。

推荐阅读:《Kubernetes进阶实战》 作者 马永亮‍

333
内容简介:
基于K8S 1.12版本,透彻解析技术架构、组件应用、扩缩容、网络与存储策略,以及技术进阶等话题 。
马哥教育CEO马哥(马永亮)撰写,渐进式铺陈,适合入门与进阶 ;
涵盖Kubernetes架构、部署、核心/自定义资源、扩缩容、存储卷、网络插件与策略、安全、调度策略、监控、日志等话题 ;
渐进式讲解,手把手示范,大量实操案例,随时动手验证。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
6月前
|
Kubernetes 负载均衡 Linux
Kubernetes的应用
Kubernetes的应用
60 0
|
运维 Kubernetes 负载均衡
Kubernetes介绍篇:是什么?为什么要用?
是时候该学习Kubernetes了,不然都不敢说自己了解容器、了解Docker。
1286 0
Kubernetes介绍篇:是什么?为什么要用?
|
3月前
|
存储 Kubernetes 调度
Kubernetes 是什么?
Kubernetes 是什么?
41 1
|
6月前
|
Kubernetes 前端开发 网络协议
Kubernetes服务
Kubernetes服务
62 0
Kubernetes服务
|
6月前
|
Kubernetes 负载均衡 应用服务中间件
Kubernetes
Kubernetes 版 ACK(Alibaba Cloud Container Service for Kubernetes)是阿里云提供的一种容器服务,它基于 Kubernetes 开源容器编排平台,为用户提供高效、可扩展的容器应用管理能力。ACK 可以帮助用户在云端轻松部署、管理和扩展容器化应用,同时提供了丰富的 Kubernetes 功能,例如自动扩展、滚动更新、负载均衡等。
67 1
|
6月前
|
Kubernetes 监控 关系型数据库
了解Kubernetes
kubernetes入门
42 0
|
Kubernetes 容器
Kubernetes的ExternalName详解
ExternalName类型的Service在Kubernetes中用于将外部服务(不是Kubernetes集群内的服务)映射到Kubernetes集群内的Service。 # 样例 其创建方法如下: ``` kind: Service apiVersion: v1 metadata: name: my-external-service namespace: cv-console-dev labels: app: my-external-service annotations: kubesphere.io/creator: sunjq kubesph
331 0
|
存储 人工智能 Kubernetes
Kubernetes-k8s
Kubernetes(通常简称为"k8s")是一种开源容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它最初由Google开发,并于2014年发布为开源项目,目前由云原生计算基金会(CNCF)管理和维护。
121 1
|
运维 Kubernetes 安全
Kubernetes 之 Egress 思考
“网络周边安全”是任何一个企业运维团队所必须关注的重点。当我们谈到网络界面控制时,我们往往潜意识地先会想到入站安全(入口)。然而,基于流量的运作,例如,何时可以离开网络(出口)以及流向哪里同样至关重要。在这篇文章中,我们将不深入讨论为什么控制出口流量如此重要的理论细节,毕竟,前人已经说的口都干了。因此,本文仅从技术演进层面来探讨关于在云原生生态中“出口”的选型及实现场景。
189 0
|
边缘计算 运维 Kubernetes
Kubernetes 伟大的未来
Kubernetes 伟大的未来
226 1