Kubernetes设计模式

Book description

随着微服务和容器的发展,开发人员设计、构建和运行软件的方式已经发生了明显的变化。这些现代体系结构提供了新的分布式原语,开发人员、技术负责人和架构师在实现这些原语时也需要采用一套不同的实践。本书重点介绍在Kubernetes上设计和实现云原生应用程序时所需的通用且可重用的模式和原理。

本书中的每个模式都包含问题描述和特定于Kubernetes的解决方案。所有模式均提供具体的代码示例以及演示。本书主要面向熟悉Kubernetes基本概念的开发人员和架构师,帮助他们学习如何使用久经考验的设计模式解决常见的云原生难题。

本书介绍了以下模式类型:

  • 基础模式涵盖构建基于容器的云原生应用程序的核心原则和实践。
  • 行为模式详细介绍管理容器和平台交互的概念。
  • 结构化模式教你如何通过在Pod中组织容器解决特定的用例。
  • 配置模式讲述如何处理Kubernetes中应用程序的配置。
  • 高级模式涵盖更复杂的主题,例如操作器和自动伸缩等。

Table of contents

  1. 封面
  2. 封底
  3. 扉页
  4. 版权页
  5. O’Reilly公司介绍
  6. 目录 (1/2)
  7. 目录 (2/2)
  8. 前言
    1. Kubernetes
    2. 设计模式
    3. 本书的组织结构
    4. 本书面向的读者对象
    5. 内容提要
    6. 内容约定
    7. 使用代码示例
    8. O’Reilly在线学习平台(O’Reilly Online Learning)
    9. 联系我们
    10. 致谢
  9. 第1章 引言
    1. 1.1 云原生之路
    2. 1.2 分布式原语
      1. 1.2.1 容器
      2. 1.2.2 Pod
      3. 1.2.3 服务
      4. 1.2.4 标签
      5. 1.2.5 注释
      6. 1.2.6 命名空间
    3. 1.3 讨论
    4. 1.4 参考资料
  10. 第一部分 基础模式
    1. 第2章 可预测的需求
      1. 2.1 问题
      2. 2.2 解决方案 (1/2)
      3. 2.2 解决方案 (2/2)
        1. 2.2.1 运行时依赖
        2. 2.2.2 资源配置文件
        3. 2.2.3 Pod优先级
        4. 2.2.4 项目资源
        5. 2.2.5 容量规划
      4. 2.3 讨论
      5. 2.4 参考资料
    2. 第3章 声明式部署
      1. 3.1 问题
      2. 3.2 解决方案 (1/2)
      3. 3.2 解决方案 (2/2)
        1. 3.2.1 滚动部署
        2. 3.2.2 固定部署
        3. 3.2.3 蓝绿发布
        4. 3.2.4 金丝雀发布
      4. 3.3 讨论
      5. 3.4 参考资料
    3. 第4章 健康检测
      1. 4.1 问题
      2. 4.2 解决方案
        1. 4.2.1 进程健康检查
        2. 4.2.2 存活探针
        3. 4.2.3 就绪探针
      3. 4.3 讨论
      4. 4.4 参考资料
    4. 第5章 生命周期管理
      1. 5.1 问题
      2. 5.2 解决方案
        1. 5.2.1 SIGTERM信号
        2. 5.2.2 SIGKILL信号
        3. 5.2.3 postStart钩子
        4. 5.2.4 preStop钩子
        5. 5.2.5 其他生命周期控制
      3. 5.3 讨论
      4. 5.4 参考资料
    5. 第6章 自动放置
      1. 6.1 问题
      2. 6.2 解决方案 (1/3)
      3. 6.2 解决方案 (2/3)
      4. 6.2 解决方案 (3/3)
        1. 6.2.1 可利用的节点资源
        2. 6.2.2 容器资源需求
        3. 6.2.3 放置策略
        4. 6.2.4 调度的过程
        5. 6.2.5 节点亲和性
        6. 6.2.6 Pod亲和性和反亲和性
        7. 6.2.7 污点和容忍
      5. 6.3 讨论
      6. 6.4 参考资料
  11. 第二部分 行为模式
    1. 第7章 批处理作业
      1. 7.1 问题
      2. 7.2 解决方案
      3. 7.3 讨论
      4. 7.4 参考资料
    2. 第8章 定期作业
      1. 8.1 问题
      2. 8.2 解决方案
      3. 8.3 讨论
      4. 8.4 参考资料
    3. 第9章 守护进程服务
      1. 9.1 问题
      2. 9.2 解决方案
      3. 9.3 讨论
      4. 9.4 参考资料
    4. 第10章 单例服务
      1. 10.1 问题
      2. 10.2 解决方案 (1/2)
      3. 10.2 解决方案 (2/2)
        1. 10.2.1 应用程序外锁定
        2. 10.2.2 应用程序内锁定
        3. 10.2.3 Pod中断预算
      4. 10.3 讨论
      5. 10.4 参考资料
    5. 第11章 有状态服务
      1. 11.1 问题
        1. 11.1.1 存储
        2. 11.1.2 网络
        3. 11.1.3 标识
        4. 11.1.4 序数
        5. 11.1.5 其他需求
      2. 11.2 解决方案 (1/2)
      3. 11.2 解决方案 (2/2)
        1. 11.2.1 存储
        2. 11.2.2 网络
        3. 11.2.3 标识
        4. 11.2.4 序数
        5. 11.2.5 其他特性
      4. 11.3 讨论
      5. 11.4 参考资料
    6. 第12章 服务发现
      1. 12.1 问题
      2. 12.2 解决方案 (1/3)
      3. 12.2 解决方案 (2/3)
      4. 12.2 解决方案 (3/3)
        1. 12.2.1 内部服务发现
        2. 12.2.2 手动服务发现
        3. 12.2.3 集群外部的服务发现
        4. 12.2.4 应用层服务发现
      5. 12.3 讨论
      6. 12.4 参考资料
    7. 第13章 自我意识
      1. 13.1 问题
      2. 13.2 解决方案
      3. 13.3 讨论
      4. 13.4 参考资料
  12. 第三部分 结构化模式
    1. 第14章 初始化容器
      1. 14.1 问题
      2. 14.2 解决方案
      3. 14.3 讨论
      4. 14.4 参考资料
    2. 第15章 Sidecar
      1. 15.1 问题
      2. 15.2 解决方案
      3. 15.3 讨论
      4. 15.4 参考资料
    3. 第16章 适配器
      1. 16.1 问题
      2. 16.2 解决方案
      3. 16.3 讨论
      4. 16.4 参考资料
    4. 第17章 外交官
      1. 17.1 问题
      2. 17.2 解决方案
      3. 17.3 讨论
      4. 17.4 参考资料
  13. 第四部分 配置模式
    1. 第18章 环境变量配置
      1. 18.1 问题
      2. 18.2 解决方案
      3. 18.3 讨论
      4. 18.4 参考资料
    2. 第19章 配置资源
      1. 19.1 问题
      2. 19.2 解决方案
      3. 19.3 讨论
      4. 19.4 参考资料
    3. 第20章 不可变配置
      1. 20.1 问题
      2. 20.2 解决方案
        1. 20.2.1 Docker卷
        2. 20.2.2 Kubernetes初始化容器
        3. 20.2.3 OpenShift模板
      3. 20.3 讨论
      4. 20.4 参考资料
    4. 第21章 配置模板
      1. 21.1 问题
      2. 21.2 解决方案
      3. 21.3 讨论
      4. 21.4 参考资料
  14. 第五部分 高级模式
    1. 第22章 控制器
      1. 22.1 问题
      2. 22.2 解决方案 (1/3)
      3. 22.2 解决方案 (2/3)
      4. 22.2 解决方案 (3/3)
      5. 22.3 讨论
      6. 22.4 参考资料
    2. 第23章 操作器
      1. 23.1 问题
      2. 23.2 解决方案 (1/3)
      3. 23.2 解决方案 (2/3)
      4. 23.2 解决方案 (3/3)
        1. 23.2.1 自定义资源定义
        2. 23.2.2 控制器和操作器的分类
        3. 23.2.3 操作器的开发与部署
        4. 23.2.4 示例
      5. 23.3 讨论
      6. 23.4 参考资料
    3. 第24章 弹性伸缩
      1. 24.1 问题
      2. 24.2 解决方案 (1/4)
      3. 24.2 解决方案 (2/4)
      4. 24.2 解决方案 (3/4)
      5. 24.2 解决方案 (4/4)
        1. 24.2.1 手动水平伸缩
        2. 24.2.2 Pod水平自动伸缩
        3. 24.2.3 Pod垂直自动伸缩
        4. 24.2.4 集群自动伸缩
        5. 24.2.5 伸缩级别
      6. 24.3 讨论
      7. 24.4 参考资料
    4. 第25章 镜像构建
      1. 25.1 问题
      2. 25.2 解决方案 (1/3)
      3. 25.2 解决方案 (2/3)
      4. 25.2 解决方案 (3/3)
        1. 25.2.1 OpenShift Build
        2. 25.2.2 Knative Build
      5. 25.3 讨论
      6. 25.4 参考资料
  15. 后记
  16. 作者介绍
  17. 封面介绍

