Kubernetes生产化实践之路

Kubernetes生产化实践之路
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
2020-12
版次: 1
ISBN: 9787121399176
定价: 138.00
装帧: 其他
开本: 16开
纸张: 胶版纸
页数: 552页
字数: 717.6千字
22人买过
  • Kubernetes是由谷歌主导的基于容器技术的集群管理系统,其设计理念多数衍生自谷歌内部的集群管理系统的设计和运维经验。本书从设计层面剖析了Kubernetes的设计原理,并阐述了其设计背后的生产系统问题。Kubernetes作为开放式平台,具有对不同类型的应用(有状态应用或无状态应用,在线服务或离线任务)进行统一管控的能力。本书从互联网公司的视角出发,分享了如何构建高可用的多租户集群,如何确保集群的稳定性和高性能。此外,本书阐述了数据面优化的重要性,并介绍了各个关键点,以确保使用物理机或虚拟机的应用在迁移至容器平台后能够获得*性能。
      本书的适读对象包括Kubernetes架构师、运维人员、测试工程师、技术经理,以及寻求应用落地方案的软件架构师和开发人员。另外,本书苛求于生产系统*实践,对于已有Kubernetes基础的读者,阅读本书会有事半功倍的效果。 孟凡杰

    eBay资深架构师,负责Kubernetes在企业落地过程中的架构和开发工作,专注于网络、多集群、服务治理和服务网格等方向。Kubernetes社区贡献者,曾参与社区集群联邦的开发和服务控制器重构等工作。CNUTCon全球运维大会、GIAC国际互联网架构大会明星讲师。

    苏菲

    高级软件工程师,Kubernetes专家。负责管理eBay Kubernetes云平台容器运行时及其周边模块,熟悉kubelet、CGroup、CNI等模块。主导eBay持续集成Pipeline的构建、容器运行时从Docker到Containerd的迁移、Minimal OS的管理等。

    谢文利

    eBay资深软件工程师,Kubernetes社区贡献者,经历了从k8s 1.2开始的众多版本在大规模云环境下的升级和落地,辅助多个大型应用往Kubernetes上迁移,深度定制存储插件调度等Kubernetes模块,热衷于解决容器化过程中碰到的各种问题,专注于Linux内核、性能优化、存储、网络等方向。

    李建强

    eBay资深软件工程师,负责Kubernetes生产化过程中的架构和研发工作。先后负责构建企业级高可用集群、镜像安全保证(包括镜像扫描及Kubernetes集成方案)、集群联邦的构建与管理、云原生多租户的架构设计与落地等工作。 目  录

    第1章  架构基础·· 1

    1.1  云计算的变革·· 3

    1.1.1  物理机时代··· 3

    1.1.2  虚拟化时代··· 4

    1.1.3  容器化时代··· 6

    1.2  Kubernetes模型设计·· 11

    1.2.1  对象的通用设计原则··· 11

    1.2.2  模型设计··· 12

    1.2.3  核心对象概览··· 16

    1.2.4  控制器模式··· 20

    1.2.5  控制器的协同工作原理··· 23

    1.3  Kubernetes核心架构·· 25

    1.3.1  核心控制平面组件··· 26

    1.3.2  工作节点控制平面组件·· 33

    1.3.3  Pod详解·· 43

    第2章  计算节点管理··· 52

    2.1  操作系统·· 55

    2.2  文件系统规划·· 57

    2.3  容器核心技术·· 58

    2.3.1  Namespace 59

    2.3.2  CGroups 64

    2.3.3  容器运行时··· 71

    2.3.4  容器存储驱动·· 77

    2.4  节点资源管理·· 82

    2.4.1  状态上报··· 82

    2.4.2  资源预留··· 83

    2.4.3  驱逐管理·· 84

    2.4.4  容器和系统资源配置·· 87

    2.5  存储方案·· 99

    2.5.1  存储卷插件管理··· 99

    2.5.2  存储的分类··· 102

    2.6  节点调优·· 114

    2.6.1  NUMA架构·· 114

    2.6.2  CPU性能··· 115

    2.6.3  内存··· 117

    2.6.4  磁盘·· 120

    2.6.5  网络性能·· 121

    第3章  构建高可用集群··· 138

    3.1  高可用的常用手段·· 141

    3.2  Kubernetes高可用层级·· 144

    3.3  控制平面的高可用保证·· 148

    3.3.1  etcd高可用保证··· 149

    3.3.2  API Server高可用保证·· 156

    3.3.3  控制器高可用保证··· 164

    3.3.4  集群的安全性保证·· 165

    3.4  面向应用的高可用特性·· 173

    3.5  模型驱动的集群搭建与管理·· 176

    第4章  构建企业级镜像仓库··· 184

    4.1  镜像仓库综述·· 185

    4.1.1  镜像仓库·· 185

    4.1.2  镜像管理·· 187

    4.2  企业级镜像仓库·· 189

    4.2.1  架构总览··· 191

    4.2.2  数据库·· 193

    4.2.3  块存储··· 194

    4.2.4  镜像仓库实例部署·· 195

    4.3  镜像仓库缓存·· 196

    4.3.1  镜像分发的挑战··· 196

    4.3.2  镜像缓存服务拓扑··· 198

    4.3.3  镜像缓存流量管理··· 199

    4.3.4  高可用镜像缓存服务·· 199

    4.4  镜像安全·· 200

    4.4.1  镜像扫描·· 201

    4.4.2  镜像策略准入控制··· 206

    4.4.3  镜像安全监控·· 210

    第5章  多租户生产集群··· 213

    5.1  租户·· 214

    5.1.1  多租户支持··· 214

    5.1.2  Kubernetes多租户有限支持·· 216

    5.1.3  Kubernetes租户扩展··· 218

    5.2  认证·· 222

    5.2.1  Kubernetes认证··· 222

    5.2.2  用户认证·· 225

    5.2.3  高负载认证实践·· 227

    5.3  授权·· 229

    5.3.1  Kubernetes授权··· 230

    5.3.2  租户授权··· 235

    5.3.3  特殊权限管理··· 236

    5.3.4  特殊权限应用·· 238

    5.4  隔离·· 243

    5.4.1  节点隔离·· 244

    5.4.2  容器隔离·· 247

    5.4.3  网络策略隔离·· 249

    5.5  配额·· 252

    5.5.1  Kubernetes配额··· 252

    5.5.2  高阶配额·· 255

    5.5.3  租户配额·· 262

    5.5.4  租户配额实践·· 265

    第6章  网络接入方案··· 267

    6.1  数据中心基础架构·· 268

    6.2  域名服务·· 270

    6.3  Linux网络基础·· 273

    6.3.1  理解Linux网络协议栈工作机制·· 273

    6.3.2  iptables 275

    6.3.3  ipset 277

    6.3.4  IPVS· 278

    6.4  负载均衡·· 280

    6.4.1  负载均衡的实现机制··· 281

    6.4.2  负载均衡的技术实现··· 283

    6.4.3  负载均衡的部署模式··· 288

    6.4.4  负载均衡策略··· 289

    6.4.5  健康检查··· 291

    6.5  Kubernetes中的服务发布·· 291

    6.5.1  创建服务··· 293

    6.5.2  服务的类型·· 296

    6.5.3  基于kube-proxy实现的流量转发··· 300

    6.5.4  Service高级特性··· 308

    6.6  DNS· 312

    第7章  API网关和服务网格··· 315

    7.1  API网关·· 316

    7.2  服务网格·· 320

    7.3  深入了解Envoy· 322

    7.3.1  Envoy发现机制··· 325

    7.3.2  Envoy架构··· 330

    7.4  Ingress 334

    7.4.1  功能概述···· 334

    7.4.2  Ingress的挑战·· 336

    7.5  Contour 337

    7.5.1  架构··· 338

    7.5.2  高级功能··· 341

    7.6  Istio· 350

    7.6.1  架构·· 350

    7.6.2  Sidecar 353

    7.6.3  Ingress网关··· 360

    7.6.4  金丝雀发布和流量灰度·· 363

    7.6.5  安全保证·· 365

    7.6.6  策略管理和遥测·· 368

    7.6.7  数据平面加速·· 371

    7.6.8  优势和挑战·· 372

    第8章  集群联邦··· 374

    8.1  集群联邦概览·· 377

    8.1.1  集群联邦设计··· 377

    8.1.2  集群注册中心··· 379

    8.1.3  联邦共享逻辑··· 380

    8.1.4  联邦类型配置··· 384

    8.1.5  同步控制器·· 385

    8.1.6  副本调度控制器·· 386

    8.1.7  全局DNS服务·· 388

    8.2  集群联邦对象抽象·· 390

    8.2.1  集群资源··· 390

    8.2.2  联邦资源··· 391

    8.2.3  定义联邦资源··· 393

    8.2.4  联邦资源管理··· 397

    8.3  联邦应用·· 398

    8.3.1  联邦应用规划·· 400

    8.3.2  联邦应用部署··· 401

    8.3.3  联邦应用运维··· 402

    8.3.4  集群联邦的局限性与解决方案·· 409

    第9章  边缘计算··· 416

    9.1  边缘数据中心·· 417

    9.1.1  智能域名服务(GSLB)·· 418

    9.1.2  边缘网络接入·· 420

    9.1.3  规划边缘计算应用··· 428

    9.2  KubeEdge 430

    9.2.1  通信协议··· 432

    9.2.2  CloudCore 440

    9.2.3  EdgeCore 446

    9.2.4  设备映射器··· 450

    9.2.5  未来展望·· 455

    第10章  应用落地··· 456

    10.1  应用容器化·· 459

    10.1.1  Dockerfile 459

    10.1.2  容器化带来的影响··· 463

    10.2  应用接入的最佳实践·· 466

    10.2.1  资源定义··· 466

    10.2.2  灵活定义Pod· 468

    10.2.3  应用配置··· 473

    10.3  应用管理·· 477

    10.3.1  无状态应用·· 477

    10.3.2  有状态应用··· 480

    10.3.3  Operator 483

    10.4  集群应用运维·· 485

    第11章  监控和自动修复··· 488

    11.1  指标监控系统·· 491

    11.1.1  监控系统的构建··· 492

    11.1.2  Prometheus Operator 500

    11.2  日志管理系统·· 502

    11.3  关键指标定义·· 504

    11.4  自动修复系统·· 506

    11.4.1  Node Problem Detector 506

    11.4.2  自动修复控制器··· 509

    11.5  事件监控系统·· 510

    11.6  状态监控系统·· 512

    第12章  DevOps· 513

    12.1  拥抱DEVOPS············································································ 515

    12.2  自治跨职能团队·········································································· 520

    12.3  敏捷开发················································································· 523

    12.4  GITOPS··················································································· 529

    12.5  质量保证················································································· 533

     
  • 内容简介:
    Kubernetes是由谷歌主导的基于容器技术的集群管理系统,其设计理念多数衍生自谷歌内部的集群管理系统的设计和运维经验。本书从设计层面剖析了Kubernetes的设计原理,并阐述了其设计背后的生产系统问题。Kubernetes作为开放式平台,具有对不同类型的应用(有状态应用或无状态应用,在线服务或离线任务)进行统一管控的能力。本书从互联网公司的视角出发,分享了如何构建高可用的多租户集群,如何确保集群的稳定性和高性能。此外,本书阐述了数据面优化的重要性,并介绍了各个关键点,以确保使用物理机或虚拟机的应用在迁移至容器平台后能够获得*性能。
      本书的适读对象包括Kubernetes架构师、运维人员、测试工程师、技术经理,以及寻求应用落地方案的软件架构师和开发人员。另外,本书苛求于生产系统*实践,对于已有Kubernetes基础的读者,阅读本书会有事半功倍的效果。
  • 作者简介:
    孟凡杰

    eBay资深架构师,负责Kubernetes在企业落地过程中的架构和开发工作,专注于网络、多集群、服务治理和服务网格等方向。Kubernetes社区贡献者,曾参与社区集群联邦的开发和服务控制器重构等工作。CNUTCon全球运维大会、GIAC国际互联网架构大会明星讲师。

    苏菲

    高级软件工程师,Kubernetes专家。负责管理eBay Kubernetes云平台容器运行时及其周边模块,熟悉kubelet、CGroup、CNI等模块。主导eBay持续集成Pipeline的构建、容器运行时从Docker到Containerd的迁移、Minimal OS的管理等。

    谢文利

    eBay资深软件工程师,Kubernetes社区贡献者,经历了从k8s 1.2开始的众多版本在大规模云环境下的升级和落地,辅助多个大型应用往Kubernetes上迁移,深度定制存储插件调度等Kubernetes模块,热衷于解决容器化过程中碰到的各种问题,专注于Linux内核、性能优化、存储、网络等方向。

    李建强

    eBay资深软件工程师,负责Kubernetes生产化过程中的架构和研发工作。先后负责构建企业级高可用集群、镜像安全保证(包括镜像扫描及Kubernetes集成方案)、集群联邦的构建与管理、云原生多租户的架构设计与落地等工作。
  • 目录:
    目  录

    第1章  架构基础·· 1

    1.1  云计算的变革·· 3

    1.1.1  物理机时代··· 3

    1.1.2  虚拟化时代··· 4

    1.1.3  容器化时代··· 6

    1.2  Kubernetes模型设计·· 11

    1.2.1  对象的通用设计原则··· 11

    1.2.2  模型设计··· 12

    1.2.3  核心对象概览··· 16

    1.2.4  控制器模式··· 20

    1.2.5  控制器的协同工作原理··· 23

    1.3  Kubernetes核心架构·· 25

    1.3.1  核心控制平面组件··· 26

    1.3.2  工作节点控制平面组件·· 33

    1.3.3  Pod详解·· 43

    第2章  计算节点管理··· 52

    2.1  操作系统·· 55

    2.2  文件系统规划·· 57

    2.3  容器核心技术·· 58

    2.3.1  Namespace 59

    2.3.2  CGroups 64

    2.3.3  容器运行时··· 71

    2.3.4  容器存储驱动·· 77

    2.4  节点资源管理·· 82

    2.4.1  状态上报··· 82

    2.4.2  资源预留··· 83

    2.4.3  驱逐管理·· 84

    2.4.4  容器和系统资源配置·· 87

    2.5  存储方案·· 99

    2.5.1  存储卷插件管理··· 99

    2.5.2  存储的分类··· 102

    2.6  节点调优·· 114

    2.6.1  NUMA架构·· 114

    2.6.2  CPU性能··· 115

    2.6.3  内存··· 117

    2.6.4  磁盘·· 120

    2.6.5  网络性能·· 121

    第3章  构建高可用集群··· 138

    3.1  高可用的常用手段·· 141

    3.2  Kubernetes高可用层级·· 144

    3.3  控制平面的高可用保证·· 148

    3.3.1  etcd高可用保证··· 149

    3.3.2  API Server高可用保证·· 156

    3.3.3  控制器高可用保证··· 164

    3.3.4  集群的安全性保证·· 165

    3.4  面向应用的高可用特性·· 173

    3.5  模型驱动的集群搭建与管理·· 176

    第4章  构建企业级镜像仓库··· 184

    4.1  镜像仓库综述·· 185

    4.1.1  镜像仓库·· 185

    4.1.2  镜像管理·· 187

    4.2  企业级镜像仓库·· 189

    4.2.1  架构总览··· 191

    4.2.2  数据库·· 193

    4.2.3  块存储··· 194

    4.2.4  镜像仓库实例部署·· 195

    4.3  镜像仓库缓存·· 196

    4.3.1  镜像分发的挑战··· 196

    4.3.2  镜像缓存服务拓扑··· 198

    4.3.3  镜像缓存流量管理··· 199

    4.3.4  高可用镜像缓存服务·· 199

    4.4  镜像安全·· 200

    4.4.1  镜像扫描·· 201

    4.4.2  镜像策略准入控制··· 206

    4.4.3  镜像安全监控·· 210

    第5章  多租户生产集群··· 213

    5.1  租户·· 214

    5.1.1  多租户支持··· 214

    5.1.2  Kubernetes多租户有限支持·· 216

    5.1.3  Kubernetes租户扩展··· 218

    5.2  认证·· 222

    5.2.1  Kubernetes认证··· 222

    5.2.2  用户认证·· 225

    5.2.3  高负载认证实践·· 227

    5.3  授权·· 229

    5.3.1  Kubernetes授权··· 230

    5.3.2  租户授权··· 235

    5.3.3  特殊权限管理··· 236

    5.3.4  特殊权限应用·· 238

    5.4  隔离·· 243

    5.4.1  节点隔离·· 244

    5.4.2  容器隔离·· 247

    5.4.3  网络策略隔离·· 249

    5.5  配额·· 252

    5.5.1  Kubernetes配额··· 252

    5.5.2  高阶配额·· 255

    5.5.3  租户配额·· 262

    5.5.4  租户配额实践·· 265

    第6章  网络接入方案··· 267

    6.1  数据中心基础架构·· 268

    6.2  域名服务·· 270

    6.3  Linux网络基础·· 273

    6.3.1  理解Linux网络协议栈工作机制·· 273

    6.3.2  iptables 275

    6.3.3  ipset 277

    6.3.4  IPVS· 278

    6.4  负载均衡·· 280

    6.4.1  负载均衡的实现机制··· 281

    6.4.2  负载均衡的技术实现··· 283

    6.4.3  负载均衡的部署模式··· 288

    6.4.4  负载均衡策略··· 289

    6.4.5  健康检查··· 291

    6.5  Kubernetes中的服务发布·· 291

    6.5.1  创建服务··· 293

    6.5.2  服务的类型·· 296

    6.5.3  基于kube-proxy实现的流量转发··· 300

    6.5.4  Service高级特性··· 308

    6.6  DNS· 312

    第7章  API网关和服务网格··· 315

    7.1  API网关·· 316

    7.2  服务网格·· 320

    7.3  深入了解Envoy· 322

    7.3.1  Envoy发现机制··· 325

    7.3.2  Envoy架构··· 330

    7.4  Ingress 334

    7.4.1  功能概述···· 334

    7.4.2  Ingress的挑战·· 336

    7.5  Contour 337

    7.5.1  架构··· 338

    7.5.2  高级功能··· 341

    7.6  Istio· 350

    7.6.1  架构·· 350

    7.6.2  Sidecar 353

    7.6.3  Ingress网关··· 360

    7.6.4  金丝雀发布和流量灰度·· 363

    7.6.5  安全保证·· 365

    7.6.6  策略管理和遥测·· 368

    7.6.7  数据平面加速·· 371

    7.6.8  优势和挑战·· 372

    第8章  集群联邦··· 374

    8.1  集群联邦概览·· 377

    8.1.1  集群联邦设计··· 377

    8.1.2  集群注册中心··· 379

    8.1.3  联邦共享逻辑··· 380

    8.1.4  联邦类型配置··· 384

    8.1.5  同步控制器·· 385

    8.1.6  副本调度控制器·· 386

    8.1.7  全局DNS服务·· 388

    8.2  集群联邦对象抽象·· 390

    8.2.1  集群资源··· 390

    8.2.2  联邦资源··· 391

    8.2.3  定义联邦资源··· 393

    8.2.4  联邦资源管理··· 397

    8.3  联邦应用·· 398

    8.3.1  联邦应用规划·· 400

    8.3.2  联邦应用部署··· 401

    8.3.3  联邦应用运维··· 402

    8.3.4  集群联邦的局限性与解决方案·· 409

    第9章  边缘计算··· 416

    9.1  边缘数据中心·· 417

    9.1.1  智能域名服务(GSLB)·· 418

    9.1.2  边缘网络接入·· 420

    9.1.3  规划边缘计算应用··· 428

    9.2  KubeEdge 430

    9.2.1  通信协议··· 432

    9.2.2  CloudCore 440

    9.2.3  EdgeCore 446

    9.2.4  设备映射器··· 450

    9.2.5  未来展望·· 455

    第10章  应用落地··· 456

    10.1  应用容器化·· 459

    10.1.1  Dockerfile 459

    10.1.2  容器化带来的影响··· 463

    10.2  应用接入的最佳实践·· 466

    10.2.1  资源定义··· 466

    10.2.2  灵活定义Pod· 468

    10.2.3  应用配置··· 473

    10.3  应用管理·· 477

    10.3.1  无状态应用·· 477

    10.3.2  有状态应用··· 480

    10.3.3  Operator 483

    10.4  集群应用运维·· 485

    第11章  监控和自动修复··· 488

    11.1  指标监控系统·· 491

    11.1.1  监控系统的构建··· 492

    11.1.2  Prometheus Operator 500

    11.2  日志管理系统·· 502

    11.3  关键指标定义·· 504

    11.4  自动修复系统·· 506

    11.4.1  Node Problem Detector 506

    11.4.2  自动修复控制器··· 509

    11.5  事件监控系统·· 510

    11.6  状态监控系统·· 512

    第12章  DevOps· 513

    12.1  拥抱DEVOPS············································································ 515

    12.2  自治跨职能团队·········································································· 520

    12.3  敏捷开发················································································· 523

    12.4  GITOPS··················································································· 529

    12.5  质量保证················································································· 533

     
