资源详情

云原生Kubernetes全栈架构师实战

云原生Kubernetes全栈架构师实战-电子书下载


作者: 杜宽
出版社: 清华大学出版社
页数: 492
定价: 138
ISBN: 9787302603887

下载次数:115


本站推荐

云原生Kubernetes全栈架构师实战
云原生Kubernetes全栈架构师实战
云原生Kubernetes全栈架构师实战
云原生Kubernetes全栈架构师实战
云原生Kubernetes全栈架构师实战
云原生Kubernetes全栈架构师实战
云原生Kubernetes全栈架构师实战

下载地址

云原生Kubernetes全栈架构师实战

书籍资料

  • 内容简介
  • 作者介绍
  • 书籍目录

本书以一个Kubernetes工程师的视角,全面系统地介绍Kubernetes常见的知识点、企业应用实践及运维管理方法。本书共分18章,第1、2章介绍如何快速搭建高可用的Kubernetes集群;第3~7章介绍Docker的基础和镜像的制作优化,以及Kubernetes的基础概念(Master、Node和Pod)、核心调度资源(Deployment、StatefulSet、DaemonSet、CronJob)、服务发布(Service和Ingress)和配置管理(ConfigMap和Secret)。第8~11章主要介绍Kubernetes的持久化存储、动态存储、CSI、高级调度(容忍、污点和亲和力)、服务质量、权限管理、Kubernetes资源配额管理。第12、13章主要介绍云原生存储、中间件容器化、Operator和Helm的使用。第14~16章主要介绍针对Kubernetes的日志收集(EFK)、监控告警(Prometheus和Grafana)、生产级服务发布Ingress的使用。第17章主要介绍基于Kubernetes、Jenkins、Harbor、GitLab等工具建设生产级的DevOps平台,实现开发、测试、UAT、生产环境的流水线设计。第18章主要介绍服务网格Istio的使用,实现对Kubernetes内部服务的细粒度流量管理。 本书从概念到实践,从手工到自动化,内容翔实且丰富,其中的范例与项目均在实践中多次验证,可直接用于生产环境。本书适合Kubernetes初学者、开发人员、运维人员、架构师使用,也可以作为培训机构和大专院校的教学用书。

杜 宽,Kubernetes实践者,云原生技术工程师,目前在某集团公司负责云原生相关工作,是Linux基金会开源软件学园官方导师,专注于容器、K8s、服务网格、Serverless、DevOps、云原生等技术的应用实践。

第1篇安装篇
第1章Kubeadm安装高可用K8s集群2
1.1基本环境配置2
1.2内核配置5
1.3K8s组件和Runtime安装7
1.3.1Containerd作为Runtime7
1.3.2Docker作为Runtime9
1.3.3安装Kubernetes组件9
1.4高可用组件安装10
1.5集群初始化14
1.6Master实现高可用17
1.7Node节点的配置17
1.8Token过期处理18
1.9Calico组件的安装18
1.10Metrics部署19
1.11Dashboard部署20
1.11.1安装Dashboard20
1.11.2登录Dashboard21
1.12注意事项23
1.13小结24
第2章二进制安装高可用K8s集群25
2.1基本环境配置25
2.2内核配置28
2.3基本组件安装30
2.3.1Containerd作为Runtime30

