Docker与Kubernetes容器虚拟化技术与应用
上QQ阅读APP看书,第一时间看更新

前言

在计算机的世界中,容器拥有一段漫长且传奇的历史。容器与管理程序虚拟化(Hypervisor Virtualization,HV)有所不同,管理程序是通过虚拟化中间层将一台或者多台独立的机器虚拟运行在物理硬件之上,而容器则是直接运行在操作系统内核之上的用户空间。因此,容器虚拟化也被称为“操作系统级虚拟化”,容器技术可以让多个独立的用户空间运行在同一台宿主机上。

目前容器技术已经引入了OpenVZ、Solaris Zones及Linux容器(LXC)。使用这些新技术,容器不仅仅是一个单纯的运行环境。在它的权限内,容器更像是一个完整的宿主机。对Docker来说,它得益于现代 Linux 特性,如控件组(Control Group)和命名空间(Namespace)技术,容器和宿主机之间的隔离更加彻底,容器有独立的网络和存储栈,还拥有自己的资源管理能力,使得同一台宿主机中的多个容器可以友好地共存。

容器被认为是一种精益技术,因为容器需要的开销有限。与传统虚拟化和半虚拟化相比, 容器不需要模拟层(Emulation Layer)和管理层(Hypervisor Layer),而是使用操作系统的系统调用接口,降低了运行单个容器所需的开销,也使得宿主机中可以运行更多的容器。

尽管容器拥有光辉的历史,但仍未得到广泛认可,其中一个很重要的原因就是容器技术的复杂性。容器本身就比较复杂,不易安装,管理和自动化也很困难,而Docker就是为了改变这一切而生的。

关于本书

如今,Docker从基础的操作系统、网络、存储设施的管理到应用程序的开发、测试和部署,越来越多的企业和IT 人员开始融入 Docker的相关领域中。相关行业对 Docker 技术人才提出了迫切的需求,尤其是熟练掌握 Docker 技术的高级应用型人才。

本书主要围绕容器生态体系中的核心组件Docker和Kubernetes展开。介绍了容器的组成及相关概念、容器系统架构和运行原理,重点剖析了Docker和Kubernetes两大工具的核心概念、组成和工作原理,通过大量的课堂案例和实验,深入浅出地讲解了每个知识点,通俗易懂。书中的每个案例基本都是按照读者学习的习惯,分步骤讲述,每个步骤都配有文字说明和效果截图,读者能清晰地知晓自己动手实操过程中的效果和错误之处,一目了然,达到帮助读者快速掌握利用Docker完成容器部署的方法。

本书共分为9章,第1章着重介绍容器虚拟化和Docker的由来,以及未来的应用场景和虚拟机的安装;第2章着重介绍虚拟化技术和Docker之间的联系,以及Docker技术架构和技术原理;第3章着重介绍Docker进阶知识的使用和管理;第4章着重介绍Docker容器云、容器的编排和部署,以及相关工具的使用;第5章着重介绍Docker与微服务之间的关系,如何实现服务Docker化;第6章着重介绍Kubernetes架构原理和核心概念;第7章着重介绍Kubernetes集群部署、Kubernetes基础知识和命令行的使用,并深入讲解了Pod和Server运行机制;第8章着重介绍Kubernetes核心思想、安全机制、分布式网络原理、存储原理等;第9章着重介绍Kubernetes开发与运维的实战部分,如基于Kubernetes API的二次开发、源码分析、故障排除等知识。

本书主要围绕Docker和Kubernetes两大类来讲解,对其相关原理、概念、图表等方式进行详细解析。此外,注重动手实践,通俗易懂地为读者进行示范。需要注意的是,由于Docker版本不断更新,如果读者的实验环境与本书不一致,在参照本书步骤的操作时,返回的结果可能会存在一些差异。

本书适合的读者

本书是容器虚拟化技术基础用书,适合作为中职、高职、应用型本科相关专业的前导课程,在整个人才培养方案中属于物联网的专业基础课程部分,建议授课时间为第2学期或者第3学期。

同时,本书也适合容器虚拟化技术的初学者,对容器技术感兴趣的技术人员,以及想从事物联网工作的读者。

阅读本书之前,读者应该具有以下基础:有一定的计算机网络基础知识;了解 Linux基本原理;懂得基本的Linux操作命令;对容器有一定的了解。