《Kubernetes进阶实战》是一本内容丰富、图文并茂的权威书籍。本书以高清图文为主,系统而全面地介绍了Kubernetes容器编排工具的进阶应用与实践。无论您是初学者还是资深用户,都能在本书中找到实用的技巧和策略,帮助您更好地应对容器化部署的挑战。书中深入探讨了Kubernetes的强大功能与高效管理,通过具体案例和操作实例,帮助读者更好地理解和掌握Kubernetes的使用技巧。无论是搭建集群、部署应用还是管理监控,本书都提供了详细的步骤和实际操作指导,让读者能够迅速上手并运用到实际工作中。本书是一本难得的指导手册,可以帮助读者提升容器化技术水平,掌握Kubernetes的核心能力。无论您是初学者还是进阶者,都会受益匪浅。
Kubernetes进阶实战 电子书封面
内容介绍
全书分为3篇。第壹篇详细讲解Kubernetes系统基础架构及核心概述,并提供一个Kubernetes快速部署和应用的入门指南。第二篇剖析分Kubernetes系统的核心组件,对Pod、Controller、Service、Network Policy、Volume、ConfigMap和Secret等都有着深入讲解。第三篇主要关注实际应用,以DevOps为主线讲解Kubernetes在企业落地应用的解决方案示例。
目录
- 前言
- 第1章Kubernetes系统基础 1
- 1.1容器技术概述 1
- 1.1.1容器技术的功用 2
- 1.1.2容器简史 3
- 1.1.3Docker的功能限制 4
- 1.2Kubernetes概述 4
- 1.2.1Kubernetes简史 4
- 1.2.2Kubernetes特性 5
- 1.2.3Kubernetes概念和术语 6
- 1.3Kubernetes集群组件 10
- 1.3.1Master组件 10
- 1.3.2Node组件 12
- 1.3.3核心附件 13
- 1.4Kubernetes网络模型基础 13
- 1.4.1网络模型概述 13
- 1.4.2集群上的网络通信 15
- 1.5本章小结 16
- 第2章Kubernetes快速入门 17
- 2.1Kubernetes的核心对象 17
- 2.1.1Pod资源对象 18
- 2.1.2Controller 19
- 2.1.3Service 20
- 2.1.4部署应用程序的主体过程 21
- 2.2部署Kubernetes集群 22
- 2.2.1kubeadm部署工具 22
- 2.2.2集群运行模式 24
- 2.2.3准备用于实践操作的集群环境 25
- 2.2.4获取集群环境相关的信息 26
- 2.3kubectl使用基础与示例 26
- 2.4命令式容器应用编排 29
- 2.4.1部署应用(Pod) 30
- 2.4.2探查Pod及应用详情 33
- 2.4.3部署Service对象 36
- 2.4.4扩容和缩容 38
- 2.4.5修改及删除对象 40
- 2.5本章小结 41
- 第3章资源管理基础 42
- 3.1资源对象及API群组 42
- 3.1.1Kubernetes的资源对象 43
- 3.1.2资源及其在API中的组织形式 46
- 3.1.3访问Kubernetes REST API 48
- 3.2对象类资源格式 49
- 3.2.1资源配置清单 50
- 3.2.2metadata嵌套字段 51
- 3.2.3spec和status字段 52
- 3.2.4资源配置清单格式文档 53
- 3.2.5资源对象管理方式 54
- 3.3kubectl命令与资源管理 56
- 3.3.1资源管理操作概述 56
- 3.3.2kubectl的基本用法 57
- 3.4管理名称空间资源 59
- 3.4.1查看名称空间及其资源对象 60
- 3.4.2管理Namespace资源 61
- 3.5Pod资源的基础管理操作 61
- 3.5.1陈述式对象配置管理方式 62
- 3.5.2声明式对象配置管理方式 64
- 3.6本章小结 65
- 第4章管理Pod资源对象 66
- 4.1容器与Pod资源对象 66
- 4.2管理Pod对象的容器 68
- 4.2.1镜像及其获取策略 69
- 4.2.2暴露端口 70
- 4.2.3自定义运行的容器化应用 71
- 4.2.4环境变量 72
- 4.2.5共享节点的网络名称空间 73
- 4.2.6设置Pod对象的安全上下文 74
- 4.3标签与标签选择器 75
- 4.3.1标签概述 75
- 4.3.2管理资源标签 77
- 4.3.3标签选择器 78
- 4.3.4Pod节点选择器nodeSelector 79
- 4.4资源注解 80
- 4.4.1查看资源注解 81
- 4.4.2管理资源注解 82
- 4.5Pod对象的生命周期 82
- 4.5.1Pod的相位 82
- 4.5.2Pod的创建过程 83
- 4.5.3Pod生命周期中的重要行为 84
- 4.5.4容器的重启策略 87
- 4.5.5Pod的终止过程 87
- 4.6Pod存活性探测 88
- 4.6.1设置exec探针 89
- 4.6.2设置HTTP探针 90
- 4.6.3设置TCP探针 92
- 4.6.4存活性探测行为属性 93
- 4.7Pod就绪性探测 94
- 4.8资源需求及资源限制 96
- 4.8.1资源需求 96
- 4.8.2资源限制 98
- 4.8.3容器的可见资源 99
- 4.8.4Pod的服务质量类别 100
- 4.9本章小结 101
- 第5章Pod控制器 103
- 5.1关于Pod控制器 103
- 5.1.1Pod控制器概述 104
- 5.1.2控制器与Pod对象 105
- 5.1.3Pod模板资源 106
- 5.2ReplicaSet控制器 106
- 5.2.1ReplicaSet概述 107
- 5.2.2创建ReplicaSet 108
- 5.2.3ReplicaSet管控下的Pod对象 109
- 5.2.4更新ReplicaSet控制器 111
- 5.2.5删除ReplicaSet控制器资源 114
- 5.3Deployment控制器 114
- 5.3.1创建Deployment 115
- 5.3.2更新策略 116
- 5.3.3升级Deployment 119
- 5.3.4金丝雀发布 121
- 5.3.5回滚Deployment控制器下的应用发布 123
- 5.3.6扩容和缩容 123
- 5.4DaemonSet控制器 124
- 5.4.1创建DaemonSet资源对象 124
- 5.4.2更新DaemonSet对象 126
- 5.5Job控制器 127
- 5.5.1创建Job对象 128
- 5.5.2并行式Job 129
- 5.5.3Job扩容 130
- 5.5.4删除Job 130
- 5.6CronJob控制器 131
- 5.6.1创建CronJob对象 131
- 5.6.2CronJob的控制机制 132
- 5.7ReplicationController 133
- 5.8Pod中断预算 133
- 5.9本章小结 134
- 第6章Service和Ingress 136
- 6.1Service资源及其实现模型 136
- 6.1.1Service资源概述 136
- 6.1.2虚拟IP和服务代理 138
- 6.2Service资源的基础应用 140
- 6.2.1创建Service资源 140
- 6.2.2向Service对象请求服务 141
- 6.2.3Service会话粘性 142
- 6.3服务发现 143
- 6.3.1服务发现概述 143
- 6.3.2服务发现方式:环境变量 145
- 6.3.3ClusterDNS和服务发现 146
- 6.3.4服务发现方式:DNS 146
- 6.4服务暴露 147
- 6.4.1Service类型 147
- 6.4.2NodePort类型的Service资源 149
- 6.4.3LoadBalancer类型的Service资源 150
- 6.4.4ExternalName Service 151
- 6.5Headless类型的Service资源 152
- 6.5.1创建Headless Service资源 153
- 6.5.2Pod资源发现 153
- 6.6Ingress资源 154
- 6.6.1Ingress和Ingress Controller 154
- 6.6.2创建Ingress资源 155
- 6.6.3Ingress资源类型 157
- 6.6.4部署Ingress控制器(Nginx) 159
- 6.7案例:使用Ingress发布tomcat 161
- 6.7.1准备名称空间 161
- 6.7.2部署tomcat实例 162
- 6.7.3创建Service资源 163
- 6.7.4创建Ingress资源 164