上QQ阅读APP看书,第一时间看更新
第1章 Kubernetes系统基础
近十几年来,IT领域新技术、新概念层出不穷,例如云计算、DevOps、微服务、容器和云原生等,直有“乱花渐欲迷人眼”之势。另外,出于业务的需要,IT应用模型也在不断变革,例如开发模式从瀑布式到敏捷再到精益,甚至是与QA和Operations统一的DevOps,应用程序架构从单体模型到分层模型再到微服务,部署及打包方式从面向物理机到虚拟机再到容器,应用程序的基础架构从自建机房到托管再到云计算等,这些变革使得IT技术应用效率大大提升,同时实现了以更低的成本交付更高质量的产品。
一方面,尤其是以Docker为代表的容器技术的出现,终结了DevOps中交付和部署环节因环境、配置及程序本身的不同而造成的动辄几种甚至十几种部署配置的困境,将它们统一在了容器镜像之上。如今,越来越多的企业或组织开始选择以镜像文件作为交付载体。容器镜像之内直接包含了应用程序及其依赖的系统环境、库、基础程序等,从而能够在容器引擎上直接运行。于是,IT运维工程师无须再关注开发应用程序的编程语言、环境配置等,甚至连业务逻辑本身也不必过多关注,而只需要掌握容器管理的单一工具链即可。
另一方面,这些新技术虽然降低了部署的复杂度,但以容器格式运行的应用程序间的协同以及大规模容器应用的治理却成为一个新的亟待解决的问题,这种需求在微服务架构中表现得尤为明显。微服务通过将传统的巨大单体应用拆分为众多目标单一的小型应用以解耦程序的核心功能,各微服务可独立部署和扩展。随之而来的问题便是如何为应用程序提供一个一致的环境,并合理、高效地将各微服务实例及副本编排运行在一组主机之上,这也正是以Kubernetes为代表的容器编排工具出现的原因。本章将在概述容器技术之后讲解Kubernetes编排系统的核心概念、关键组件及基础运行逻辑。