展开全部

主编推荐语

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

内容简介

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

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

目录

  • 版权信息
  • 内容提要
  • 关于作者
  • 关于审稿人
  • 名词说明
  • 翻译说明
  • 前言
  • 本书内容
  • 阅前准备
  • 目标读者
  • 资源与支持
  • 配套资源
  • 提交勘误
  • 与我们联系
  • 关于异步社区和异步图书
  • 第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 总结
展开全部

评分及书评

3.4
5个评分
  • 用户头像
    给这本书评了
    1.0

    语句不太通顺

      转发
      评论
      用户头像
      给这本书评了
      4.0

      不错,算是入门了

        转发
        评论

      出版方

      人民邮电出版社

      人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。