2.3.2Docker作为Runtime31
2.3.3K8s及Etcd的安装32
2.4生成证书33
2.4.1Etcd证书33
2.4.2K8s组件证书34
2.5高可用配置37
2.6Etcd集群配置38
2.6.1创建Etcd的配置文件38
2.6.2创建Service38
2.7K8sMaster节点配置39
2.7.1APIServer39
2.7.2ControllerManager40
2.7.3Scheduler40
2.8TLSBootstrapping配置41
2.9Node节点配置42
2.9.1Kubelet配置42
2.9.2kube-proxy配置44
2.10安装Calico46
2.11安装CoreDNS47
2.12安装MetricsServer47
2.13安装Dashboard47
2.14小结48
第2篇基础篇
第3章Docker基础50
3.1Docker介绍50
3.2Docker安装51
3.3Docker基本命令51
3.4Dockerfile的编写57
3.5镜像大小优化61
3.6多阶段构建63
3.7小结65
第4章Kubernetes的基础概念66
4.1为什么要用Kubernetes66
4.1.1对于开发人员67
4.1.2对于运维人员67
4.2Kubernetes带来的挑战68
4.3Kubernetes架构解析69
4.4Master节点70
4.5Node节点71
4.6Pod的概念72
4.6.1什么是Pod72
4.6.2Pod探针74
4.6.3Pod镜像拉取策略和重启策略75
4.6.4创建一个Pod75
4.7小结78
第5章Kubernetes调度基础79
5.1ReplicationController和ReplicaSet79
5.1.1ReplicationController79
5.1.2ReplicaSet80
5.2无状态应用管理Deployment81
5.2.1创建Deployment82
5.2.2更新Deployment84
5.2.3回滚Deployment85
5.2.4扩容Deployment86
5.2.5暂停和恢复Deployment更新87
5.2.6更新Deployment的注意事项88
5.3有状态应用管理StatefulSet89
5.3.1StatefulSet的基本概念89
5.3.2StatefulSet的注意事项90
5.3.3定义一个StatefulSet资源文件90
5.3.4创建StatefulSet92
5.3.5StatefulSet创建Pod的流程92
5.3.6StatefulSet扩容和缩容93
5.3.7StatefulSet更新策略94
5.3.8删除StatefulSet96
5.4守护进程集DaemonSet97
5.4.1什么是DaemonSet97
5.4.2定义一个DaemonSet98
5.4.3创建DaemonSet100
5.4.4更新和回滚DaemonSet101
5.5CronJob102
5.5.1创建CronJob102
5.5.2可用参数的配置103
5.6小结105
第6章Kubernetes服务发布基础106
6.1标签和选择器106
6.1.1定义标签107
6.1.2选择器108
6.1.3修改标签109
6.1.4删除标签109
6.2Service110
6.2.1Service的基本概念110
6.2.2定义Service111
6.2.3无选择器的Service和Endpoint111
6.2.4ExternalNameService113
6.2.5Service代理模式113
6.2.6多端口Service114
6.2.7Service的类型115
6.2.8Kubernetes服务发现116
6.3Ingress118
6.3.1基本概念118
6.3.2创建一个Ingress119
6.3.3Ingress使用入门121
6.3.4更新Ingress123
6.4小结123
第7章Kubernetes配置管理124
7.1什么是ConfigMap124
7.2创建ConfigMap125
7.2.1基于目录创建ConfigMap125
7.2.2基于文件创建ConfigMap126
7.2.3基于ENV文件创建ConfigMap127
7.2.4基于字符值创建ConfigMap128
7.3ConfigMap实践128
7.3.1使用valueFrom定义容器环境变量128
7.3.2使用envFrom定义容器的环境变量130
7.3.3以文件形式挂载ConfigMap131
7.3.4自定义文件名挂载ConfigMap132
7.3.5指定挂载的文件权限132
7.4ConfigMap限制133
7.5加密数据管理Secret134
7.5.1创建Secret134
7.5.2解码Secret135
7.6Secret实践136
7.6.1以文件形式挂载Secret136
7.6.2自定义文件名挂载137
7.6.3Secret作为环境变量138
7.6.4Secret文件权限138
7.7常用的Secret类型139
7.7.1Docker镜像仓库Secret139
7.7.2HTTPS证书类型的Secret140
7.8SubPath解决挂载覆盖问题141
7.9ConfigMap和Secret热更新141
7.10小结143
第3篇进阶篇
第8章Kubernetes存储入门146
8.1Volume的概念146
8.2Volume的类型147
8.3示例1:通过emptyDir共享数据148
8.4示例2:使用HostPath挂载宿主机文件149
8.5示例3:挂载NFS至容器150
8.6PersistentVolume151
8.6.1PV回收策略152
8.6.2PV访问策略152
8.6.3基于NFS的PV153
8.6.4基于HostPath的PV154
8.6.5基于CephRBD的PV154
8.6.6PV的状态155
8.7PersistentVolumeClaim155
8.7.1PVC的创建156
8.7.2PVC的使用157
8.8动态存储StorageClass158
8.8.1定义StorageClass158
8.8.2整合StorageClass和CephRBD159
8.9存储的未来:CSI162
8.9.1通过CSI连接CephFS163
8.9.2通过CSI连接CephRBD169
8.10小结173
第9章Kubernetes高级调度174
9.1初始化容器InitContainer174
9.1.1InitContainer的基本概念174
9.1.2示例1:等待依赖服务启动175
9.1.3示例2:服务注册176
9.1.4示例3:克隆Git代码到容器中176
9.1.5示例4:多个初始化容器使用177
9.2临时容器EphemeralContainers178
9.2.1临时容器的概念178
9.2.2开启临时容器功能178
9.2.3临时容器的使用179
9.3自动扩缩容HPA182
9.3.1什么是HPA182
9.3.2HPA实践——实现Web服务器的自动伸缩特性182
9.4Taint和Toleration184
9.4.1容忍和污点的基本概念184
9.4.2使用案例187
9.4.3基于Taint的驱逐187
9.5Affinity亲和力189
9.5.1Affinity的分类189
9.5.2NodeAffinity190
9.5.3PodAffinity和PodAntiAffinity191
9.5.4示例1:同一个应用部署在不同的宿主机193
9.5.5示例2:同一个应用不同副本的固定节点194
9.5.6示例3:应用和缓存尽量部署在同一个域内195
9.6小结196
第10章Kubernetes资源管理197
10.1ResourceQuota197
10.2LimitRange201
10.3QoS204
10.4小结208
第11章Kubernetes安全入门209
11.1权限管理RBAC209
11.2NetworkPolicy221
11.3小结231
第4篇高级篇
第12章云原生存储Rook234
12.1Rook的安装235
12.2一键部署Ceph集群236
12.3安装Snapshot控制器237
12.4安装Ceph客户端工具和Dashboard238
12.5Ceph块存储的使用240
12.6共享型文件系统的使用245
12.7PVC扩容247
12.8PVC快照249
12.9PVC克隆253
12.10测试数据清理254
12.11小结255
第13章中间件容器化256
13.1传统架构如何管理中间件集群256
13.2Kubernetes如何管理中间件集群257
13.3Operator的使用259
13.4Helm的使用265
13.5小结273
第5篇运维篇
第14章Kubernetes日志收集276
14.1有哪些日志需要收集276
14.2日志采集工具有哪些276
14.3使用EFK收集控制台日志278
14.4使用Filebeat收集自定义文件日志283
14.5Loki初体验287
14.6小结292
第15章Kubernetes监控告警293
15.1Prometheus的架构介绍293
15.2Prometheus的安装295
15.3云原生和非云原生应用的监控流程298
15.4黑盒监控315
15.5Prometheus静态配置315
15.6Prometheus监控Windows(外部)主机318
15.7Prometheus语法PromQL入门319
15.8Alertmanager告警入门329
15.9Prometheus告警实战343
15.10小结347
第16章服务发布Ingress进阶348
16.1安装IngressNginxController349
16.2IngressNginx入门350
16.3IngressNginx域名重定向Redirect352
16.4IngressNginx前后端分离Rewrite353
16.5IngressNginx错误代码重定向354
16.6IngressNginxSSL355
16.7IngressNginx匹配请求头357
16.8IngressNginx基本认证359
16.9IngressNginx黑/白名单360
16.10IngressNginx速率限制362
16.11使用Nginx实现灰度/金丝雀发布363
16.12环境清理365
16.13小结366
第6篇DevOps篇
第17章DevOps实践368
17.1CI/CD介绍368
17.1.1持续集成(CI)368
17.1.2持续交付(CD)369
17.1.3持续部署(CD)369
17.1.4CI和CD的区别369
17.2Jenkins流水线介绍370
17.2.1什么是流水线370
17.2.2声明式流水线371
17.2.3脚本化流水线373
17.3声明式流水线的语法374
17.3.1sections374
17.3.2directives382
17.3.3parallel392
17.4Jenkinsfile的使用394
17.5DevOps平台建设405
17.6自动化构建Java应用425
17.7自动化构建Vue/H5前端应用441
17.8自动化构建Golang项目446
17.9自动触发构建448
17.10UAT及生产环境流水线设计452
17.11小结456
第7篇拓展篇
第18章服务网格458
18.1服务网格概述458
18.2Istio的基本概念4
18.3Istio的核心资源463
18.4安装Istio468
18.5Istio流量治理实践474
18.6小结492