Product information

  • Title: Kubernetes设计模式
  • Author(s): Bilgin Ibryam, Roland Huß
  • Release date: July 2020
  • Publisher(s): China Electric Power Press Ltd.
  • ISBN: 9787519845889

You might also like

book

管理Kubernetes

by Brendan Burns, Craig Tracey

虽然Kubernetes极大地简化了部署容器化应用程序的工作,但每天管理这种编排框架仍然是一项复杂的工作。站点管理人员以及 开发运营工程师可以通过本书学习如何构建、操作、管理及升级 Kubernetes集群,无论这些集群位于云基础架构之上还是在企业内部。 本书的作者Brendan Burns是Kubernetes的联合创始人,而Craig Tracey 是Heptio的现场工程师。本书详细讲解了Kubernetes的内部工作原理,并向读者展示了如何通过维护、调整和改善集群来满足特定需求。你可以通过本书学习如何从设计集群、管理访问控制、监视和报警,以及升级Kubernetes等方面来综合考虑架构的选择,还可以 通过本书深入了解如何充分利用这种编排框架的功能。 “学习如何操作集群,开发人员如何利用Kubernetes部署应用程序,以及如何利用Kubernetes减轻开发人员的负担。 通过掌握Kubernetes API以及配置选项来调整、保护,以及调节集群。 检测集群级别的问题,学习必要的响应步骤并快速恢复集群。 确定如何以及何时添加构建、扩展或以其他方式改进 Kubernetes集群的库、工具和平台。

