查看原文
其他

新书推荐 |《Kubernetes进阶实战》

新书推荐

《Kubernetes进阶实战》

长按二维码
了解及购买


基于Kubernetes1.12,重点话题全面覆盖,具备大量实操案例,提供代码下载及配置清单


编辑推荐


1. 马哥教育CEO马哥(马永亮)撰写,渐进式铺陈,适合入门与进阶 


2. 涵盖Kubernetes架构、部署、核心/自定义资源、扩缩容、存储卷、网络插件与策略、安全、调度策略、监控、日志等话题 


3. 渐进式讲解,手把手示范,大量实操案例,随时动手验证


内容简介


本书涵盖Kubernetes架构、部署、核心资源类型、系统扩缩容、存储卷、网络插件与网络策略、安全(认证、授权与准入控制等)、自定义资源、监控与日志系统等话题,大量实操案例,随时动手验证。概括来说,本书内容从逻辑上分为5部分。


第一部分详细讲解Kubernetes系统基础架构及核心概念,并提供快速部署和应用入门指南。第二部分深度剖析Kubernetes系统核心组件与应用,帮助读者解决日常业务应用问题。第三部分介绍存储卷及StatefulSet控制器。第四部分介绍安全相关的的话题,为容器应用提供配置信息与敏感信息的方式,动态扩缩容与更新机制等。第五部分介绍Kubernetes系统调度策略、自定义资源类型和自定义资源、监控系统等高级话题。


作者简介


马哥(马永亮),北京马哥教育科技有限公司创始人兼CEO,泛Linux运维技术及云计算技术培训先驱者和引领者,10年间累计直接培养业内Linux运维从业人员近万人,录制的相关领域的系列视频播放量500万人次以上。熟悉泛Linux云计算、高并发架构、运维自动化、DevOps和容器及容器编排等领域相关技术应用。


目录


前言


第1章 Kubernetes系统基础  1

1.1 容器技术概述  1

1.1.1 容器技术的功用  2

1.1.2 容器简史  3

1.1.3 Docker的功能限制  4

1.2 Kubernetes概述  4

1.2.1 Kubernetes简史  4

1.2.2 Kubernetes特性  5

1.2.3 Kubernetes概念和术语  6

1.3 Kubernetes集群组件  10

1.3.1 Master组件  10

1.3.2 Node组件  12

1.3.3 核心附件  13

1.4 Kubernetes网络模型基础  13

1.4.1 网络模型概述  13

1.4.2 集群上的网络通信  15

1.5 本章小结  16


第2章 Kubernetes快速入门  17

2.1 Kubernetes的核心对象  17

2.1.1 Pod资源对象  18

2.1.2 Controller  19

2.1.3 Service  20

2.1.4 部署应用程序的主体过程  21

2.2 部署Kubernetes集群  22

2.2.1 kubeadm部署工具  22

2.2.2 集群运行模式  24

2.2.3 准备用于实践操作的集群环境  25

2.2.4 获取集群环境相关的信息  26

2.3 kubectl使用基础与示例  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.1 Kubernetes的资源对象  43

3.1.2 资源及其在API中的组织形式  46

3.1.3 访问Kubernetes REST API  48

3.2 对象类资源格式  49

3.2.1 资源配置清单  50

3.2.2 metadata嵌套字段  51

3.2.3 spec和status字段  52

3.2.4 资源配置清单格式文档  53

3.2.5 资源对象管理方式  54

3.3 kubectl命令与资源管理  56

3.3.1 资源管理操作概述  56

3.3.2 kubectl的基本用法  57

3.4 管理名称空间资源  59

3.4.1 查看名称空间及其资源对象  60

3.4.2 管理Namespace资源  61

3.5 Pod资源的基础管理操作  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.4 Pod节点选择器nodeSelector  79

4.4 资源注解  80

4.4.1 查看资源注解  81

4.4.2 管理资源注解  82

4.5 Pod对象的生命周期  82

4.5.1 Pod的相位  82

4.5.2 Pod的创建过程  83

4.5.3 Pod生命周期中的重要行为  84

4.5.4 容器的重启策略  87

4.5.5 Pod的终止过程  87

4.6 Pod存活性探测  88

4.6.1 设置exec探针  89

4.6.2 设置HTTP探针  90

4.6.3 设置TCP探针  92

4.6.4 存活性探测行为属性  93

4.7 Pod就绪性探测  94

4.8 资源需求及资源限制  96

4.8.1 资源需求  96

4.8.2 资源限制  98

4.8.3 容器的可见资源  99

4.8.4 Pod的服务质量类别  100

4.9 本章小结  101


第5章 Pod控制器  103

5.1 关于Pod控制器  103

5.1.1 Pod控制器概述  104

5.1.2 控制器与Pod对象  105

5.1.3 Pod模板资源  106

5.2 ReplicaSet控制器  106

5.2.1 ReplicaSet概述  107

5.2.2 创建ReplicaSet  108

5.2.3 ReplicaSet管控下的Pod对象  109

5.2.4 更新ReplicaSet控制器  111

