精通Kubernetes

精通Kubernetes

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

本书通过理论与实践相结合,全方位地介绍Kubernetes这一容器编排的理想工具。

内容简介

本书共14章,涉及的主题包括理解Kubernetes架构,创建Kubernetes集群,监控、日志记录和故障排除,高可用性和可靠性,配置Kubernetes安全、限制和账户,使用关键Kubernetes资源,管理Kubernetes存储,使用Kubernetes运行有状态应用程序,滚动更新、可伸缩性和配额,高级Kubernetes网络,在云平台和集群联邦中运行Kubernetes,自定义Kubernetes API和插件,操作Kubernetes软件包管理器以及Kubernetes的未来。

本书综合考虑不同环境和用例,使读者了解如何创建大型系统并将其部署在Kubernetes上。在各章节主题中,读者提供了丰富的实践案例分析,娓娓道来,引人入胜。本书可以作为Kubernetes的实践参考手册,聚焦于设计和管理Kubernetes集群,为开发人员、运维工程师详细介绍了Kubernetes所提供的功能和服务。

作者简介

作者吉吉·塞凡,VRVIU的首席系统架构师,他致力于开发软件专业20多年,涉及的领域包括即时消息传送、变形、芯片制造过程控制、用于游戏控制台的嵌入式多媒体应用、大脑启发式机器学习,定制浏览器开发,3D分布式Web服务游戏平台以及最近的物联网/传感器。他擅长C、C++、C#、Python、Java等,以用于Windows(3.11至7)。他的技术专长包括数据库、分布式系统、非正统用户界面。

章节目录

版权信息

内容提要

关于作者

关于审稿人

名词说明

翻译说明

前言

本书内容

阅前准备

目标读者

资源与支持

配套资源

提交勘误

与我们联系

关于异步社区和异步图书

第1章 理解Kubernetes架构

1.1 理解容器编排

1.1.1 物理机、虚拟机和容器

1.1.2 云端容器

1.1.3 服务器运行模式

1.2 Kubernetes的相关概念

1.2.1 集群

1.2.2 节点

1.2.3 主节点

1.2.4 Pod

1.2.5 标签

1.2.6 注解

1.2.7 标签选择器

1.2.8 副本控制器和副本集

1.2.9 服务

1.2.10 存储卷

1.2.11 有状态服务集

1.2.12 密钥对象

1.2.13 名称

1.2.14 命名空间

1.3 深入了解Kubernetes架构

分布式系统设计模式

1.4 Kubernetes API

1.4.1 Kubernetes API

1.4.2 自动伸缩 API

1.5 Kubernetes组件

1.5.1 主组件

1.5.2 节点组件

1.6 Kubernetes运行时

1.6.1 运行时接口

1.6.2 Docker

1.6.3 Rkt

1.6.4 Hyper Container

1.7 持续集成与部署

1.7.1 CI/CD流水线

1.7.2 为Kubernetes设计CI/CD流水线

1.8 总结

第2章 创建Kubernetes集群

2.1 用Minikube快速创建单节点集群

2.1.1 准备工作

2.1.2 创建集群

2.1.3 故障排除

2.1.4 检查集群

2.1.5 部署服务

2.1.6 用仪表板检查集群

2.2 用Kubeadm创建多节点集群

2.2.1 准备工作

2.2.2 组建Vagrant虚拟机集群

2.2.3 安装所需软件

2.2.4 创建集群

2.2.5 建立Pod网络

2.2.6 添加工作节点

2.3 在GCP、AWS和Azure云端创建集群

2.3.1 云提供商接口

2.3.2 GCP

2.3.3 AWS

2.3.4 Azure

2.4 从头开始创建裸金属集群

2.4.1 裸金属用例

2.4.2 什么时候应该考虑创建裸金属集群

2.5 进程

2.6 使用虚拟私有云基础设施

2.7 总结

第3章 监控、日志记录和故障排除

3.1 用Heapster监控Kubernetes

cAdvisor

3.2 InfluxDB后端

3.2.1 存储模式

3.2.2 Grafana可视化

3.3 仪表板的性能分析

3.3.1 顶视图

