计算机
类型
可以朗读
语音朗读
338千字
字数
2022-06-01
发行日期
展开全部
主编推荐语
本书内容包含关于Kubernetes的大型知识框架,帮助你使用Kubernetes构建一个生产级的应用平台。
内容简介
本书探讨了通往Kubernetes生产环境成功道路中所涉及的多种技术、模式和抽象方面的考虑与权衡。
主要内容包括基于Kubernetes构建应用平台、部署模型、容器运行时、容器存储、Pod、服务路由、密码管理、准入控制、可观测性、身份认证、构建平台服务、多租户问题、工作负载的自动缩放、在Kubernetes上运行应用程序时应该考虑的各种注意事项、在Kubernetes上从开发人员获取代码到生产的实际过程以及平台抽象。
目录
- 版权信息
- O’Reilly Media, Inc.介绍
- 推荐序
- 序言
- 前言
- 第1章 生产环境构建之路
- 1.1 Kubernetes的定位
- 1.1.1 核心组件
- 1.1.2 服务编排之外的扩展功能
- 1.1.3 Kubernetes接口
- 1.1.4 小结
- 1.2 定义应用平台
- 1.2.1 方法的选型
- 1.2.2 对需求进行取舍
- 1.2.3 小结
- 1.3 基于Kubernetes构建应用平台
- 1.3.1 从基础开始
- 1.3.2 抽象频谱
- 1.3.3 选择平台服务
- 1.3.4 构建模块
- 1.4 总结
- 第2章 部署模型
- 2.1 托管服务对比自建服务
- 2.1.1 托管服务
- 2.1.2 自建服务
- 2.1.3 做出决定
- 2.2 自动化
- 2.2.1 预制的安装程序
- 2.2.2 自定义自动化
- 2.3 架构和拓扑结构
- 2.3.1 etcd的部署模式
- 2.3.2 集群分层
- 2.3.3 节点池
- 2.3.4 集群联邦
- 2.4 基础设施
- 2.4.1 裸机与虚拟化
- 2.4.2 集群的大小
- 2.4.3 计算基础设施
- 2.4.4 网络基础设施
- 2.4.5 自动化策略
- 2.5 机器安装
- 2.5.1 配置管理工具
- 2.5.2 机器镜像
- 2.5.3 安装什么
- 2.6 容器化组件
- 2.7 附加组件
- 2.8 升级
- 2.8.1 平台的版本控制
- 2.8.2 失败计划
- 2.8.3 集成测试
- 2.8.4 策略
- 2.9 触发机制
- 2.10 总结
- 第3章 容器运行时
- 3.1 容器的出现
- 3.2 开放容器倡议
- 3.2.1 OCI运行时规范
- 3.2.2 OCI镜像规范
- 3.3 容器运行时接口
- 3.3.1 启动Pod
- 3.4 选择容器运行时
- 3.4.1 Docker
- 3.4.2 containerd
- 3.4.3 CRI-O
- 3.4.4 Kata Containers
- 3.4.5 Virtual Kubelet
- 3.5 总结
- 第4章 容器存储
- 4.1 存储注意事项
- 4.1.1 访问模式
- 4.1.2 卷的扩展
- 4.1.3 卷的配置
- 4.1.4 备份和恢复
- 4.1.5 块设备、文件存储和对象存储
- 4.1.6 临时数据
- 4.1.7 选择一个存储服务商
- 4.2 Kubernetes存储基元
- 4.2.1 持久卷和声明
- 4.2.2 存储类
- 4.3 容器存储接口
- 4.3.1 CSI控制器
- 4.3.2 CSI节点
- 4.4 实现存储即服务
- 4.4.1 安装
- 4.4.2 存储选项
- 4.4.3 消费存储
- 4.4.4 调整大小
- 4.4.5 快照
- 4.5 总结
- 第5章 Pod网络通信
- 5.1 网络因素
- 5.1.1 IP地址管理
- 5.1.2 路由协议
- 5.1.3 封装和隧道
- 5.1.4 工作负载可路由性
- 5.1.5 IPv4和IPv6
- 5.1.6 加密的工作负载流量
- 5.1.7 网络策略
- 5.1.8 小结
- 5.2 容器网络接口
- 5.2.1 CNI安装
- 5.3 CNI插件
- 5.3.1 Calico
- 5.3.2 Cilium
- 5.3.3 AWS VPC CNI
- 5.3.4 Multus
- 5.3.5 其他插件
- 5.4 总结
- 第6章 服务路由
- 6.1 Kubernetes Service
- 6.1.1 Service抽象
- 6.1.2 Endpoints
- 6.1.3 Service实施细节
- 6.1.4 服务发现
- 6.1.5 DNS服务性能
- 6.2 Ingress
- 6.2.1 Ingress的案例
- 6.2.2 Ingress API
- 6.2.3 Ingress控制器和它们的工作方式
- 6.2.4 Ingress流量模式
- 6.2.5 选择一个Ingress控制器
- 6.2.6 Ingress控制器的部署考虑因素
- 6.2.7 DNS及其在Ingress中的作用
- 6.2.8 处理TLS证书
- 6.3 服务网格
- 6.3.1 何时不使用服务网格
- 6.3.2 服务网格接口
- 6.3.3 数据平面代理
- 6.3.4 Kubernetes上的服务网格
- 6.3.5 数据平面架构
- 6.3.6 采用服务网格
- 6.4 总结
- 第7章 秘密管理
- 7.1 深度防御
- 7.1.1 磁盘加密
- 7.1.2 传输安全
- 7.1.3 应用加密
- 7.2 Kubernetes Secret API
- 7.2.1 秘密的消费模式
- 7.2.2 etcd中的秘密数据
- 7.2.3 静态密钥加密
- 7.2.4 信封加密
- 7.3 外部服务商
- 7.3.1 Vault
- 7.3.2 Cyberark
- 7.3.3 注入集成
- 7.3.4 CSI集成
- 7.4 声明式世界中的秘密
- 7.4.1 封存秘密
- 7.4.2 封闭式秘密控制器
- 7.4.3 密钥更新
- 7.4.4 多集群模型
- 7.5 秘密的最佳实践
- 7.5.1 始终审计秘密交互
- 7.5.2 不要泄密
- 7.5.3 优先选择挂载卷而不是环境变量
- 7.5.4 使秘密存储服务商对你的应用程序未知
- 7.6 总结
- 第8章 准入控制
- 8.1 Kubernetes的准入链
- 8.2 树内准入控制器
- 8.3 webhook
- 8.3.1 配置webhook准入控制器
- 8.3.2 webhook设计注意事项
- 8.4 如何编写变更webhook
- 8.4.1 纯HTTPS处理器
- 8.4.2 控制器运行时
- 8.5 集中式策略系统
- 8.6 总结
- 第9章 可观测性
- 9.1 日志记录机制
- 9.1.1 容器日志处理
- 9.1.2 Kubernetes审计日志
- 9.1.3 Kubernetes事件
- 9.1.4 基于日志告警
- 9.1.5 安全影响
- 9.2 指标
- 9.2.1 Prometheus
- 9.2.2 长期存储
- 9.2.3 指标推送
- 9.2.4 自定义指标
- 9.2.5 组织和联邦
- 9.2.6 告警
- 9.2.7 showback和chargeback
- 9.2.8 指标组件
- 9.3 分布式追踪
- 9.3.1 OpenTracing和OpenTelemetry
- 9.3.2 追踪组件
- 9.3.3 应用程序测量
- 9.3.4 服务网格
- 9.4 总结
- 第10章 身份认证
- 10.1 用户身份
- 10.1.1 身份验证方法
- 10.1.2 为用户提供最小权限
- 10.2 应用程序/工作负载的身份
- 10.2.1 密钥共享
- 10.2.2 网络身份
- 10.2.3 服务账户令牌
- 10.2.4 投射服务账户令牌
- 10.2.5 平台中介节点身份
- 10.3 总结
- 第11章 构建平台服务
- 11.1 扩展点
- 11.1.1 插件扩展
- 11.1.2 webhook扩展
- 11.1.3 operator扩展
- 11.2 operator模式
- 11.2.1 Kubernetes控制器
- 11.2.2 自定义资源
- 11.3 operator用例
- 11.3.1 平台工具
- 11.3.2 通用工作负载operator
- 11.3.3 应用定制operator
- 11.4 开发operator
- 11.4.1 operator开发工具
- 11.4.2 数据模型设计
- 11.4.3 逻辑实现
- 11.5 扩展调度器
- 11.5.1 predicate和priority
- 11.5.2 调度策略
- 11.5.3 调度配置文件
- 11.5.4 多个调度器
- 11.5.5 自定义调度器
- 11.6 总结
- 第12章 多租户
- 12.1 隔离的等级
- 12.1.1 单租户集群
- 12.1.2 多租户集群
- 12.2 命名空间边界
- 12.3 Kubernetes中的多租户
- 12.3.1 基于角色的访问控制
- 12.3.2 资源配额
- 12.3.3 准入webhook
- 12.3.4 资源请求和限制
- 12.3.5 网络策略
- 12.3.6 Pod安全策略
- 12.3.7 多租户平台服务
- 12.4 总结
- 第13章 自动缩放
- 13.1 缩放类型
- 13.2 应用程序架构
- 13.3 工作负载自动缩放
- 13.3.1 Pod水平自动缩放器
- 13.3.2 Pod垂直自动缩放器
- 13.3.3 使用自定义指标进行自动缩放
- 13.3.4 集群比例自动缩放器
- 13.3.5 自定义自动缩放
- 13.4 集群自动缩放
- 13.4.1 集群过量配置
- 13.5 总结
- 第14章 应用程序注意事项
- 14.1 将应用程序部署到Kubernetes
- 14.1.1 部署清单模板化
- 14.1.2 为Kubernetes应用程序打包
- 14.2 摄取配置和秘密
- 14.2.1 Kubernetes的ConfigMap和Secret
- 14.2.2 从外部系统获取配置
- 14.3 处理重新安排事件
- 14.3.1 预停止容器生命周期hook
- 14.3.2 正常关闭容器
- 14.3.3 满足可用性要求
- 14.4 状态探测器
- 14.4.1 存活探测器
- 14.4.2 就绪探测器
- 14.4.3 启动探测器
- 14.4.4 实现探测器
- 14.5 Pod资源请求和限制
- 14.5.1 资源请求
- 14.5.2 资源限制
- 14.6 应用程序日志
- 14.6.1 记录什么
- 14.6.2 非结构化日志与结构化日志
- 14.6.3 日志中的上下文信息
- 14.7 公开指标
- 14.7.1 适配应用程序
- 14.7.2 USE方法
- 14.7.3 RED方法
- 14.7.4 四个黄金信号
- 14.7.5 特定于应用程序的指标
- 14.8 为分布式追踪适配服务
- 14.8.1 初始化追踪器
- 14.8.2 创建跨度
- 14.8.3 传播上下文
- 14.9 总结
- 第15章 软件供应链
- 15.1 构建容器镜像
- 15.1.1 黄金基础镜像反模式
- 15.1.2 选择基础镜像
- 15.1.3 运行时用户
- 15.1.4 固定软件包版本
- 15.1.5 构建与运行时镜像
- 15.1.6 Cloud Native Buildpacks
- 15.2 镜像注册表
- 15.2.1 漏洞扫描
- 15.2.2 隔离工作流
- 15.2.3 镜像签名
- 15.3 持续交付
- 15.3.1 将构建集成到管道中
- 15.3.2 基于推送的部署
- 15.3.3 展开模式
- 15.3.4 GitOps
- 15.4 总结
- 第16章 平台抽象
- 16.1 平台曝光
- 16.2 自助式上线服务
- 16.3 抽象频谱
- 16.3.1 命令行工具
- 16.3.2 通过模板抽象
- 16.3.3 抽象Kubernetes基元
- 16.3.4 使Kubernetes不可见
- 16.4 总结
- 关于作者
- 关于封面
展开全部
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。