5.2.5 删除ReplicaSet控制器资源  114

5.3 Deployment控制器  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.4 DaemonSet控制器  124

5.4.1 创建DaemonSet资源对象  124

5.4.2 更新DaemonSet对象  126

5.5 Job控制器  127

5.5.1 创建Job对象  128

5.5.2 并行式Job  129

5.5.3 Job扩容  130

5.5.4 删除Job  130

5.6 CronJob控制器  131

5.6.1 创建CronJob对象  131

5.6.2 CronJob的控制机制  132

5.7 ReplicationController  133

5.8 Pod中断预算  133

5.9 本章小结  134


第6章 Service和Ingress  136

6.1 Service资源及其实现模型  136

6.1.1 Service资源概述  136

6.1.2 虚拟IP和服务代理  138

6.2 Service资源的基础应用  140

6.2.1 创建Service资源  140

6.2.2  向Service对象请求服务  141

6.2.3 Service会话粘性  142

6.3 服务发现  143

6.3.1 服务发现概述  143

6.3.2 服务发现方式:环境变量  145

6.3.3 ClusterDNS和服务发现  146

6.3.4 服务发现方式:DNS  146

6.4 服务暴露  147

6.4.1 Service类型  147

6.4.2 NodePort类型的Service资源  149

6.4.3 LoadBalancer类型的Service资源  150

6.4.4 ExternalName Service  151

6.5 Headless类型的Service资源  152

6.5.1 创建Headless Service资源  153

6.5.2 Pod资源发现  153

6.6 Ingress资源  154

6.6.1 Ingress和Ingress Controller  154

6.6.2 创建Ingress资源  155

6.6.3 Ingress资源类型  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

6.7.5 配置TLS Ingress资源  165

6.8 本章小结  168


第7章 存储卷与数据持久化  169

7.1 存储卷概述  169

7.1.1 Kubernetes支持的存储卷类型  170

7.1.2 存储卷的使用方式  171

7.2 临时存储卷  172

7.2.1 emptyDir存储卷  172

7.2.2 gitRepo存储卷  175

7.3 节点存储卷hostPath  176

7.4 网络存储卷  178

7.4.1 NFS存储卷  178

7.4.2 RBD存储卷  180

7.4.3 GlusterFS存储卷  182

7.4.4 Cinder存储卷  183

7.5 持久存储卷  184

7.5.1 创建PV  186

7.5.2 创建PVC  188

7.5.3 在Pod中使用PVC  190

7.5.4 存储类  191

7.5.5 PV和PVC的生命周期  194

7.6 downwardAPI存储卷  196

7.6.1 环境变量式元数据注入  197

7.6.2 存储卷式元数据注入  199

7.7 本章小结  201


第8章 配置容器应用:Conf?igMap和Secret  202

8.1 容器化应用配置方式  202

8.2 通过命令行参数配置容器应用  204

8.3 利用环境变量配置容器应用  206

8.4 应用程序配置管理及Conf?igMap资源  208

8.4.1 创建Conf?igMap对象  209

8.4.2 向Pod环境变量传递Conf?igMap对象键值数据  212

8.4.3 Conf?igMap存储卷  215

8.4.4 容器应用重载新配置  219

8.4.5 使用Conf?igMap资源的注意事项  220

8.5 Secret资源  221

8.5.1 Secret概述  221

8.5.2 创建Secret资源  222

8.5.3 Secret存储卷  224

8.5.4 imagePullSecret资源对象  225

8.6 本章小结  226


第9章 StatefulSet控制器  227

9.1 StatefulSet概述  227

9.1.1 Stateful应用和Stateless应用  227

9.1.2 StatefulSet控制器概述  228

9.1.3 StatefulSet的特性  230

9.2 StatefulSet基础应用  231

9.2.1 创建StatefulSet对象  232

9.2.2 Pod资源标识符及存储卷  234

9.3 StatefulSet资源扩缩容  237

9.4 StatefulSet资源升级  238

9.4.1 滚动更新  238

9.4.2 暂存更新操作  239

9.4.3 金丝雀部署  240

9.4.4 分段更新  241

9.4.5 其他话题  241

9.5 案例:etcd集群  242

9.5.1 创建Service资源  242

9.5.2 etcd StatefulSet  243

9.6 本章小结  247


第10章 认证、授权与准入控制  248

10.1 访问控制概述  248

10.1.1 用户账户与用户组  249

10.1.2 认证、授权与准入控制基础  250

10.2 服务账户管理与应用  253

10.2.1 Service Account自动化  253

10.2.2 创建服务账户  255

10.2.3 调用imagePullSecret资源对象  256

10.3 X.509数字证书认证  256

10.3.1 Kubernetes中的SSL/TLS认证  257

10.3.2 客户端配置文件kubeconf?ig  259

10.3.3 TLS bootstrapping机制  262

10.4 基于角色的访问控制:RBAC  263

10.4.1 RBAC授权插件  264

10.4.2 Role和RoleBinding  266

10.4.3 ClusterRole和ClusterRoleBin-ding  269

