-
内容大纲
在这本实用指南中,四位在分布式系统、开源技术和企业应用程序开发领域拥有丰富经验的Kubernetes专家将指导你完成使用该容器编排系统构建应用程序的全过程。他们共同提炼了多家在生产环境中成功运行Kubernetes的公司数十年的经验,并提供了具体的代码示例来支持书中介绍的方法。
本书经过修订,涵盖了所有最新的Kubernetes功能、新工具和弃用内容,非常适合熟悉Kubernetes基本概念但希望快速掌握最新的最佳实践的读者。你将确切了解如何首次使用Kubernetes构建最优秀的应用程序。
通过学习本书,你将:
能够在Kubernetes中设置和开发应用程序。
学习监控、系统安全以及管理升级、部署和回滚的模式。
能够集成服务和传统应用程序,并在Kubernetes之上开发更高级别的平台。
能够在Kubernetes中运行机器学习工作负载。
能够确保Pod和容器的安全性。
能够在Kubernetes之上构建更高级别的应用程序模式和实现Operator。
了解对成功实施Kubernetes日益关键的问题:混沌工程/测试、GitOps、服务网格、可观测性和多集群管理。 -
作者介绍
-
目录
前言
第1章 搭建一个基本服务
1.1 应用程序概览
1.2 管理配置文件
1.3 使用Deployment创建多副本服务
1.3.1 镜像管理的最佳实践
1.3.2 创建多副本应用程序
1.4 为HTTP流量配置外部Ingress
1.5 使用ConfigMap配置应用程序
1.6 使用Secret管理认证
1.7 部署简单的有状态数据库
1.8 使用Service创建TCP负载均衡器
1.9 使用Ingress将流量路由到静态文件服务器
1.10 使用Helm将你的应用程序参数化
1.11 部署服务的最佳实践
1.12 本章小结
第2章 开发者工作流
2.1 目的
2.2 搭建开发环境集群
2.3 为多个开发者搭建共享集群
2.3.1 添加用户
2.3.2 创建和保护命名空间
2.3.3 管理命名空间
2.3.4 集群级服务
2.4 启用开发者工作流
2.4.1 环境初始化
2.4.2 启动开发
2.4.3 启动测试与调试
2.5 搭建开发环境的最佳实践
2.6 本章小结
第3章 监控和日志
3.1 指标与日志
3.2 监控技术
3.3 监控模式
3.4 Kubernetes指标概述
3.4.1 cAdvisor
3.4.2 Metrics Server
3.4.3 kube-state-metrics
3.5 我应该监控哪些指标
3.6 监控工具
3.7 使用Prometheus监控Kubernetes
3.8 日志概述
3.9 日志工具
3.10 使用Loki-Stack记录日志
3.11 告警
3.12 监控、日志和告警的最佳实践
3.12.1 监控
3.12.2 日志
3.12.3 告警
3.13 本章小结
第4章 配置、Secret和RBAC
4.1 通过ConfigMap和Secret配置应用
4.1.1 ConfigMap
4.1.2 Secret
4.2 ConfigMap和Secret API的通用最佳实践
4.3 Secret特定的最佳实践
4.4 RBAC
4.4.1 RBAC入门
4.4.2 RBAC最佳实践
4.5 本章小结
第5章 持续集成、测试和部署
5.1 版本控制
5.2 持续集成
5.3 测试
5.4 容器构建
5.5 为容器镜像打标签
5.6 持续部署
5.7 部署策略
5.8 生产环境中的测试
5.9 搭建流水线并进行混沌实验
5.9.1 搭建CI
5.9.2 搭建CD
5.9.3 执行滚动升级
5.9.4 简单的混沌实验
5.10 CI/CD的最佳实践
5.11 本章小结
第6章 版本控制、发布和上线
6.1 版本控制
6.2 发布
6.3 上线
6.4 综合示例
6.5 版本控制、发布以及上线的最佳实践
6.6 本章小结
第7章 全球化应用的分发和预演
7.1 镜像的分发
7.2 参数化部署
7.3 全球流量负载均衡
7.4 可靠的全球化上线
7.4.1 上线前验证
7.4.2 金丝雀区域
7.4.3 识别区域类型
7.4.4 进行全球上线
7.5 如何应对出现的问题
7.6 全球化上线的最佳实践
7.7 本章小结
第8章 资源管理
8.1 Kubernetes Scheduler
8.1.1 预选
8.1.2 优选
8.2 高级调度技术
8.2.1 Pod的亲和性和反亲和性
8.2.2 nodeSelector
8.2.3 污点和容忍
8.3 Pod资源管理
8.3.1 资源请求
8.3.2 资源限制和Pod服务质量
8.3.3 PodDisruptionBudget
8.3.4 使用命名空间管理资源
8.3.5 ResourceQuota
8.3.6 LimitRange
8.3.7 集群的扩缩容
8.3.8 应用程序的扩缩容
8.3.9 通过HPA进行扩缩容
8.3.10 自定义指标的HPA
8.3.11 Pod垂直自动伸缩
8.4 资源管理的最佳实践
8.5 本章小结
第9章 网络、网络安全与服务网格
9.1 Kubernetes的网络原则
9.2 网络插件
9.2.1 Kubenet
9.2.2 Kubenet最佳实践
9.2.3 CNI插件
9.2.4 CNI最佳实践
9.3 Kubernetes中的Service
9.3.1 ClusterIP服务类型
9.3.2 NodePort服务类型
9.3.3 ExternalName服务类型
9.3.4 LoadBalancer服务类型
9.3.5 Ingress和Ingress控制器
9.3.6 Gateway API
9.3.7 Service和Ingress控制器的最佳实践
9.4 网络安全策略
9.5 网络策略的最佳实践
9.6 服务网格
9.7 服务网格的最佳实践
9.8 本章小结
第10章 Pod和容器安全
10.1 Pod安全性准入控制器
10.1.1 启用Pod安全性准入控制
10.1.2 Pod安全性级别
10.1.3 使用命名空间标签激活Pod安全性
10.2 工作负载隔离和运行时类
10.2.1 使用运行时类
10.2.2 运行时的实现
10.2.3 工作负载隔离和RuntimeClass的最佳实践
10.3 其他Pod和容器安全性注意事项
10.3.1 准入控制器
10.3.2 入侵和异常检测工具
10.4 本章小结
第11章 集群的策略和治理
11.1 为什么策略和治理很重要
11.2 这里所说的策略有何不同
11.3 云原生策略引擎
11.4 Gatekeeper简介
11.4.1 策略示例
11.4.2 Gatekeeper术语
11.4.3 定义约束模板
11.4.4 定义约束
11.4.5 数据复制
11.4.6 用户体验
11.5 利用强制措施和审核
11.5.1 变更策略
11.5.2 测试策略
11.5.3 熟悉Gatekeeper
11.6 策略和治理的最佳实践
11.7 本章小结
第12章 多集群管理
12.1 为什么需要多集群
12.2 多集群设计的考量
12.3 多集群部署管理
12.4 部署和管理模式
12.5 GitOps集群管理方式
12.6 多集群管理工具
12.7 Kubernetes联邦
12.8 多集群管理的最佳实践
12.9 本章小结
第13章 外部服务与Kubernetes的集成
13.1 将外部服务导入Kubernetes
13.1.1 适用于固定IP地址的无选择算符Service
13.1.2 适用于固定DNS名称的基于CNAME的Service
13.1.3 主动基于控制器的方式
13.2 将Kubernetes服务导出到外部
13.2.1 使用内部负载均衡器导出服务
13.2.2 使用NodePort导出服务
13.2.3 集成外部机器和Kubernetes
13.3 在Kubernetes之间共享服务
13.4 第三方工具
13.5 连接集群和外部服务的最佳实践
13.6 本章小结
第14章 在Kubernetes中运行机器学习
14.1 为什么Kubernetes非常适合机器学习
14.2 机器学习工作流
14.3 Kubernetes集群管理员与机器学习
14.3.1 Kubernetes上的模型训练
14.3.2 Kubernetes上的分布式训练
14.3.3 资源约束
14.3.4 专用硬件
14.3.5 库、驱动和内核模块
14.3.6 存储
14.3.7 网络
14.3.8 专用协议
14.4 数据科学家关心的事
14.5 在Kubernetes上进行机器学习的最佳实践
14.6 本章小结
第15章 在Kubernetes上构建更高层的应用程序模式
15.1 开发更高层次的抽象的方法
15.2 扩展Kubernetes
15.2.1 扩展Kubernetes集群
15.2.2 扩展Kubernetes用户体验
15.2.3 让容器化开发更容易
15.2.4 开发一键部署体验
15.3 构建平台时的设计考量
15.3.1 支持导出为容器镜像
15.3.2 支持现有的服务和服务发现机制
15.4 构建应用平台的最佳实践
15.5 本章小结
第16章 管理状态和有状态应用
16.1 卷和卷挂载
16.2 卷的最佳实践
16.3 Kubernetes存储
16.3.1 PersistentVolume
16.3.2 PersistentVolumeClaim
16.3.3 StorageClass
16.3.4 Kubernetes存储的最佳实践
16.4 有状态应用
16.4.1 StatefulSet
16.4.2 Operator
16.4.3 StatefulSet和Operator最佳实践
16.5 本章小结
第17章 准入控制与授权
17.1 准入控制
17.1.1 准入控制器是什么
17.1.2 为什么准入控制器如此重要
17.1.3 准入控制器的类型
17.1.4 配置准入Webhook
17.1.5 准入控制的最佳实践
17.2 授权
17.2.1 授权模块
17.2.2 授权的最佳实践
17.3 本章小结
第18章 GitOps和部署
18.1 GitOps是什么
18.2 为什么需要GitOps
18.3 GitOps代码库结构
18.4 机密信息管理
18.5 设置Flux
18.6 GitOps工具
18.7 GitOps的最佳实践
18.8 本章小结
第19章 安全性
19.1 集群安全性
19.1.1 etcd的访问
19.1.2 认证
19.1.3 授权
19.1.4 TLS
19.1.5 Kubelet和云端元数据访问
19.1.6 机密信息
19.1.7 日志与审计
19.1.8 集群安全水平感知工具
19.2 集群安全性最佳实践
19.3 工作负载容器的安全性
19.3.1 Pod安全性准入
19.3.2 Seccomp、AppArmor和SELinux
19.3.3 准入控制器
19.3.4 Operator
19.3.5 网络策略
19.3.6 运行时安全
19.3.7 工作负载容器安全性最佳实践
19.4 代码安全性
19.4.1 非root容器和distroless容器
19.4.2 容器安全漏洞扫描
19.4.3 代码仓库安全
19.5 代码安全性最佳实践
19.6 本章小结
第20章 混沌测试、负载测试和试验
20.1 混沌测试
20.1.1 混沌测试的目标
20.1.2 混沌测试的先决条件
20.1.3 应用程序通信的混沌测试
20.1.4 应用程序运行的混沌测试
20.1.5 应用程序安全性和韧性的模糊测试
20.1.6 混沌测试小结
20.2 负载测试
20.2.1 负载测试的目标
20.2.2 负载测试的先决条件
20.2.3 获取真实的流量
20.2.4 应用程序的负载测试
20.2.5 使用负载测试调优应用程序
20.2.6 负载测试小结
20.3 试验
20.3.1 试验的目标
20.3.2 试验的先决条件
20.3.3 设立一个试验
20.3.4 试验小结
20.4 本章小结
第21章 实现一个Operator
21.1 Operator的核心组件
21.2 定制资源定义
21.3 创建API
21.4 控制器调谐
21.5 资源验证
21.6 控制器的实现
21.7 Operator的生命周期
21.7.1 版本更新
21.7.2 Operator的最佳实践
21.8 本章小结
第22章 结束语
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-

孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-

时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-

本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...
[
