Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)

Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2021-05
版次: 1
ISBN: 9787121409981
定价: 239.80
装帧: 其他
开本: 16开
纸张: 胶版纸
页数: 992页
字数: 1,410.000千字
83人买过
  • Kubernetes是由谷歌开源的容器集群管理系统,为容器化应用提供了资源调度、部署运行、服务发现、扩缩容等一整套功能。Kubernetes也是将“一切以服务(Service)为中心,一切围绕服务运转”作为指导思想的创新型产品,它的功能和架构设计自始至终地遵循了这一指导思想。构建在Kubernetes上的系统不仅可以独立运行在物理机、虚拟机集群或者企业私有云上,也可以被托管在公有云上。
      本书总计12章,分别讲解Kubernetes的基本概念、实践指南、核心原理、开发指南、网络与存储、运维指南、新特性演进等内容。全书图文并茂、内容丰富、由浅入深、讲解全面,并围绕在生产环境中可能出现的问题,给出了大量典型案例,比如安全配置方案、网络方案、共享存储方案、高可用方案及Trouble Shooting技巧等,有很强的实战指导意义。本书的内容也随着Kubernetes的版本更新不断完善,目前涵盖了Kubernetes从1.0到1.19版本的主要特性,努力为Kubernetes用户提供全方位的Kubernetes技术指南。
      无论是对于软件工程师、软件架构师、测试工程师、运维工程师、技术经理,还是对于资深IT人士,本书都极具参考价值。 龚正·

    HPE高级顾问,从事IT工作20余年,在云计算、大数据、大型企业级应用等领域有丰富的咨询规划、架构设计和实施经验,负责过多个大型云平台的规划和建设,是电信、金融、互联网等领域的资深专家,也是《Kubernetes权威指南:企业级容器云实战》等书的作者。

    吴治辉·

    HPE资深架构师,从事软件研发工作20余年,专注于电信软件和云计算方面的软件研发,有丰富的大型项目架构设计经验,是业界少有的具备很强编程能力的资深架构师,也是《ZeroC Ice权威指南》《架构解密:从分布式到微服务》《Kubernetes权威指南:企业级容器云实战》《区块链轻松上手》等书的作者。

    闫健勇·

    HPE高级项目经理、总架构师,从事电信行业系统建设工作20余年,主导了多项电信大型系统的架构设计和管理,对云计算和大数据在电信行业中的应用有丰富的经验,也是《Kubernetes权威指南:企业级容器云实战》等书的作者。 第1章  Kubernetes入门    1

    1.1  了解Kubernetes  2

    1.2  为什么要用Kubernetes  5

    1.3  从一个简单的例子开始    7

    1.3.1  环境准备    8

    1.3.2  启动MySQL服务    8

    1.3.3  启动Tomcat应用    11

    1.3.4  通过浏览器访问网页    12

    1.4  Kubernetes的基本概念和术语    14

    1.4.1  资源对象概述    14

    1.4.2  集群类    15

    1.4.3  应用类    19

    1.4.4  存储类    40

    1.4.5  安全类    44

     

    第2章  Kubernetes安装配置指南    47

    2.1  系统要求    48

    2.2  使用kubeadm工具快速安装Kubernetes集群    49

    2.2.1  安装kubeadm   50

    2.2.2  修改kubeadm的默认配置    50

    2.2.3  下载Kubernetes的相关镜像    51

    2.2.4  运行kubeadm init命令安装Master节点    52

    2.2.5  将新的Node加入集群    57

    2.2.6  安装CNI网络插件    59

    2.2.7  验证Kubernetes集群是否工作正常    60

    2.3  以二进制文件方式安装Kubernetes安全高可用集群    61

    2.3.1  Master高可用部署架构    61

    2.3.2  创建CA根证书    62

    2.3.3  部署安全的etcd高可用集群    63

    2.3.4  部署安全的Kubernetes Master高可用集群    68

    2.3.5  部署Node的服务    85

    2.3.6  kube-apiserver基于token的认证机制    89

    2.4  使用私有镜像库的相关配置    90

    2.5  Kubernetes的版本升级    91

    2.5.1  二进制文件升级    91

    2.5.2  使用kubeadm进行集群升级    92

    2.6  CRI(容器运行时接口)详解    94

    2.6.1  CRI概述    94

    2.6.2  CRI的主要组件    94

    2.6.3  Pod和容器的生命周期管理    95

    2.6.4  面向容器级别的设计思路    96

    2.6.5  尝试使用新的Docker-CRI来创建容器    97

    2.6.6  CRI的进展    98

    2.7  kubectl命令行工具用法详解    98

    2.7.1  kubectl用法概述    99

    2.7.2  kubectl子命令详解    99

    2.7.3  kubectl可操作的资源对象详解    103

    2.7.4  kubectl的公共参数说明    105

    2.7.5  kubectl格式化输出    106

    2.7.6  kubectl常用操作示例    108

     

    第3章  深入掌握Pod  113

    3.1  Pod定义详解    114

    3.2  Pod的基本用法    120

    3.3  静态Pod  125

    3.4  Pod容器共享Volume  126

    3.5  Pod的配置管理    129

    3.5.1  ConfigMap概述    129

    3.5.2  创建ConfigMap资源对象    129

    3.5.3  在Pod中使用ConfigMap  137

    3.5.4  使用ConfigMap的限制条件    143

    3.6  在容器内获取Pod信息(Downward API)    144

    3.6.1  环境变量方式    144

    3.6.2  Volume挂载方式    148

    3.6.3  Downward API支持设置的Pod和Container信息    153

    3.7  Pod生命周期和重启策略    154

    3.8  Pod健康检查和服务可用性检查    155

    3.9  玩转Pod调度    159

    3.9.1  Deployment或RC:全自动调度    162

    3.9.2  NodeSelector:定向调度    163

    3.9.3  NodeAffinity:Node亲和性调度    165

    3.9.4  PodAffinity:Pod亲和与互斥调度策略    167

    3.9.5  Taints和Tolerations(污点和容忍)    171

    3.9.6  Pod Priority Preemption:Pod优先级调度    176

    3.9.7  DaemonSet:在每个Node上都调度一个Pod  178

    3.9.8  Job:批处理调度    181

    3.9.9  Cronjob:定时任务    185

    3.9.10  自定义调度器    188

    3.9.11  Pod容灾调度    190

    3.10  Init Container(初始化容器)    192

    3.11  Pod的升级和回滚    196

    3.11.1  Deployment的升级    196

    3.11.2  Deployment的回滚    203

    3.11.3  暂停和恢复Deployment的部署操作    205

    3.11.4  其他管理对象的更新策略    207

    3.12  Pod的扩缩容    209

    3.12.1  手动扩缩容机制    209

    3.12.2  自动扩缩容机制    211

    3.13  使用StatefulSet搭建MongoDB集群    233

    3.13.1  前提条件    234

    3.13.2  部署StatefulSet 234

    3.13.3  查看MongoDB集群的状态    238

    3.13.4  StatefulSet的常见应用场景    241

     

    第4章  深入掌握Service  245

    4.1  Service定义详解    246

    4.2  Service的概念和原理    248

    4.2.1  Service的概念    248

    4.2.2  Service的负载均衡机制    252

    4.2.3  Service的多端口设置    254

    4.2.4  将外部服务定义为Service  256

    4.2.5  将Service暴露到集群外部    257

    4.2.6  Service支持的网络协议    260

    4.2.7  Kubernetes的服务发现机制    261

    4.2.8  Headless Service的概念和应用    263

    4.2.9  端点分片与服务拓扑    265

    4.3  DNS服务搭建和配置指南    274

    4.3.1  修改每个Node上kubelet的DNS启动参数    276

    4.3.2  部署CoreDNS服务    276

    4.3.3  服务名的DNS解析    280

    4.3.4  CoreDNS的配置说明    282

    4.4  Node本地DNS缓存    284

    4.5  Pod的DNS域名相关特性    291

    4.5.1  Pod的DNS域名    291

    4.5.2  为Pod自定义hostname和subdomain  292

    4.5.3  Pod的DNS策略    294

    4.5.4  Pod中的自定义DNS配置    295

    4.6  Ingress 7层路由机制    297

    4.6.1  一个完整的例子(Ingress Controller Ingress策略 客户端访问)    298

    4.6.2  Ingress资源对象详解    309

    4.6.3  Ingress策略配置详解    315

    4.6.4  Ingress的TLS安全设置    319

     

    第5章  核心组件的运行机制    326

    5.1  Kubernetes API Server原理解析    327

    5.1.1  Kubernetes API Server概述    327

    5.1.2  API Server架构解析    330

    5.1.3  独特的Kubernetes Proxy API接口    335

    5.1.4  集群功能模块之间的通信    336

    5.1.5  API Server网络隔离的设计    338

    5.2  Controller Manager原理解析    339

    5.2.1  副本调度控制器    340

    5.2.2  Node Controller 342

    5.2.3  ResourceQuota Controller 343

    5.2.4  Namespace Controller 345

    5.2.5  Service Controller与Endpoints Controller 345

    5.3  Scheduler原理解析    346

    5.3.1  Scheduler的调度流程    347

    5.3.2  Scheduler Framework  349

    5.3.3  多调度器特性    351

    5.4  kubelet运行机制解析    352

    5.4.1  节点管理    352

    5.4.2  Pod管理    353

    5.4.3  容器健康检查    354

    5.4.4  cAdvisor资源监控    355

    5.4.5  容器运行时    357

    5.5  kube-proxy运行机制解析    359

    5.5.1  第一代Proxy  360

    5.5.2  第二代Proxy  361

    5.5.2  第三代Proxy  362

     

    第6章  深入分析集群安全机制    364

    6.1  API Server认证管理    365

    6.1.1  HTTPS证书认证    366

    6.1.2  HTTP Bearer Token认证    367

    6.1.3  OpenID Connect Token第三方认证    368

    6.1.4  Authenticating Proxy(认证代理)    372

    6.2  API Server授权管理    373

    6.2.1  ABAC授权模式详解    374

    6.2.2  Webhook授权模式详解    377

    6.2.3  RBAC授权模式详解    380

    6.2.4  Node授权模式详解    405

    6.3  Admission Control 406

    6.4  Service Account 410

    6.5  Secret私密凭据    415

    6.6  Pod安全策略    419

    6.6.1  PodSecurityPolicy的工作机制    419

    6.6.2  PodSecurityPolicy配置详解    421

    6.6.3  PodSecurityPolicy策略示例    427

    6.6.4  PodSecurityPolicy的RBAC授权    431

    6.6.5  Pod安全设置(Security Context)详解    436

     

    第7章  网络原理    445

    7.1  Kubernetes网络模型    446

    7.2  Docker网络基础    448

    7.2.1  网络命名空间    448

    7.2.2  Veth设备对    451

    7.2.3  网桥    454

    7.2.4  iptables和Netfilter 456

    7.2.5  路由    459

    7.3  Docker的网络实现    461

    7.3.1  查看Docker启动后的系统情况    463

    7.3.2  查看容器启动后的网络配置(容器无端口映射)    465

    7.3.3  查看容器启动后的网络配置(容器有端口映射)    468

    7.3.4  Docker的网络局限性    469

    7.4  Kubernetes的网络实现    470

    7.4.1  容器到容器的通信    470

    7.4.2  Pod之间的通信    471

    7.5  Pod和Service网络实战    474

    7.5.1  部署一个RC/Pod  476

    7.5.2  发布一个服务    481

    7.6  CNI网络模型    489

    7.6.1  CNM网络模型简介    489

    7.6.2  CNI网络模型详解    490

    7.6.3  在Kubernetes中使用网络插件    507

    7.7  开源容器网络方案    508

    7.7.1  Flannel插件的原理和部署示例    508

    7.7.2  Open vSwitch插件的原理和部署示例    513

    7.7.3  直接路由的原理和部署示例    518

    7.7.4  Calico插件的原理和部署示例    521

    7.8  Kubernetes的网络策略    541

    7.8.1  网络策略设置说明    542

    7.8.2  Selector功能说明    544

    7.8.3  为命名空间配置默认的网络策略    545

    7.8.4  网络策略应用示例    547

    7.8.5  NetworkPolicy的发展    550

    7.9  Kubernetes对IPv4和IPv6双栈的支持    551

    7.9.1  为Kubernetes集群启用IPv4和IPv6双栈    551

    7.9.2  Pod双栈IP地址验证    554

    7.9.3  Service双栈IP地址验证    557

     

    第8章  存储原理和应用    560

    8.1  Kubernetes存储机制概述    561

    8.1.1  将资源对象映射为存储卷    562

    8.1.2  Node本地存储卷    569

    8.2  持久卷(Persistent Volume)详解    573

    8.2.1  PV和PVC的工作原理    574

    8.2.2  PV详解    581

    8.2.3  PVC详解    587

    8.2.4  Pod使用PVC   589

    8.2.5  StorageClass详解    593

    8.3  动态存储管理实战:GlusterFS  600

    8.3.1  准备工作    600

    8.3.2  创建GlusterFS管理服务容器集群    600

    8.3.3  创建Heketi服务    603

    8.3.4  通过Heketi管理GlusterFS集群    607

    8.3.5  定义StorageClass  610

    8.3.6  定义PVC   610

    8.3.7  Pod使用PVC的存储资源    613

    8.4  CSI存储机制详解    614

    8.4.1  CSI的设计背景    614

    8.4.2  CSI的核心组件和部署架构    615

    8.4.3  CSI存储插件应用实战    617

    8.4.4  CSI存储快照管理    632

    8.4.5  CSI的发展    638

     

    第9章  Kubernetes开发指南    647

    9.1  REST简述    648

    9.2  Kubernetes API详解    650

    9.2.1  Kubernetes API概述    650

    9.2.2  Kubernetes API版本的演进策略    658

    9.2.3  API Groups(API组)    658

    9.2.4  API REST的方法说明    661

    9.2.5  API Server响应说明    663

    9.3  使用Fabric8访问Kubernetes API 665

    9.3.1  具体应用示例    666

    9.3.2  其他客户端库    679

    9.4  Kubernetes API的扩展    680

    9.4.1  使用CRD扩展API资源    681

    9.4.2  使用API聚合机制扩展API资源    692

     

    第10章  Kubernetes运维管理    702

    10.1  Node管理    703

    10.1.1  Node的隔离与恢复    703

    10.1.2  Node的扩容    704

    10.2  更新资源对象的Label 705

    10.3  Namespace:集群环境共享与隔离    706

    10.3.1  创建Namespace  706

    10.3.2  定义Context 707

    10.3.3  设置工作组在特定Context中工作    708

    10.4  Kubernetes资源管理    710

    10.4.1  计算资源管理    712

    10.4.2  资源配置范围管理(LimitRange)    722

    10.4.3  资源服务质量管理(Resource QoS)    730

    10.4.4  资源配额管理(Resource Quotas)    738

    10.4.5  ResourceQuota和LimitRange实践    744

    10.4.6  Pod中多个容器共享进程命名空间    754

    10.4.7  PID资源管理    757

    10.4.8  节点的CPU管理策略    757

    10.4.9  拓扑管理器    761

    10.5  资源紧缺时的Pod驱逐机制    766

    10.5.1  驱逐时机    766

    10.5.2  驱逐阈值    767

    10.5.3  节点状态    768

    10.5.4  节点状态的振荡    769

    10.5.5  回收Node级别的资源    769

    10.5.6  驱逐用户的Pod  770

    10.5.7  资源最少回收量    771

    10.5.8  节点资源紧缺情况下的系统行为    772

    10.5.9  可调度的资源和驱逐策略实践    773

    10.5.10  现阶段的问题    773

    10.6  Pod Disruption Budget(主动驱逐保护)    774

    10.7  Kubernetes集群监控    778

    10.7.1  使用Metrics Server监控Node和Pod的CPU和内存使用数据    778

    10.7.2  Prometheus Grafana集群性能监控平台搭建    783

    10.8  Kubernetes集群日志管理    803

    10.8.1  容器应用和系统组件输出日志的各种场景    803

    10.8.2  Fluentd Elasticsearch Kibana日志系统部署    807

    10.8.3  部署日志采集sidecar工具采集容器日志    821

    10.9  Kubernetes的审计机制    822

    10.10  使用Web UI(Dashboard)管理集群    826

    10.11  Helm:Kubernetes应用包管理工具    839

    10.11.1  Helm的整体架构    840

    10.11.2  Helm版本说明    840

    10.11.3  Helm的安装    842

    10.11.4  Helm的使用    843

    10.11.5  Chart说明    857

    10.11.6  搭建私有Chart仓库    858

     

    第11章  Trouble Shooting指南    862

    11.1  查看系统Event 863

    11.2  查看容器日志    865

    11.3  查看Kubernetes服务日志    866

    11.4  常见问题    868

    11.4.1  由于无法下载pause镜像导致Pod一直处于Pending状态     868

    11.4.2  Pod创建成功,但RESTARTS数量持续增加     870

    11.4.3  通过服务名无法访问服务    871

    11.5  寻求帮助    872

     

    第12章  Kubernetes开发中的新功能    875

    12.1  对Windows容器的支持    876

    12.1.1  在Windows Server上安装Docker 876

    12.1.2  在Windows Server上部署Kubernetes Node组件    877

    12.1.3  在Windows Server上部署容器应用和服务    886

    12.1.4  Kubernetes支持的Windows容器特性、限制和发展趋势    892

    12.2  对GPU的支持    896

    12.2.1  环境准备    897

    12.2.2  在容器中使用GPU资源    900

    12.2.3  发展趋势    902

    12.3  Pod的垂直扩缩容    902

    12.3.1  VPA详解    903

    12.3.2  安装Vertical Pod Autoscaler 906

    12.3.3  为Pod设置垂直扩缩容    906

    12.3.4  注意事项    907

    12.4  Kubernetes生态系统与演进路线    908

    12.4.1  Kubernetes与CNCF  908

    12.4.2  Kubernetes的演进路线    910

    12.4.3  Kubernetes的开发模式    914

     

    附录A  Kubernetes核心服务配置详解    915
  • 内容简介:
    Kubernetes是由谷歌开源的容器集群管理系统,为容器化应用提供了资源调度、部署运行、服务发现、扩缩容等一整套功能。Kubernetes也是将“一切以服务(Service)为中心,一切围绕服务运转”作为指导思想的创新型产品,它的功能和架构设计自始至终地遵循了这一指导思想。构建在Kubernetes上的系统不仅可以独立运行在物理机、虚拟机集群或者企业私有云上,也可以被托管在公有云上。
      本书总计12章,分别讲解Kubernetes的基本概念、实践指南、核心原理、开发指南、网络与存储、运维指南、新特性演进等内容。全书图文并茂、内容丰富、由浅入深、讲解全面,并围绕在生产环境中可能出现的问题,给出了大量典型案例,比如安全配置方案、网络方案、共享存储方案、高可用方案及Trouble Shooting技巧等,有很强的实战指导意义。本书的内容也随着Kubernetes的版本更新不断完善,目前涵盖了Kubernetes从1.0到1.19版本的主要特性,努力为Kubernetes用户提供全方位的Kubernetes技术指南。
      无论是对于软件工程师、软件架构师、测试工程师、运维工程师、技术经理,还是对于资深IT人士,本书都极具参考价值。
  • 作者简介:
    龚正·

    HPE高级顾问,从事IT工作20余年,在云计算、大数据、大型企业级应用等领域有丰富的咨询规划、架构设计和实施经验,负责过多个大型云平台的规划和建设,是电信、金融、互联网等领域的资深专家,也是《Kubernetes权威指南:企业级容器云实战》等书的作者。

    吴治辉·

    HPE资深架构师,从事软件研发工作20余年,专注于电信软件和云计算方面的软件研发,有丰富的大型项目架构设计经验,是业界少有的具备很强编程能力的资深架构师,也是《ZeroC Ice权威指南》《架构解密:从分布式到微服务》《Kubernetes权威指南:企业级容器云实战》《区块链轻松上手》等书的作者。

    闫健勇·

    HPE高级项目经理、总架构师,从事电信行业系统建设工作20余年,主导了多项电信大型系统的架构设计和管理,对云计算和大数据在电信行业中的应用有丰富的经验,也是《Kubernetes权威指南:企业级容器云实战》等书的作者。
  • 目录:
    第1章  Kubernetes入门    1

    1.1  了解Kubernetes  2

    1.2  为什么要用Kubernetes  5

    1.3  从一个简单的例子开始    7

    1.3.1  环境准备    8

    1.3.2  启动MySQL服务    8

    1.3.3  启动Tomcat应用    11

    1.3.4  通过浏览器访问网页    12

    1.4  Kubernetes的基本概念和术语    14

    1.4.1  资源对象概述    14

    1.4.2  集群类    15

    1.4.3  应用类    19

    1.4.4  存储类    40

    1.4.5  安全类    44

     

    第2章  Kubernetes安装配置指南    47

    2.1  系统要求    48

    2.2  使用kubeadm工具快速安装Kubernetes集群    49

    2.2.1  安装kubeadm   50

    2.2.2  修改kubeadm的默认配置    50

    2.2.3  下载Kubernetes的相关镜像    51

    2.2.4  运行kubeadm init命令安装Master节点    52

    2.2.5  将新的Node加入集群    57

    2.2.6  安装CNI网络插件    59

    2.2.7  验证Kubernetes集群是否工作正常    60

    2.3  以二进制文件方式安装Kubernetes安全高可用集群    61

    2.3.1  Master高可用部署架构    61

    2.3.2  创建CA根证书    62

    2.3.3  部署安全的etcd高可用集群    63

    2.3.4  部署安全的Kubernetes Master高可用集群    68

    2.3.5  部署Node的服务    85

    2.3.6  kube-apiserver基于token的认证机制    89

    2.4  使用私有镜像库的相关配置    90

    2.5  Kubernetes的版本升级    91

    2.5.1  二进制文件升级    91

    2.5.2  使用kubeadm进行集群升级    92

    2.6  CRI(容器运行时接口)详解    94

    2.6.1  CRI概述    94

    2.6.2  CRI的主要组件    94

    2.6.3  Pod和容器的生命周期管理    95

    2.6.4  面向容器级别的设计思路    96

    2.6.5  尝试使用新的Docker-CRI来创建容器    97

    2.6.6  CRI的进展    98

    2.7  kubectl命令行工具用法详解    98

    2.7.1  kubectl用法概述    99

    2.7.2  kubectl子命令详解    99

    2.7.3  kubectl可操作的资源对象详解    103

    2.7.4  kubectl的公共参数说明    105

    2.7.5  kubectl格式化输出    106

    2.7.6  kubectl常用操作示例    108

     

    第3章  深入掌握Pod  113

    3.1  Pod定义详解    114

    3.2  Pod的基本用法    120

    3.3  静态Pod  125

    3.4  Pod容器共享Volume  126

    3.5  Pod的配置管理    129

    3.5.1  ConfigMap概述    129

    3.5.2  创建ConfigMap资源对象    129

    3.5.3  在Pod中使用ConfigMap  137

    3.5.4  使用ConfigMap的限制条件    143

    3.6  在容器内获取Pod信息(Downward API)    144

    3.6.1  环境变量方式    144

    3.6.2  Volume挂载方式    148

    3.6.3  Downward API支持设置的Pod和Container信息    153

    3.7  Pod生命周期和重启策略    154

    3.8  Pod健康检查和服务可用性检查    155

    3.9  玩转Pod调度    159

    3.9.1  Deployment或RC:全自动调度    162

    3.9.2  NodeSelector:定向调度    163

    3.9.3  NodeAffinity:Node亲和性调度    165

    3.9.4  PodAffinity:Pod亲和与互斥调度策略    167

    3.9.5  Taints和Tolerations(污点和容忍)    171

    3.9.6  Pod Priority Preemption:Pod优先级调度    176

    3.9.7  DaemonSet:在每个Node上都调度一个Pod  178

    3.9.8  Job:批处理调度    181

    3.9.9  Cronjob:定时任务    185

    3.9.10  自定义调度器    188

    3.9.11  Pod容灾调度    190

    3.10  Init Container(初始化容器)    192

    3.11  Pod的升级和回滚    196

    3.11.1  Deployment的升级    196

    3.11.2  Deployment的回滚    203

    3.11.3  暂停和恢复Deployment的部署操作    205

    3.11.4  其他管理对象的更新策略    207

    3.12  Pod的扩缩容    209

    3.12.1  手动扩缩容机制    209

    3.12.2  自动扩缩容机制    211

    3.13  使用StatefulSet搭建MongoDB集群    233

    3.13.1  前提条件    234

    3.13.2  部署StatefulSet 234

    3.13.3  查看MongoDB集群的状态    238

    3.13.4  StatefulSet的常见应用场景    241

     

    第4章  深入掌握Service  245

    4.1  Service定义详解    246

    4.2  Service的概念和原理    248

    4.2.1  Service的概念    248

    4.2.2  Service的负载均衡机制    252

    4.2.3  Service的多端口设置    254

    4.2.4  将外部服务定义为Service  256

    4.2.5  将Service暴露到集群外部    257

    4.2.6  Service支持的网络协议    260

    4.2.7  Kubernetes的服务发现机制    261

    4.2.8  Headless Service的概念和应用    263

    4.2.9  端点分片与服务拓扑    265

    4.3  DNS服务搭建和配置指南    274

    4.3.1  修改每个Node上kubelet的DNS启动参数    276

    4.3.2  部署CoreDNS服务    276

    4.3.3  服务名的DNS解析    280

    4.3.4  CoreDNS的配置说明    282

    4.4  Node本地DNS缓存    284

    4.5  Pod的DNS域名相关特性    291

    4.5.1  Pod的DNS域名    291

    4.5.2  为Pod自定义hostname和subdomain  292

    4.5.3  Pod的DNS策略    294

    4.5.4  Pod中的自定义DNS配置    295

    4.6  Ingress 7层路由机制    297

    4.6.1  一个完整的例子(Ingress Controller Ingress策略 客户端访问)    298

    4.6.2  Ingress资源对象详解    309

    4.6.3  Ingress策略配置详解    315

    4.6.4  Ingress的TLS安全设置    319

     

    第5章  核心组件的运行机制    326

    5.1  Kubernetes API Server原理解析    327

    5.1.1  Kubernetes API Server概述    327

    5.1.2  API Server架构解析    330

    5.1.3  独特的Kubernetes Proxy API接口    335

    5.1.4  集群功能模块之间的通信    336

    5.1.5  API Server网络隔离的设计    338

    5.2  Controller Manager原理解析    339

    5.2.1  副本调度控制器    340

    5.2.2  Node Controller 342

    5.2.3  ResourceQuota Controller 343

    5.2.4  Namespace Controller 345

    5.2.5  Service Controller与Endpoints Controller 345

    5.3  Scheduler原理解析    346

    5.3.1  Scheduler的调度流程    347

    5.3.2  Scheduler Framework  349

    5.3.3  多调度器特性    351

    5.4  kubelet运行机制解析    352

    5.4.1  节点管理    352

    5.4.2  Pod管理    353

    5.4.3  容器健康检查    354

    5.4.4  cAdvisor资源监控    355

    5.4.5  容器运行时    357

    5.5  kube-proxy运行机制解析    359

    5.5.1  第一代Proxy  360

    5.5.2  第二代Proxy  361

    5.5.2  第三代Proxy  362

     

    第6章  深入分析集群安全机制    364

    6.1  API Server认证管理    365

    6.1.1  HTTPS证书认证    366

    6.1.2  HTTP Bearer Token认证    367

    6.1.3  OpenID Connect Token第三方认证    368

    6.1.4  Authenticating Proxy(认证代理)    372

    6.2  API Server授权管理    373

    6.2.1  ABAC授权模式详解    374

    6.2.2  Webhook授权模式详解    377

    6.2.3  RBAC授权模式详解    380

    6.2.4  Node授权模式详解    405

    6.3  Admission Control 406

    6.4  Service Account 410

    6.5  Secret私密凭据    415

    6.6  Pod安全策略    419

    6.6.1  PodSecurityPolicy的工作机制    419

    6.6.2  PodSecurityPolicy配置详解    421

    6.6.3  PodSecurityPolicy策略示例    427

    6.6.4  PodSecurityPolicy的RBAC授权    431

    6.6.5  Pod安全设置(Security Context)详解    436

     

    第7章  网络原理    445

    7.1  Kubernetes网络模型    446

    7.2  Docker网络基础    448

    7.2.1  网络命名空间    448

    7.2.2  Veth设备对    451

    7.2.3  网桥    454

    7.2.4  iptables和Netfilter 456

    7.2.5  路由    459

    7.3  Docker的网络实现    461

    7.3.1  查看Docker启动后的系统情况    463

    7.3.2  查看容器启动后的网络配置(容器无端口映射)    465

    7.3.3  查看容器启动后的网络配置(容器有端口映射)    468

    7.3.4  Docker的网络局限性    469

    7.4  Kubernetes的网络实现    470

    7.4.1  容器到容器的通信    470

    7.4.2  Pod之间的通信    471

    7.5  Pod和Service网络实战    474

    7.5.1  部署一个RC/Pod  476

    7.5.2  发布一个服务    481

    7.6  CNI网络模型    489

    7.6.1  CNM网络模型简介    489

    7.6.2  CNI网络模型详解    490

    7.6.3  在Kubernetes中使用网络插件    507

    7.7  开源容器网络方案    508

    7.7.1  Flannel插件的原理和部署示例    508

    7.7.2  Open vSwitch插件的原理和部署示例    513

    7.7.3  直接路由的原理和部署示例    518

    7.7.4  Calico插件的原理和部署示例    521

    7.8  Kubernetes的网络策略    541

    7.8.1  网络策略设置说明    542

    7.8.2  Selector功能说明    544

    7.8.3  为命名空间配置默认的网络策略    545

    7.8.4  网络策略应用示例    547

    7.8.5  NetworkPolicy的发展    550

    7.9  Kubernetes对IPv4和IPv6双栈的支持    551

    7.9.1  为Kubernetes集群启用IPv4和IPv6双栈    551

    7.9.2  Pod双栈IP地址验证    554

    7.9.3  Service双栈IP地址验证    557

     

    第8章  存储原理和应用    560

    8.1  Kubernetes存储机制概述    561

    8.1.1  将资源对象映射为存储卷    562

    8.1.2  Node本地存储卷    569

    8.2  持久卷(Persistent Volume)详解    573

    8.2.1  PV和PVC的工作原理    574

    8.2.2  PV详解    581

    8.2.3  PVC详解    587

    8.2.4  Pod使用PVC   589

    8.2.5  StorageClass详解    593

    8.3  动态存储管理实战:GlusterFS  600

    8.3.1  准备工作    600

    8.3.2  创建GlusterFS管理服务容器集群    600

    8.3.3  创建Heketi服务    603

    8.3.4  通过Heketi管理GlusterFS集群    607

    8.3.5  定义StorageClass  610

    8.3.6  定义PVC   610

    8.3.7  Pod使用PVC的存储资源    613

    8.4  CSI存储机制详解    614

    8.4.1  CSI的设计背景    614

    8.4.2  CSI的核心组件和部署架构    615

    8.4.3  CSI存储插件应用实战    617

    8.4.4  CSI存储快照管理    632

    8.4.5  CSI的发展    638

     

    第9章  Kubernetes开发指南    647

    9.1  REST简述    648

    9.2  Kubernetes API详解    650

    9.2.1  Kubernetes API概述    650

    9.2.2  Kubernetes API版本的演进策略    658

    9.2.3  API Groups(API组)    658

    9.2.4  API REST的方法说明    661

    9.2.5  API Server响应说明    663

    9.3  使用Fabric8访问Kubernetes API 665

    9.3.1  具体应用示例    666

    9.3.2  其他客户端库    679

    9.4  Kubernetes API的扩展    680

    9.4.1  使用CRD扩展API资源    681

    9.4.2  使用API聚合机制扩展API资源    692

     

    第10章  Kubernetes运维管理    702

    10.1  Node管理    703

    10.1.1  Node的隔离与恢复    703

    10.1.2  Node的扩容    704

    10.2  更新资源对象的Label 705

    10.3  Namespace:集群环境共享与隔离    706

    10.3.1  创建Namespace  706

    10.3.2  定义Context 707

    10.3.3  设置工作组在特定Context中工作    708

    10.4  Kubernetes资源管理    710

    10.4.1  计算资源管理    712

    10.4.2  资源配置范围管理(LimitRange)    722

    10.4.3  资源服务质量管理(Resource QoS)    730

    10.4.4  资源配额管理(Resource Quotas)    738

    10.4.5  ResourceQuota和LimitRange实践    744

    10.4.6  Pod中多个容器共享进程命名空间    754

    10.4.7  PID资源管理    757

    10.4.8  节点的CPU管理策略    757

    10.4.9  拓扑管理器    761

    10.5  资源紧缺时的Pod驱逐机制    766

    10.5.1  驱逐时机    766

    10.5.2  驱逐阈值    767

    10.5.3  节点状态    768

    10.5.4  节点状态的振荡    769

    10.5.5  回收Node级别的资源    769

    10.5.6  驱逐用户的Pod  770

    10.5.7  资源最少回收量    771

    10.5.8  节点资源紧缺情况下的系统行为    772

    10.5.9  可调度的资源和驱逐策略实践    773

    10.5.10  现阶段的问题    773

    10.6  Pod Disruption Budget(主动驱逐保护)    774

    10.7  Kubernetes集群监控    778

    10.7.1  使用Metrics Server监控Node和Pod的CPU和内存使用数据    778

    10.7.2  Prometheus Grafana集群性能监控平台搭建    783

    10.8  Kubernetes集群日志管理    803

    10.8.1  容器应用和系统组件输出日志的各种场景    803

    10.8.2  Fluentd Elasticsearch Kibana日志系统部署    807

    10.8.3  部署日志采集sidecar工具采集容器日志    821

    10.9  Kubernetes的审计机制    822

    10.10  使用Web UI(Dashboard)管理集群    826

    10.11  Helm:Kubernetes应用包管理工具    839

    10.11.1  Helm的整体架构    840

    10.11.2  Helm版本说明    840

    10.11.3  Helm的安装    842

    10.11.4  Helm的使用    843

    10.11.5  Chart说明    857

    10.11.6  搭建私有Chart仓库    858

     

    第11章  Trouble Shooting指南    862

    11.1  查看系统Event 863

    11.2  查看容器日志    865

    11.3  查看Kubernetes服务日志    866

    11.4  常见问题    868

    11.4.1  由于无法下载pause镜像导致Pod一直处于Pending状态     868

    11.4.2  Pod创建成功,但RESTARTS数量持续增加     870

    11.4.3  通过服务名无法访问服务    871

    11.5  寻求帮助    872

     

    第12章  Kubernetes开发中的新功能    875

    12.1  对Windows容器的支持    876

    12.1.1  在Windows Server上安装Docker 876

    12.1.2  在Windows Server上部署Kubernetes Node组件    877

    12.1.3  在Windows Server上部署容器应用和服务    886

    12.1.4  Kubernetes支持的Windows容器特性、限制和发展趋势    892

    12.2  对GPU的支持    896

    12.2.1  环境准备    897

    12.2.2  在容器中使用GPU资源    900

    12.2.3  发展趋势    902

    12.3  Pod的垂直扩缩容    902

    12.3.1  VPA详解    903

    12.3.2  安装Vertical Pod Autoscaler 906

    12.3.3  为Pod设置垂直扩缩容    906

    12.3.4  注意事项    907

    12.4  Kubernetes生态系统与演进路线    908

    12.4.1  Kubernetes与CNCF  908

    12.4.2  Kubernetes的演进路线    910

    12.4.3  Kubernetes的开发模式    914

     

    附录A  Kubernetes核心服务配置详解    915