10.4.4 聚合型ClusterRole  271

10.4.5 面向用户的内建ClusterRole  273

10.4.6 其他的内建ClusterRole和ClusterRoleBinding  274

10.5 Kubernetes Dashboard  275

10.5.1 部署HTTPS通信的Dashboard  275

10.5.2 配置token认证  277

10.5.3 配置kubeconf?ig认证  277

10.6 准入控制器与应用示例  279

10.6.1 LimitRange资源与LimitRanger准入控制器  279

10.6.2 ResourceQuota资源与准入控制器  281

10.6.3 PodSecurityPolicy  283

10.7 本章小结  288


第11章 网络模型与网络策略  289

11.1 Kubernetes网络模型及CNI插件  289

11.1.1 Docker容器的网络模型  289

11.1.2 Kubernetes网络模型  291

11.1.3 Pod网络的实现方式  293

11.1.4 CNI插件及其常见的实现  295

11.2 f?lannel网络插件  297

11.2.1 f?lannel的配置参数  297

11.2.2 VxLAN后端和direct routing  298

11.2.3 host-gw后端  301

11.3 网络策略  302

11.3.1 网络策略概述  302

11.3.2 部署Canal提供网络策略功能  303

11.3.3 配置网络策略  305

11.3.4 管控入站流量  306

11.3.5 管控出站流量  308

11.3.6 隔离名称空间  310

11.3.7 网络策略应用案例  311

11.4 Calico网络插件  315

11.4.1 Calico工作特性  316

11.4.2 Calico系统架构  318

11.4.3 Calico部署要点  320

11.4.4 部署Calico提供网络服务和网络策略  321

11.4.5 客户端工具calicoctl  324

11.5 本章小结  325


第12章 Pod资源调度  326

12.1 Kubernetes调度器概述  326

12.1.1 常用的预选策略  327

12.1.2 常用的优选函数  330

12.2 节点亲和调度  332

12.2.1 节点硬亲和性  332

12.2.2 节点软亲和性  335

12.3 Pod资源亲和调度  337

12.3.1 位置拓扑  338

12.3.2 Pod硬亲和调度  338

12.3.3 Pod软亲和调度  341

12.3.4 Pod反亲和调度  342

12.4 污点和容忍度  343

12.4.1 定义污点和容忍度  344

12.4.2 管理节点的污点  345

12.4.3 Pod对象的容忍度  346

12.4.4 问题节点标识  347

12.5 Pod优选级和抢占式调度  347

12.6 本章小结  348


第13章 Kubernetes系统扩展  349

13.1 自定义资源类型(CRD)  349

13.1.1 创建CRD对象  350

13.1.2 自定义资源格式验证  351

13.1.3 子资源  353

13.1.4 使用资源类别  355

13.1.5 多版本支持  355

13.1.6 自定义控制器基础  356

13.2 自定义API Server  359

13.2.1 自定义API Server概述  359

13.2.2 APIService对象  360

13.3 Kubernetes集群高可用  361

13.3.1 etcd高可用  362

13.3.2 Controller Manager和Scheduler高可用  363

13.4 Kubernetes的部署模式  364

13.4.1 关键组件  365

13.4.2 常见的部署模式  366

13.5 容器时代的DevOps概述  369

13.5.1 容器:DevOps协作的基础  369

13.5.2 泛型端到端容器应用程序生命周期工作流  370

13.5.3 基于Kubernetes的DevOps  371

13.6 本章小结  372


第14章 资源指标及HPA控制器  373

14.1 资源监控及资源指标  373

14.1.1 资源监控及Heapster  374

14.1.2 新一代监控架构  376

14.2 资源指标及其应用  378

14.2.1 部署metrics-server  378

14.2.2 kubectl top命令  380

14.3 自定义指标与Prometheus  381

14.3.1 Prometheus概述  382

14.3.2 部署Prometheus监控系统  384

14.3.3 自定义指标适配器k8s-prometheus-adapter  388

14.4 自动弹性缩放  390

14.4.1 HPA概述  390

14.4.2 HPA(v1)控制器  391

14.4.3 HPA(v2)控制器  393

14.5 本章小结  397


第15章 Helm程序包管理器  398

15.1 Helm基础  398

15.1.1 Helm的核心术语  399

15.1.2 Helm架构  400

15.1.3 安装Helm Client  400

15.1.4 安装Tiller server  401

15.1.5 Helm快速入门  402

15.2 Helm Charts  405

15.2.1 Charts文件组织结构  405

15.2.2 Chart.yaml文件组织格式  406

15.2.3 Charts中的依赖关系  407

15.2.4 模板和值  408

15.2.5 其他需要说明的话题  409

15.2.6 自定义Charts  410

15.3 Helm实践:部署EFK日志管理系统  415

15.3.1 ElasticSearch集群  416

15.3.2 日志采集代理f?luentd  421

15.3.3 可视化组件Kibana  422

15.4 本章小结  424


附录A 部署Kubernetes集群  425

附录B 部署GlusterFS及Heketi  437


你与世界

只差一个

公众号

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存