THE KUBERNETES BIBLE
书籍定位
《THE KUBERNETES BIBLE》是Packt Publishing于2022年出版的Kubernetes权威指南,由三位经验丰富的Kubernetes专家Nassim Kebbani、Piotr Tylenda和Russ McKendrick共同撰写。本书作为Kubernetes的"圣经",全面覆盖了从基础概念到高级部署的各个方面,特别强调在主要云平台(Google GKE、Amazon EKS、Azure AKS)上的实际部署和管理。
本书面向希望在生产环境中使用Kubernetes管理Docker容器的工程师,提供了完整的实践指南,从单机部署到大规模云原生架构,帮助读者掌握Kubernetes的核心概念和实际应用。
核心内容
本书分为五个主要部分,共21章,系统性地介绍了Kubernetes的各个方面:
第一部分:Kubernetes介绍
- 第1章:Kubernetes基础 介绍Kubernetes的起源、发展历史和核心价值,解释为什么需要容器编排器,分析单体架构与微服务架构的差异,以及Docker如何与Kubernetes结合解决生产环境中的容器管理问题。
- 第2章:Kubernetes架构 - 从Docker镜像到运行Pod 深入解析Kubernetes的分布式架构,包括主节点和工作节点的组件(kube-apiserver、etcd、kube-scheduler、kube-controller-manager、kubelet、kube-proxy),以及它们如何协同工作将用户指令转换为运行的Docker容器。
- 第3章:安装第一个Kubernetes集群 介绍多种Kubernetes安装方法,包括使用Minikube创建单节点集群、使用Kind创建多节点集群,以及在三大云平台(Google GKE、Amazon EKS、Azure AKS)上部署生产级集群。
第二部分:深入Kubernetes核心概念
- 第4章:运行Docker容器 详细介绍Pod的概念,包括如何创建Pod(命令式和声明式语法)、访问Pod日志、标签和注解的使用、Job和CronJob的创建与管理。
- 第5章:使用多容器Pod和设计模式 讲解多容器Pod的应用场景,包括初始化容器(initContainers)、容器间共享卷、以及三种主要设计模式:大使模式(Ambassador)、边车模式(Sidecar)和适配器模式(Adapter)。
- 第6章:使用ConfigMaps和Secrets配置Pod 介绍如何将应用程序与配置分离,使用ConfigMap管理非敏感配置,使用Secret管理敏感信息(如密码、API密钥),以及如何将配置作为环境变量或卷挂载到Pod中。
- 第7章:使用服务暴露Pod 详细讲解Kubernetes服务类型:ClusterIP(集群内部访问)、NodePort(节点端口访问)、LoadBalancer(负载均衡器访问),以及如何实现就绪探针(ReadinessProbe)和存活探针(LivenessProbe)来确保应用健康。
- 第8章:管理Kubernetes命名空间 介绍命名空间的概念和作用,如何创建、切换和管理命名空间,以及如何使用ResourceQuota和LimitRange在命名空间级别配置资源配额和限制。
- 第9章:Kubernetes中的持久化存储 讲解PersistentVolume(PV)和PersistentVolumeClaim(PVC)的概念,包括访问模式、存储类型(本地、云存储、NFS等)、静态和动态存储供应,以及StorageClass的使用。
第三部分:使用控制器管理Pod
- 第10章:运行生产级Kubernetes工作负载 介绍如何确保高可用性和容错性,包括ReplicationController和ReplicaSet的使用,以及如何扩展和管理这些控制器。
- 第11章:Deployment - 部署无状态应用 深入讲解Deployment对象,包括如何创建、扩展、更新和回滚Deployment,以及部署策略(滚动更新、重新创建)的选择。
- 第12章:StatefulSet - 部署有状态应用 介绍StatefulSet对象,分析有状态应用与无状态应用的区别,包括稳定的网络标识、有序部署和扩展、持久化存储管理等。
- 第13章:DaemonSet - 在节点上维护Pod单例 讲解DaemonSet的概念和用途,包括如何创建和管理DaemonSet,以及常见用例(如日志收集、监控代理、网络插件)。
第四部分:在云上部署Kubernetes
- 第14章:Google Kubernetes Engine上的Kubernetes集群 详细介绍如何在Google Cloud Platform上使用GKE部署和管理Kubernetes集群,包括环境准备、集群创建、工作负载部署和集群管理。
- 第15章:在Amazon Web Services上使用Amazon Elastic Kubernetes Service启动Kubernetes集群 讲解如何在AWS上使用EKS部署Kubernetes集群,包括eksctl工具的使用、集群配置、工作负载部署和AWS控制台管理。
- 第16章:在Microsoft Azure上使用Azure Kubernetes Service的Kubernetes集群 介绍如何在Azure上使用AKS部署Kubernetes集群,包括Azure CLI的使用、集群创建、工作负载部署和Azure门户管理。
第五部分:高级Kubernetes
- 第17章:使用Helm Charts 介绍Helm包管理工具,包括Helm的安装、Chart的解剖结构、如何部署示例Chart,以及如何使用Helm安装流行解决方案(Kubernetes Dashboard、Elasticsearch with Kibana、Prometheus with Grafana)。
- 第18章:Kubernetes上的身份验证和授权 详细讲解Kubernetes的身份验证方法(静态令牌文件、ServiceAccount令牌、X.509客户端证书、OpenID Connect令牌)和授权机制(RBAC),以及如何在Azure AKS上集成Azure Active Directory。
- 第19章:高级Pod调度技术 深入探讨Pod调度策略,包括节点亲和性(Node Affinity)、节点污点和容忍度(Taints and Tolerations),以及高级调度策略的配置。
- 第20章:自动扩展Kubernetes Pod和节点 介绍Kubernetes自动扩展机制,包括垂直Pod自动扩展器(VPA)、水平Pod自动扩展器(HPA)和集群自动扩展器,以及如何在三大云平台上启用这些功能。
- 第21章:使用Ingress进行高级流量路由 讲解Ingress对象和Ingress Controller的概念,包括如何使用nginx作为Ingress Controller,以及在Azure环境中使用Azure Application Gateway作为原生Ingress Controller。
适用读者
- DevOps工程师和系统管理员:希望在生产环境中部署和管理Kubernetes
- 软件工程师和开发人员:需要将应用程序容器化并部署到Kubernetes
- 云架构师和技术决策者:计划在云平台上采用Kubernetes
- 技术团队领导和项目经理:负责Kubernetes项目的实施和管理
- 学生和自学开发者:希望系统学习Kubernetes和容器编排技术
阅读建议
- 先决条件:读者需要具备Docker基础知识,熟悉Linux命令行操作,了解基本的软件架构概念(如REST API)
- 实践导向:本书包含大量实际操作示例,建议边读边实践,在本地或云环境中搭建Kubernetes集群进行练习
- 循序渐进:建议按章节顺序阅读,从基础概念开始,逐步深入到高级主题
- 云平台选择:可以根据实际需求选择学习特定的云平台章节(GKE、EKS或AKS)
- 认证准备:本书内容涵盖Kubernetes认证考试(如CKA、CKAD)的核心知识点,适合作为认证考试的备考资料
- 实际应用:将书中知识应用到实际项目中,从简单的应用部署开始,逐步尝试复杂的工作负载管理
本书强调理论与实践的结合,通过详细的步骤指导和实际案例,帮助读者掌握Kubernetes在生产环境中的部署、管理和优化技能,成为真正的Kubernetes专家。