查看详情
12
相关图书 / 更多
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
Kubernetes实战:构建生产级应用平台
[美]约翰·哈里斯 著;[美]乔希·罗索;[美]里奇·兰德;[美]亚历山大·布兰德
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
Kubernetes修炼手册
[英]奈吉尔·波尔顿(Nigel Poulton)
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
Kubernetes操作器
[美]詹森·多比斯(Jason Dobies);[美]约书亚·伍德(Joshua Wood);马晶慧
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
Kubernetes编程
[美]迈克尔·豪森布拉斯(Michael Hausenblas) 著;李凡希、任震宇 译
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
Kubernetes原生微服务开发
肯·芬尼根(Ken Finnigan)著 陈计节 张圣奇 译;[美]约翰·克林甘(John Clingan)
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
Kubernetes快速进阶与实战
艾叔
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
Kubernetes从入门到DevOps企业应用实战
韩先超
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
Kubernetes Operator开发进阶
胡涛(Daniel Hu) 编著
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
Kubernetes快速入门
[英]奈吉尔·波尔顿(Nigel Poulton)
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
Kubeflow学习指南:生产级机器学习系统实现
[美]特雷弗·格兰特 (加)霍尔顿·卡劳 (俄)鲍里斯·卢布林斯基 (美)理查德·刘 (美)伊兰·菲洛年科
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
Kubernetes即学即用(第二版)
布兰登·柏恩思;乔·贝达;凯尔西·海托华;马晶慧
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
Kubernetes零基础快速入门
张春晓
您可能感兴趣 / 更多
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
康复医学(供临床医学、康复治疗学、中医学、针灸推拿学、护理等专业使用)
龚正寿 编
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
雨花忠魂-雨花英烈系列纪实文学-任凭风吹雨打:罗登贤烈士转
龚正
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
旅游法律法规精读本
龚正 著
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第4版)
龚正 著
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
英雄小八路(电影彩色阅读本)/少年小英雄系列
龚正明<原、严锴 著
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
体育文史哲钩沉
龚正伟;蔡广;宋宗佩;李政
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
化学课程中的科学过程技能研究
龚正元 著;王祖浩 编
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
云南蚊类志
龚正达 编著;董学 书;周红宁
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
数据库技术与应用
龚正良 编;史令;刘江
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
3ds max8完全手册
龚正伟 编
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
Photoshop7.0全方位突破
龚正伟 著;吴洪亮 编
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)
Flash 5.0实用教程
龚正伟 编