book

时间序列分析实战:基于机器学习和统计学

by Aileen Nielsen

天气、股票、心跳都会产生时间序列数据,物联网、数字化医疗和智慧城市的兴起更是产生了大量的时间序列数据。随着数据的规模快速增长,应用机器学习和统计方法进行时间序列分析的做法越来越普遍,也越来越重要。 本书从实战角度介绍时间序列分析中的创新技术和实际用例,帮助你结合使用传统的统计方法和先进的机器学习技术来解决时间序列分析中的常见问题。由于Python和R都是时间序列分析常用的语言,因此本书兼顾这两种语言并对时间序列进行全面的阐释,可以让数据分析师、数据工程师和其他与数据打交道的读者快速上手。 发现并整理时间序列数据 针对时间序列进行探索性数据分析 模拟时间序列 存储时间序列 为时间序列生成并选择特征 测量误差 使用机器学习和深度学习分析时间序列 评估模型的精度和性能

book

人工智能技术与大数据

by Posts & Telecom Press, Anand Deshpande, Manish Kumar

大数据领域的人工智能技术 Key Features 先讲大数据的本体论、机器学习的基本理论,为具体场景、算法的实践奠定基础 在对机器学习的介绍中,对其数学原理、训练过程做基本的讲解,并辅以代码帮助读者了解真实场景中技术工具的使用 本书作者在数据生态系统技术和数据管理方面拥有丰富的经验 Book Description 本书分为两个部分,共12章。第1章到第5章介绍了大数据的本体论、机器学习的基本理论等内容,为具体场景、算法的实践奠定了基础。读者可以了解到,在工程实践中,对大数据的处理、转化方式与人类学习知识并将其转化为实践的过程是多么相似。在对机器学习的介绍中,会对其数学原理、训练过程做基本的讲解,并辅以代码帮助读者了解真实场景中技术工具的使用。第6章到第12章提供了多个不同的用例,章节之间彼此独立,介绍了如何用人工智能技术(自然语言处理、模糊系统、遗传编程、群体智能、强化学习、网络安全、认知计算)实现大数据自动化解决方案。 如果读者对 Java 编程语言、分布式计算框架、各种机器学习算法有一定的了解,那么本书可以帮助你建立一个全局观,从更广阔的视角来看待人工智能技术在大数据中的应用。如果读者对上述知识一无所知,但是对大数据人工智能的技术、业务非常感兴趣,那么可以通过本书获得从零到一的认知提升。 What you will learn …

book

解密金融数据

by Justin Pauley

技术是获取和解释金融数据的强大工具,能给你华尔街上所有人都想要的东西:优势。你不需要成为一名程序员就能从彭博、IHS Markit或其他系统获取金融信息。 通过本书并结合你的见解与彭博或Markit的数据,你将了解分析金融信息和生成专业报告的技能。 如果你是一名程序员,本书也包含用C#来覆盖相同主题的方法。 对比公司、债券或贷款,并使用在彭博屏幕上看不到的数据。 为单个公司建立两页的活页报告,包含重要的金融数据、与其对等组的相对价值比较和价格趋势。 建立投资组合总结报告,包含业绩、增长、风险调整后收益和组合。 探索公司债券和贷款市场的每日价格和贷款信息。 利用相关性和回归确定两种证券(或指数)之间的关系。 通过计算方差、标准差和夏普比率来衡量投资组合风险调整后的收益。 使用Markit数据来识别有意义的趋势。