查看详情
12
相关图书 / 更多
Kubernetes生产化实践之路
Kubernetes实战:构建生产级应用平台
[美]约翰·哈里斯 著;[美]乔希·罗索;[美]里奇·兰德;[美]亚历山大·布兰德
Kubernetes生产化实践之路
Kubernetes修炼手册
[英]奈吉尔·波尔顿(Nigel Poulton)
Kubernetes生产化实践之路
Kubernetes操作器
[美]詹森·多比斯(Jason Dobies);[美]约书亚·伍德(Joshua Wood);马晶慧
Kubernetes生产化实践之路
Kubernetes编程
[美]迈克尔·豪森布拉斯(Michael Hausenblas) 著;李凡希、任震宇 译
Kubernetes生产化实践之路
Kubernetes原生微服务开发
肯·芬尼根(Ken Finnigan)著 陈计节 张圣奇 译;[美]约翰·克林甘(John Clingan)
Kubernetes生产化实践之路
Kubernetes快速进阶与实战
艾叔
Kubernetes生产化实践之路
Kubernetes从入门到DevOps企业应用实战
韩先超
Kubernetes生产化实践之路
Kubernetes Operator开发进阶
胡涛(Daniel Hu) 编著
Kubernetes生产化实践之路
Kubernetes快速入门
[英]奈吉尔·波尔顿(Nigel Poulton)
Kubernetes生产化实践之路
Kubeflow学习指南:生产级机器学习系统实现
[美]特雷弗·格兰特 (加)霍尔顿·卡劳 (俄)鲍里斯·卢布林斯基 (美)理查德·刘 (美)伊兰·菲洛年科
Kubernetes生产化实践之路
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
龚正
Kubernetes生产化实践之路
Kubernetes即学即用(第二版)
布兰登·柏恩思;乔·贝达;凯尔西·海托华;马晶慧
您可能感兴趣 / 更多
Kubernetes生产化实践之路
金融学基础
孟凡杰、申向明 主编