• 云原生Kubernetes全栈架构师实战
图书条目标准图
21年品牌 40万+商家 超1.5亿件商品

云原生Kubernetes全栈架构师实战

68.2 4.9折 138 全新

仅1件

河北保定
认证卖家担保交易快速发货售后保障

作者杜宽

出版社清华大学出版社

出版时间2022-05

版次1

装帧其他

货号dr

上书时间2024-10-18

尚贤文化江苏分店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
图书标准信息
  • 作者 杜宽
  • 出版社 清华大学出版社
  • 出版时间 2022-05
  • 版次 1
  • ISBN 9787302603887
  • 定价 138.00元
  • 装帧 其他
  • 开本 16开
  • 纸张 纯质纸
  • 页数 1024页
  • 字数 863千字
【内容简介】
本书以一个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.3  K8s组件和Runtime安装 7

1.3.1  Containerd作为Runtime 7

1.3.2  Docker作为Runtime 9

1.3.3  安装Kubernetes组件 9

1.4  高可用组件安装 10

1.5  集群初始化 14

1.6  Master实现高可用 17

1.7  Node节点的配置 17

1.8  Token过期处理 18

1.9  Calico组件的安装 18

1.10  Metrics部署 19

1.11  Dashboard部署 20

1.11.1  安装Dashboard 20

1.11.2  登录Dashboard 21

1.12  注意事项 23

1.13  小结 24

第2章  二进制安装高可用K8s集群 25

2.1  基本环境配置 25

2.2  内核配置 28

2.3  基本组件安装 30

2.3.1  Containerd作为Runtime 30

2.3.2  Docker作为Runtime 31

2.3.3  K8s及Etcd的安装 32

2.4  生成证书 33

2.4.1  Etcd证书 33

2.4.2  K8s组件证书 34

2.5  高可用配置 37

2.6  Etcd集群配置 38

2.6.1  创建Etcd的配置文件 38

2.6.2  创建Service 38

2.7  K8s Master节点配置 39

2.7.1  APIServer 39

2.7.2  Controller Manager 40

2.7.3  Scheduler 40

2.8  TLS Bootstrapping配置 41

2.9  Node节点配置 42

2.9.1  Kubelet配置 42

2.9.2  kube-proxy配置 44

2.10  安装Calico 46

2.11  安装CoreDNS 47

2.12  安装Metrics Server 47

2.13  安装Dashboard 47

2.14  小结 48

第2篇  基  础  篇

第3章  Docker基础 50

3.1  Docker介绍 50

3.2  Docker安装 51

3.3  Docker基本命令 51

3.4  Dockerfile的编写 57

3.5  镜像大小优化 61

3.6  多阶段构建 63

3.7  小结 65

第4章  Kubernetes的基础概念 66

4.1  为什么要用Kubernetes 66

4.1.1  对于开发人员 67

4.1.2  对于运维人员 67

4.2  Kubernetes带来的挑战 68

4.3  Kubernetes架构解析 69

4.4  Master节点 70

4.5  Node节点 71

4.6  Pod的概念 72

4.6.1  什么是Pod 72

4.6.2  Pod探针 74

4.6.3  Pod镜像拉取策略和重启策略 75

4.6.4  创建一个Pod 75

4.7  小结 78

第5章  Kubernetes调度基础 79

5.1  Replication Controller和ReplicaSet 79

5.1.1  Replication Controller 79

5.1.2  ReplicaSet 80

5.2  无状态应用管理Deployment 81

5.2.1  创建Deployment 82

5.2.2  更新Deployment 84

5.2.3  回滚Deployment 85

5.2.4  扩容Deployment 86

5.2.5  暂停和恢复Deployment更新 87

5.2.6  更新Deployment的注意事项 88

5.3  有状态应用管理StatefulSet 89

5.3.1  StatefulSet的基本概念 89

5.3.2  StatefulSet的注意事项 90

5.3.3  定义一个StatefulSet资源文件 90

5.3.4  创建StatefulSet 92

5.3.5  StatefulSet创建Pod的流程 92

5.3.6  StatefulSet扩容和缩容 93

5.3.7  StatefulSet更新策略 94

5.3.8  删除StatefulSet 96

5.4  守护进程集DaemonSet 97

5.4.1  什么是DaemonSet 97

5.4.2  定义一个DaemonSet 98

5.4.3  创建DaemonSet 100

5.4.4  更新和回滚DaemonSet 101

5.5  CronJob 102