3.3.2 添加中央日志

3.4 检测节点问题

3.4.1 节点问题检测器

3.4.2 DaemonSet

3.4.3 节点问题检测DaemonSet

3.5 故障排除方案

3.6 设计健壮的系统

3.6.1 硬件故障

3.6.2 配额、份额和限制

3.6.3 Bad Configuration

3.6.4 成本和性能

3.7 总结

第4章 高可用性和可靠性

4.1 高可用性概念

4.1.1 冗余

4.1.2 热交换

4.1.3 领导选举

4.1.4 智能负载均衡

4.1.5 幂等

4.1.6 自愈

4.2 高可用性最佳实践

4.2.1 创建高可用性集群

4.2.2 确保节点可靠

4.2.3 保护集群状态

4.2.4 保护数据

4.2.5 运行冗余API服务器

4.2.6 用Kubernetes运行领导选举

4.2.7 使预演环境高度可用

4.2.8 测试高可用性

4.3 集群在线升级

4.3.1 滚动升级

4.3.2 蓝绿升级

4.3.3 管理数据契约变更

4.3.4 数据迁移

4.3.5 检测过期API

4.4 大型集群的性能、成本和设计权衡

4.4.1 可用性要求

4.4.2 尽力而为

4.4.3 维护窗口

4.4.4 快速恢复

4.4.5 零停机时间

4.4.6 性能和数据的一致性

4.5 总结

第5章 配置Kubernetes安全、限制和账户

5.1 理解Kubernetes安全挑战

5.1.1 节点挑战

5.1.2 网络挑战

5.1.3 镜像挑战

5.1.4 配置和部署挑战

5.1.5 Pod和容器挑战

5.1.6 组织、文化和过程挑战

5.2 加固Kubernetes

5.2.1 理解Kubernetes的服务账户

5.2.2 访问API服务器

5.2.3 保护Pod

5.2.4 管理网络策略

5.2.5 使用密钥对象

5.3 运行多用户集群

5.3.1 多用户集群的案例

5.3.2 安全多租户使用命名空间

5.3.3 避免命名空间陷阱

5.4 总结

第6章 使用关键Kubernetes资源

6.1 设计Hue平台

6.1.1 定义Hue的范围

6.1.2 规划工作流

6.2 利用Kubernetes构建Hue平台

6.2.1 有效使用kubectl

6.2.2 理解kubectl资源配置文件

6.2.3 在Pod中部署长时间运行的微服务

6.3 内外部服务分离

6.3.1 部署内部服务

6.3.2 创建Hue-reminders服务

6.3.3 从外部公开服务

6.4 使用命名空间限制访问

6.5 启动Job

6.5.1 并行运行作业

6.5.2 清理已完成的作业

6.5.3 调度计划作业

6.6 kubectl获得Pod

6.7 混合非集群组件

6.7.1 集群网络外部组件

6.7.2 集群网络内部组件

6.7.3 用Kubernetes管理Hue平台

6.7.4 使用就绪探针管理依赖

6.8 为有序启动Pod采用初始容器

与DaemonSet Pod共享

6.9 用Kubernetes进化Hue平台

6.9.1 Hue在企业中的运用

6.9.2 用Hue推进科学

6.9.3 用Hue实施教育

6.10 总结

第7章 管理Kubernetes存储

7.1 持久存储卷指导

7.1.1 存储卷

7.1.2 创建持久存储卷

7.1.3 持续存储卷声明

7.1.4 按使用存储卷挂载声明

7.1.5 存储类

7.1.6 从端到端演示持久存储卷

7.2 公共存储卷类型——GCE、AWS和Azure

7.2.1 AWS弹性块存储(EBS)

7.2.2 AWS弹性文件系统(EFS)

7.2.3 GCE持久化磁盘

7.2.4 Azure数据盘

7.2.5 Azure文件存储

7.3 Kubernetes中的GlusterFS和Ceph存储卷

7.3.1 使用GlusterFS

7.3.2 使用Ceph

7.4 Flocker作为集群容器数据存储卷管理器

7.5 将企业存储集成到Kubernetes

Torus——块上的新成员

7.6 总结