5.5.1  创建CronJob 102

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.2  Service 110

6.2.1  Service的基本概念 110

6.2.2  定义Service 111

6.2.3  无选择器的Service和Endpoint 111

6.2.4  ExternalName Service 113

6.2.5  Service代理模式 113

6.2.6  多端口Service 114

6.2.7  Service的类型 115

6.2.8  Kubernetes服务发现 116

6.3  Ingress 118

6.3.1  基本概念 118

6.3.2  创建一个Ingress 119

6.3.3  Ingress使用入门 121

6.3.4  更新Ingress 123

6.4  小结 123

第7章  Kubernetes配置管理 124

7.1  什么是ConfigMap 124

7.2  创建ConfigMap 125

7.2.1  基于目录创建ConfigMap 125

7.2.2  基于文件创建ConfigMap 126

7.2.3  基于ENV文件创建ConfigMap 127

7.2.4  基于字符值创建ConfigMap 128

7.3  ConfigMap实践 128

7.3.1  使用valueFrom定义容器环境变量 128

7.3.2  使用envFrom定义容器的环境变量 130

7.3.3  以文件形式挂载ConfigMap 131

7.3.4  自定义文件名挂载ConfigMap 132

7.3.5  指定挂载的文件权限 132

7.4  ConfigMap限制 133

7.5  加密数据管理Secret 134

7.5.1  创建Secret 134

7.5.2  解码Secret 135

7.6  Secret实践 136

7.6.1  以文件形式挂载Secret 136

7.6.2  自定义文件名挂载 137

7.6.3  Secret作为环境变量 138

7.6.4  Secret文件权限 138

7.7  常用的Secret类型 139

7.7.1  Docker镜像仓库Secret 139

7.7.2  HTTPS证书类型的Secret 140

7.8  SubPath解决挂载覆盖问题 141

7.9  ConfigMap和Secret热更新 141

7.10  小结 143

第3 篇  进  阶  篇

第8章  Kubernetes存储入门 146

8.1  Volume的概念 146

8.2  Volume的类型 147

8.3  示例1:通过emptyDir共享数据 148

8.4  示例2:使用HostPath挂载宿主机文件 149

8.5  示例3:挂载NFS至容器 150

8.6  PersistentVolume 151

8.6.1  PV回收策略 152

8.6.2  PV访问策略 152

8.6.3  基于NFS的PV 153

8.6.4  基于HostPath的PV 154

8.6.5  基于Ceph RBD的PV 154

8.6.6  PV的状态 155

8.7  PersistentVolumeClaim 155

8.7.1  PVC的创建 156

8.7.2  PVC的使用 157

8.8  动态存储StorageClass 158

8.8.1  定义StorageClass 158

8.8.2  整合StorageClass和Ceph RBD 159

8.9  存储的未来:CSI 162

8.9.1  通过CSI连接CephFS 163

8.9.2  通过CSI连接Ceph RBD 169

8.10  小结 173

第9章  Kubernetes高级调度 174

9.1  初始化容器InitContainer 174

9.1.1  InitContainer的基本概念 174

9.1.2  示例1:等待依赖服务启动 175

9.1.3  示例2:服务注册 176

9.1.4  示例3:克隆Git代码到容器中 176

9.1.5  示例4:多个初始化容器使用 177

9.2  临时容器Ephemeral Containers 178

9.2.1  临时容器的概念 178

9.2.2  开启临时容器功能 178

9.2.3  临时容器的使用 179

9.3  自动扩缩容HPA 182

9.3.1  什么是HPA 182

9.3.2  HPA实践——实现Web服务器的自动伸缩特性 182

9.4  Taint和Toleration 184

9.4.1  容忍和污点的基本概念 184

9.4.2  使用案例 187

9.4.3  基于Taint的驱逐 187

9.5  Affinity亲和力 189

9.5.1  Affinity的分类 189

9.5.2  Node Affinity 190

9.5.3  PodAffinity和PodAntiAffinity 191

9.5.4  示例1:同一个应用部署在不同的宿主机 193

9.5.5  示例2:同一个应用不同副本的固定节点 194

9.5.6  示例3:应用和缓存尽量部署在同一个域内 195

9.6  小结 196

第10章  Kubernetes资源管理 197

10.1  ResourceQuota 197

10.1.1  什么是资源配额 197

10.1.2  定义一个ResourceQuota 198

10.1.3  ResourceQuota的使用 199

10.2  LimitRange 201

10.2.1  LimitRange的用途 201

10.2.2  示例1:配置默认的requests和limits 201

10.2.3  示例2:配置requests和limits的范围 202

10.2.4  示例3:限制申请存储空间的大小 204

10.3  QoS 204

10.3.1  什么是服务质量保证 204

10.3.2  示例1:实现QoS为Guaranteed的Pod 206

10.3.3  示例2:实现QoS为Burstable的Pod 206

10.3.4  示例3:实现QoS为BestEffort的Pod 207

10.4  小结 208

第11章  Kubernetes安全入门 209

11.1  权限管理RBAC 209

11.1.1  RBAC的基本概念 209

11.1.2  Role和ClusterRole 210

11.1.3  RoleBinding和ClusterRoleBinding 211

11.1.4  对集群资源的权限控制 212

11.1.5  聚合ClusterRole 213

11.1.6  Role常用示例 214

11.1.7  RoleBinding常用示例 215

11.1.8  命令行的使用 216

11.1.9  K8s多租户权限管理实践 218

11.2  Network Policy 221

11.2.1  网络策略的使用 221

11.2.2  网络策略的注意事项 223

11.2.3  示例1:隔离中间件服务 224

11.2.4  示例2:服务发布限制于Ingress 228

11.3  小结 231

第4篇  高  级  篇

第12章  云原生存储Rook 234

12.1  Rook的安装 235

12.2  一键部署Ceph集群 236

12.3  安装Snapshot控制器 237

12.4  安装Ceph客户端工具和Dashboard 238

12.5  Ceph块存储的使用 240

12.5.1  创建StorageClass和Ceph的存储池 240

12.5.2  挂载测试 242

12.5.3  StatefulSet volumeClaimTemplates 243

12.6  共享型文件系统的使用 245

12.6.1  创建共享型文件系统 245

12.6.2  创建共享型文件系统的StorageClass 246

12.6.3  挂载测试 246

12.7  PVC扩容 247

12.7.1  扩容文件共享型PVC 247

12.7.2  扩容块存储 249

12.8  PVC快照 249

12.8.1  创建SnapshotClass 250

12.8.2  创建快照 250

12.8.3  使用快照恢复数据 251

12.8.4  数据校验 252

12.9  PVC克隆 253

12.10  测试数据清理 254

12.11  小结 255

第13章  中间件容器化 256

13.1  传统架构如何管理中间件集群 256

13.2  Kubernetes如何管理中间件集群 257

13.2.1  Operator和Helm的区别 257

13.2.2  Kubernetes管理中间件集群的流程 258

13.3  Operator的使用 259

13.3.1  使用Operator安装Redis集群 260

13.3.2  Redis集群一键扩容 263

13.3.3  集群清理 264

13.4  Helm的使用 265

13.4.1  安装Helm客户端 265

13.4.2  Helm客户端命令入门 265

13.4.3  安装Zookeeper集群至Kubernetes 267

13.4.4  安装Kafka集群至Kubernetes 269

13.4.5  Kafka集群扩容 272

13.4.6  删除Helm Release 273

13.5  小结 273

第5篇  运  维  篇

第14章  Kubernetes日志收集 276

14.1  有哪些日志需要收集 276

14.2  日志采集工具有哪些 276

14.2.1  ELK & EFK 276

14.2.2  Filebeat 277

14.2.3  新贵Loki 277

14.3  使用EFK收集控制台日志 278

14.3.1  部署Elasticsearch Fluentd Kibana 279

14.3.2  Kibana的使用 280

14.4  使用Filebeat收集自定义文件日志 283

14.4.1  创建Kafka和Logstash 283

14.4.2  注入Filebeat Sidecar 284

14.4.3  清理 287

14.5  Loki初体验 287

14.5.1  安装Loki Stack 287

14.5.2  Loki语法入门 290

14.6  小结 292

第15章  Kubernetes监控告警 293

15.1  Prometheus的架构介绍 293

15.2  Prometheus的安装 295

15.3  云原生和非云原生应用的监控流程 298

15.3.1  监控数据来源 298

15.3.2  什么是ServiceMonitor 300

15.3.3  ServiceMonitor找不到监控主机排查 302

15.3.4  云原生应用监控 307

15.3.5  非云原生监控Exporter 311

15.4  黑盒监控 315

15.5  Prometheus静态配置 315

15.6  Prometheus监控Windows(外部)主机 318

15.7  Prometheus语法PromQL入门 319

15.7.1  PromQL语法初体验 319