第8章 使用Kubernetes运行有状态的应用程序

8.1 Kubernetes中的有状态与无状态应用

8.1.1 理解分布式数据密集型应用的本质

8.1.2 为什么在Kubernetes中管理状态

8.1.3 为什么在Kubernetes以外管理状态

8.2 共享环境变量与DNS记录

8.2.1 通过DNS访问外部数据存储

8.2.2 通过环境变量访问外部数据存储

8.2.3 使用冗余内存状态

8.2.4 使用DaemonSet进行冗余持久存储

8.2.5 应用持久存储卷声明

8.2.6 利用有状态服务集

8.3 在Kubernetes运行Cassandra集群

8.3.1 Cassandra快速入门

8.3.2 Cassandra Docker镜像

8.3.3 连接Kubernetes和Cassandra

8.3.4 创建Cassandra无源服务

8.3.5 使用有状态服务集创建Cassandra集群

8.3.6 使用副本控制器分布Cassandra

8.3.7 利用DaemonSet分布Cassandra

8.4 总结

第9章 滚动更新、可伸缩性和配额

9.1 水平Pod自动伸缩

9.1.1 声明水平Pod自动伸缩器

9.1.2 自定义度量

9.1.3 使用Kubectl自动伸缩

9.2 用自动伸缩进行滚动更新

9.3 用限制和配额处理稀缺资源

9.3.1 启用资源配额

9.3.2 资源配额类型

9.3.3 配额范围

9.3.4 请求与限制

9.3.5 使用配额

9.4 选择与管理集群性能

9.4.1 选择节点类型

9.4.2 选择存储解决方案

9.4.3 交易成本与响应时间

9.4.4 有效使用多节点配置

9.4.5 利用弹性云资源

9.4.6 考虑Hyper.sh

9.5 挑战Kubernetes性能极限

9.5.1 提高Kubernetes的性能和可扩展性

9.5.2 测量Kubernetes的性能和可伸缩性

9.5.3 按规模测试Kubernetes

9.6 总结

第10章 高级Kubernetes网络

10.1 理解Kubernetes网络模型

10.1.1 容器内通信(容器-容器)

10.1.2 Pod间通信(Pod-Pod)

10.1.3 Pod-服务通信

10.1.4 外部访问

10.1.5 Kubernetes网络与Docker网络

10.1.6 查找与发现

10.1.7 Kubernetes网络插件

10.2 Kubernetes网络解决方案

10.2.1 裸金属集群桥接

10.2.2 Contiv

10.2.3 Open vSwitch

10.2.4 Nuage网络VCS

10.2.5 Canal

10.2.6 Flannel

10.2.7 Calico工程

10.2.8 Romana

10.2.9 Weave Net

10.3 有效使用网络策略

理解Kubernetes网络策略设计

10.4 负载均衡选项

10.4.1 外部负载均衡器

10.4.2 服务负载均衡器

10.4.3 入口

10.5 编写自己的CNI插件

loopback插件

10.6 总结

第11章 在云平台和集群联邦中运行Kubernetes

11.1 理解集群联邦

11.1.1 集群联邦的重要用例

11.1.2 联邦控制平面

11.1.3 联邦资源

11.1.4 高难度部分

11.2 管理Kubernetes集群联邦

11.3 从底层建立集群联邦

11.3.1 初始设置

11.3.2 使用官方hyperkube镜像

11.3.3 运行联邦控制平面

11.3.4 用联邦注册Kubernetes集群

11.3.5 更新KubeDNS

11.3.6 关闭联邦

11.3.7 用Kubefed建立集群联邦

11.4 运行联邦工作负载

11.4.1 创建联邦服务

11.4.2 添加后端Pod

11.4.3 验证公共DNS记录

11.4.4 发现联邦服务

11.4.5 后端Pod和整个集群的故障处理

11.4.6 故障排除

11.5 总结

第12章 自定义Kubernetes API和插件

12.1 使用Kubernetes API

12.1.1 理解OpenAPI

12.1.2 设置代理

12.1.3 直接探索Kubernetes API

12.1.4 通过Kubernetes API创建Pod

12.1.5 通过Python客户端访问Kubernetes API

12.2 扩展Kubernetes API

12.2.1 理解第三方资源的结构

12.2.2 开发第三方资源

12.2.3 整合第三方资源

12.3 编写Kubernetes插件

编写自定义调度程序插件

12.4 编写授权插件

12.4.1 编写准入控制接口

12.4.2 编写自定义度量插件

12.4.3 编写卷插件

12.5 总结

第13章 操作Kubernetes软件包管理器

13.1 理解Helm

13.1.1 Helm的动机

13.1.2 Helm架构

13.1.3 Helm组件

13.1.4 Helm与Helm-Classic

13.2.1 安装Helm

13.2.2 寻找图表

13.2.3 安装包

13.2.4 使用安装包库

13.2.5 使用Helm管理图表

13.3 创建自己的图表

13.3.1 Chart.yaml文件

13.3.2 图表元数据文件

13.3.3 管理图表依赖

13.3.4 使用模板和值

13.4 总结

第14章 Kubernetes的未来

14.1 未来发展道路

14.1.1 Kubernetes的发行版和里程碑

14.1.2 Kubernetes的特别兴趣小组和工作组

14.2 面临的挑战

14.2.1 捆绑价值

14.2.2 Docker Swarm

14.2.3 Mesos/Mesosphere

14.2.4 云平台

14.2.5 AWS

14.2.6 Azure

14.2.7 阿里云

14.3 Kubernetes势头

14.3.1 社区

14.3.2 GitHub

14.3.3 会议

14.3.4 思维共享

14.3.5 生态系统

14.3.6 公有云提供商

14.4 教育和培训

14.5 动态插件

14.6 总结

精通Kubernetes是2020年由人民邮电出版社出版,作者[美] 吉吉·塞凡。

得书感谢您对《精通Kubernetes》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
云计算平台综合运维与管理(OpenStack+Kubernetes)(微课版) 电子书
根据高职高专教育的培养目标、教学特点和教学要求,本书由浅入深、全面系统地介绍云计算平台综合运维与管理方面的内容。本书共3个项目,包括Linux基本配置与管理、OpenStack云计算平台配置与管理,以及Kubernetes集群配置与管理。为了让读者能够更好地巩固所学知识,及时地检查学习效果,每个项目末尾都提供了丰富的课后习题。本书可作为全国高等院校云计算技术应用专业的教材,也可作为云计算技术培训用
精通Android网络开发 电子书
实例丰富,按照Android 5 新版本编写。 涵盖了Android网络应用中的所有主要内容: HTTP数据通信、URL处理数据、使用Socket实现数据通信、使用WebKit浏览网页数据、WiFi系统应用、蓝牙系统应用、邮件应用、RSS应用、网络视频处理、网络流量监控、网络RSS阅读器 通过案例让读者学以致用,如开发一个邮件系统、网络防火墙系统开发、开发Web版的电话本管理系统等
精通JavaScript+jQuery 电子书
随着Ajax技术的不断风靡,其核心技术JavaScript越来越受到人们的关注,各种JavaScript的框架层出不穷。jQuery作为JavaScript框架的代表,为广大提供了诸多便利。本书从介绍JavaScript的基础知识开始,围绕标准Web的各项技术予以展开,通过大量实例对JavaScript、CSS、DOM、Ajax等Web关键技术进行深入浅出的分析,主要内容包括JavaScript的
精通Linux内核开发 电子书
《精通Linux内核开发》介绍了Linux内核、内核的内部编排与设计,以及内核的各个核心子系统等知识。本书分为11章,具体内容包括:进程、地址空间和线程;进程调度器;信号管理;内存管理和分配器;文件系统和文件I/O;进程间通信;虚拟内存管理;内核同步和锁;中断和延迟工作;时钟和时间管理;模块管理。《精通Linux内核开发》篇幅短小精悍,通过大量代码辅助介绍Linux内核的相关开发工作。通过学习本书
MySQL从入门到精通 电子书
本书适合任何想学习MySQL的读者,无论您是否从事计算机相关行业,是否接触过MySQL,均可通过学习快速掌握MySQL的开发方法和技巧。