15.7.2  PromQL操作符 323

15.7.3  PromQL常用函数 326

15.8  Alertmanager告警入门 329

15.8.1  Alertmanager配置文件解析 329

15.8.2  Alertmanager路由规则 331

15.8.3  Alertmanager邮件通知 332

15.8.4  Alertmanager企业微信通知 337

15.8.5  自定义告警模板 341

15.9  Prometheus告警实战 343

15.9.1  PrometheusRule 343

15.9.2  告警通用配置步骤 344

15.10  小结 347

第16章  服务发布Ingress进阶 348

16.1  安装Ingress Nginx Controller 349

16.2  Ingress Nginx入门 350

16.3  Ingress Nginx域名重定向Redirect 352

16.4  Ingress Nginx前后端分离Rewrite 353

16.5  Ingress Nginx错误代码重定向 354

16.6  Ingress Nginx SSL 355

16.7  Ingress Nginx匹配请求头 357

16.8  Ingress Nginx基本认证 359

16.9  Ingress Nginx黑/白名单 360

16.9.1  配置黑名单 360

16.9.2  配置白名单 361

16.10  Ingress Nginx速率限制 362

16.11  使用Nginx实现灰度/金丝雀发布 363

16.11.1  创建v1版本 363

16.11.2  创建v2版本 363

16.11.3  Canary版本切入部分流量 364

16.11.4  测试灰度发布 364

16.12  环境清理 365

16.13  小结 366

第6篇  DevOps篇

第17章  DevOps实践 368

17.1  CI/CD介绍 368

17.1.1  持续集成(CI) 368

17.1.2  持续交付(CD) 369

17.1.3  持续部署(CD) 369

17.1.4  CI和CD的区别 369

17.2  Jenkins流水线介绍 370

17.2.1  什么是流水线 370

17.2.2  声明式流水线 371

17.2.3  脚本化流水线 373

17.3  声明式流水线的语法 374

17.3.1  sections 374

17.3.2  directives 382

17.3.3  parallel 392

17.4  Jenkinsfile的使用 394

17.4.1  Jenkinsfile初体验 395

17.4.2  Jenkinsfile进阶 398

17.5  DevOps平台建设 405

17.5.1  安装Jenkins 406

17.5.2  安装GitLab 409

17.5.3  安装Harbor 414

17.5.4  Jenkins凭证Credentials 419

17.5.5  配置Agent 422

17.5.6  Jenkins配置Kubernetes多集群 423

17.6  自动化构建Java应用 425

17.6.1  创建Java测试用例 425

17.6.2  定义Jenkinsfile 427

17.6.3  Jenkinsfile详解 428

17.6.4  定义Dockerfile 433

17.6.5  定义Kubernetes资源 433

17.6.6  创建Jenkins任务 436

17.7  自动化构建Vue/H5前端应用 441

17.7.1  定义Jenkinsfile 441

17.7.2  定义Dockerfile 442

17.7.3  定义Kubernetes资源 442

17.7.4  创建Jenkins Job 444

17.8  自动化构建Golang项目 446

17.8.1  定义Jenkinsfile 446

17.8.2  定义Dockerfile 447

17.8.3  创建Jenkins Job 447

17.9  自动触发构建 448

17.10  UAT及生产环境流水线设计 452

17.11  小结 456

第7篇  拓  展  篇

第18章  服务网格 458

18.1  服务网格概述 458

18.1.1  服务网格的基本概念 458

18.1.2  服务网格的功能 459

18.1.3  服务网格产品 460

18.2  Istio的基本概念 460

18.2.1  Istio的架构 461

18.2.2  Istio的组件 461

18.3  Istio的核心资源 463

18.3.1  VirtualService 463

18.3.2  DestinationRule 465

18.3.3  Gateway 466

18.4  安装Istio 468

18.4.1  使用Operator部署Istio 468

18.4.2  配置自动注入 470

18.4.3  可视化工具Kiali 470

18.4.4  Prometheus和Grafana 472

18.5  Istio流量治理实践 474

18.5.1  部署测试用例 474

18.5.2  Istio实现灰度部署 478

18.5.3  Istio实现AB测试 482

18.5.4  Istio注入延迟故障 484

18.5.5  Istio注入中断故障 486

18.5.6  Istio快速超时配置 487

18.5.7  Istio地址重写和重定向 488

18.5.8  Istio负载均衡算法 489

18.5.9  Istio熔断 490

18.6  小结 492

 
点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP