• 基于Kubernetes的云原生DevOps
图书条目标准图
21年品牌 40万+商家 超1.5亿件商品

基于Kubernetes的云原生DevOps

全新正版未拆封

12.43 1.0折 128 全新

库存2件

湖南长沙
认证卖家担保交易快速发货售后保障

作者[美]约翰·阿伦德尔(John Arundel);[美]贾斯汀·多明格斯(Justin Domingus);马晶慧

出版社中国电力出版社

出版时间2021-07

版次1

装帧其他

上书时间2024-08-08

A小二郎书舍A

四年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
图书标准信息
  • 作者 [美]约翰·阿伦德尔(John Arundel);[美]贾斯汀·多明格斯(Justin Domingus);马晶慧
  • 出版社 中国电力出版社
  • 出版时间 2021-07
  • 版次 1
  • ISBN 9787519857042
  • 定价 128.00元
  • 装帧 其他
  • 开本 16开
  • 纸张 胶版纸
  • 页数 420页
  • 字数 535.000千字
【内容简介】
本书的主要内容有:学习容器和Kubernetes的基本原理,无需任何经验。运行自己的集群,或选择Amazon、Google,以及其他公司托管的Kubernetes服务。通过Kubernetes管理资源的使用和容器生命周期。从成本、性能、弹性、容量和可伸缩性等方面优化集群。学习开发、测试和部署应用程序的工具。应用安全、可观察性和监控方面的行业惯例。通过开发运维原则来打造精简、快速和高效的团队。
【作者简介】
John Arundel是一位顾问和作家,拥有30多年计算机行业的从业经验。他为全世界各大公司提供有关Kubernetes、云,以及基础设施的咨询。Justin Domingus是CareZone.com的开发运维工程师,专门从事Kubernetes和云计算。
【目录】
目录

序 . 1

前言 . 3

第1 章 云革命 11

1.1 云的诞生 12

1.1.1 购买时间12

1.1.2 基础设施即服务 13

1.2 开发运维拉开序幕 14

1.2.1 没有人真正理解开发运维 15

1.2.2 业务优势16

1.2.3 基础设施即代码 17

1.2.4 共同学习17

1.3 容器的到来 18

1.3.1 的技术 18

1.3.2 箱子带来的启发 19

1.3.3 将软件放入容器 20

1.3.4 即插即用的应用程序 .21

1.4 容器的编排 22

1.5 Kubernetes 23

1.5.1 从Borg 到Kubernetes 23

1.5.2 什么因素导致Kubernetes 如此有价值? 24

1.5.3 Kubernetes 会消失吗? 26

1.5.4 Kubernetes 并非 .26

1.6 云原生 28

1.7 运维的未来 30

1.7.1 分布式开发运维 31

1.7.2 有些仍然是中心式 31

1.7.3 开发人员生产力工程 .31

1.7.4 你就是未来 .32

1.8 小结 .33

第2 章 Kubernetes 简介 35

2.1 次运行容器 35

2.1.1 安装Docker 桌面版 36

2.1.2 什么是Docker ? 37

2.1.3 运行容器镜像 37

2.2 演示应用程序 .38

2.2.1 查看源代码 .38

2.2.2 Go 简介 39

2.2.3 演示应用程序的原理 .40

2.3 建立容器 40

2.3.1 了解Dockerfile .41

2.3.2 限度的容器镜像 .42

2.3.3 运行Docker image build 42

2.3.4 命名镜像43

2.3.5 端口转发43

2.4 容器仓库 44

2.4.1 容器仓库的身份验证 .45

2.4.2 命名和推送镜像 45

2.4.3 运行镜像46

2.5 Kubernetes 入门 .46

2.5.1 运行演示应用 47

2.5.2 如果容器无法启动 48

2.6 Minikube 48

2.7 小结 .48

第3 章 获取Kubernetes 51

3.1 集群架构 52

3.1.1 控制平面52

3.1.2 节点组件53

3.1.3 高可用性54

3.2 自托管Kubernetes 的成本 56

3.2.1 超出预期的工作量 56

3.2.2 不仅仅是初始设置 57

3.2.3 不能完全依赖工具 58

3.2.4 Kubernetes 的难度很大 59

3.2.5 管理费用59

3.2.6 从托管服务开始 59

3.3 托管Kubernetes 服务 .60

3.3.1 Google Kubernetes Engine(GKE) 61

3.3.2 集群自动伸缩 62

3.3.3 亚马逊的Elastic Container Service for Kubernetes(EKS) .62

3.3.4 Azure Kubernetes Service(AKS) 63

3.3.5 OpenShift .63

3.3.6 IBM Cloud Kubernetes Service .63

3.4 一站式Kubernetes 解决方案 64

3.5 Kubernetes 安装程序 64

3.5.1 kops 64

3.5.2 Kubespray 65

3.5.3 TK8 .65

3.5.4 困难模式的Kubernetes 66

3.5.5 kubeadm 66

3.5.6 Tarmak 66

3.5.7 Rancher Kubernetes Engine(RKE) 66

3.5.8 Puppet Kubernetes 模块 67

3.5.9 Kubeformation 67

3.6 购买还是构建:我们的建议 67

3.6.1 运行更少软件 68

3.6.2 尽可能使用托管Kubernetes 68

3.6.3 如何应对提供商锁定? 69

3.6.4 根据需要使用标准的Kubernetes 自托管工具 70

3.6.5 当你的选择受到限制时 70

3.6.6 裸金属与内部服务器 .70

3.7 无集群容器服务 71

3.7.1 Amazon Fargate 72

3.7.2 Azure Container Instances(ACI) .72

3.8 小结 .73

第4 章 Kubernetes 对象 75

4.1 部署 .75

4.1.1 监督与调度 .76

4.1.2 重新启动容器 76

4.1.3 查询部署77

4.2 Pod 78

4.3 副本集 79

4.4 维持所需状态 .80

4.5 Kubernetes 调度器 81

4.6 YAML 格式的资源清单 .82

4.6.1 资源就是数据 82

4.6.2 部署清单83

4.6.3 使用kubectl apply 84

4.6.4 服务资源85

4.6.5 使用kubectl 查询集群 88

4.6.6 资源的高级使用方式 .89

4.7 Helm:Kubernetes 包管理器 90

4.7.1 安装Helm 90

4.7.2 安装Helm Chart 91

4.7.3 Chart、Repository 与Release 92

4.7.4 查看Helm Release 92

4.8 小结 .93

第5 章 资源管理 95

5.1 了解资源 95

5.1.1 资源单位96

5.1.2 资源请求96

5.1.3 资源约束97

5.1.4 控制容器的大小 99

5.2 管理容器的生命周期 99

5.2.1 存活探针99

5.2.2 探针延迟及频率 100

5.2.3 其他类型的探针 101

5.2.4 gRPC 探针 101

5.2.5 就绪探针102

5.2.6 基于文件的就绪探针 103

5.2.7 minReadySeconds .104

5.2.8 Pod 中断预算 104

5.3 命名空间 .106

5.3.1 使用命名空间 .107

5.3.2 应该使用哪些命名空间? 107

5.3.3 服务地址 108

5.3.4 资源配额109

5.3.5 默认资源请求和约束 111

5.4 优化集群的成本 . 112

5.4.1 优化部署 112

5.4.2 优化Pod 113

5.4.3 Pod 垂直自动伸缩器 114

5.4.4 优化节点 114

5.4.5 优化存储 116

5.4.6 清理未使用的资源 117

5.4.7 检查备用容量 .120

5.4.8 使用预留实例 .120

5.4.9 抢占式(Spot)实例 121

5.4.10 保持工作负载均衡 .123

5.5 小结 126

第6 章 集群运维 129

6.1 集群的规模与伸缩 .129

6.1.1 容量规划130

6.1.2 节点与实例 133

6.1.3 伸缩集群136

6.2 一致性检查 138

6.2.1 CNCF 认证 139

6.2.2 Sonobuoy 一致性测试 141

6.3 验证与审计 141

6.3.1 K8Guard 142

6.3.2 Copper 142

6.3.3 kube-bench 143

6.3.4 Kubernetes 审计日志 143

6.4 混乱测试 .144

6.4.1 生产环境是无法复制的 .144

6.4.2 Chaoskube 145

6.4.3 kube-monkey 146

6.4.4 PowerfulSeal 146

6.5 小结 147

第7 章 强大的Kubernetes 工具 . 149

7.1 掌握kubectl 149

7.1.1 Shell 别名 .150

7.1.2 使用缩写的标志 150

7.1.3 缩写资源的类型 151

7.1.4 自动补齐kubectl 命令 151

7.1.5 获取帮助152

7.1.6 获取有关Kubernetes 资源的帮助 .152

7.1.7 显示更详细的输出 153

7.1.8 使用JSON 数据和jq 154

7.1.9 监视对象155

7.1.10 描述对象 .155

7.2 处理资源 .156

7.2.1 命令式的kubectl 命令 156

7.2.2 何时不应该使用命令式的命令 157

7.2.3 生成资源清单 .158

7.2.4 导出资源159

7.2.5 对比资源的差异 159

7.3 处理容器 .160

7.3.1 查看容器的日志 160

7.3.2 附着到容器 162

7.3.3 利用kubespy 监视Kubernetes 资源 162

7.3.4 转发容器端口 .163

7.3.5 在容器上执行命令 163

7.3.6 容器的故障排除 164

7.3.7 BusyBox 命令 .166

7.3.8 将BusyBox 添加到容器 167

7.3.9 在容器上安装程序 168

7.3.10 通过kubesquash 实时调试 168

7.4 上下文与命名空间 .170

7.4.1 kubectx 与kubens .171

7.4.2 kube-ps1 172

7.5 Kubernetes shell 与工具 173

7.5.1 kube-shell 173

7.5.2 Click 173

7.5.3 Kubed-sh 174

7.5.4 Stern 174

7.6 构建自己的Kubernetes 工具 175

7.7 小结 176

第8 章 运行容器 179

8.1 容器与Pod .179

8.1.1 什么是容器? .180

8.1.2 容器中有什么? 181

8.1.3 Pod 中有什么? .182

8.2 容器清单 .183

8.2.1 镜像标识符 184

8.2.2 latest 标签 .185

8.2.3 容器摘要186

8.2.4 基础镜像标签 .186

8.2.5 端口 .187

8.2.6 资源请求和约束 187

8.2.7 镜像拉取策略 .188

8.2.8 环境变量188

8.3 容器安全 .189

8.3.1 以非root 用户身份运行容器 190

8.3.2 阻止Root 容器 191

8.3.3 设置只读文件系统 192

8.3.4 禁用权限提升 .192

8.3.5 能力 .193

8.3.6 Pod 安全上下文 .195

8.3.7 Pod 安全策略 195

8.3.8 Pod 服务账号 196

8.4 卷 197

8.4.1 emptyDir 卷 .197

8.4.2 持久卷 199

8.5 重启策略 .200

8.6 镜像拉取机密 200

8.7 小结 201

第9 章 管理Pod 203

9.1 标签 203

9.1.1 什么是标签? .204

9.1.2 选择器 204

9.1.3 高级选择器 205

9.1.4 标签的其他用途 207

9.1.5 标签与注释 208

9.2 节点亲和性 208

9.2.1 硬亲和性209

9.2.2 软亲和性210

9.3 Pod 的亲和性与反亲和性 211

9.3.1 将Pod 调度到一起 211

9.3.2 分开Pod 212

9.3.3 软反亲和性 213

9.3.4 何时使用Pod 亲和性 214

9.4 污点与容忍 214

9.5 Pod 控制器 .216

9.5.1 守护进程集 217

9.5.2 状态集 218

9.5.3 作业 .220

9.5.4 定时作业221

9.5.5 Pod 水平自动伸缩器222

9.5.6 PodPreset 224

9.5.7 操作器与自定义资源定义(CRD) 226

9.6 Ingress 资源 227

9.6.1 Ingress 规则 .228

9.6.2 通过Ingress 终止TLS 229

9.6.3 Ingress 控制器 230

9.7 Istio 231

9.8 Envoy 232

9.9 小结 233

第10 章 配置与机密数据 235

10.1 ConfigMap 236

10.1.1 创建ConfigMap 236

10.1.2 利用ConfigMap 设置环境变量 237

10.1.3 利用ConfigMap 设置整个环境 240

10.1.4 在命令参数中使用环境变量 .241

10.1.5 利用ConfigMap 创建配置文件 242

10.1.6 配置发生变化后更新Pod 245

10.2 Kubernetes Secret .245

10.2.1 利用机密数据设置环境变量 .246

10.2.2 将Secret 写入文件 247

10.2.3 读取Secrest 248

10.2.4 访问Secret.250

10.2.5 静态加密 .250

10.2.6 防止Secret 被删 .251

10.3 Secret 管理策略 251

10.3.1 在版本控制中加密机密 252

10.3.2 远程存储Secret 253

10.3.3 使用专业的机密管理工具253

10.3.4 推荐 254

10.4 使用Sops 加密机密数据 255

10.4.1 Sops 简介 255

10.4.2 使用Sops 加密文件 256

10.4.3 使用KMS 后端 258

10.5 小结 259

第11 章 安全与备份 261

11.1 访问控制与权限 261

11.1.1 按集群管理访问 261

11.1.2 基于角色的访问控制 262

11.1.3 角色 263

11.1.4 将角色绑定到用户 .264

11.1.5 我需要哪些角色? .265

11.1.6 保护集群管理员的权限 265

11.1.7 应用程序与部署 266

11.1.8 RBAC 故障排除 267

11.2 安全扫描 268

11.2.1 Clair 268

11.2.2 Aqua 268

11.2.3 Anchore Engine 269

11.3 备份 270

11.3.1 Kubernetes 需要备份吗? 270

11.3.2 备份etcd .270

11.3.3 备份资源状态 271

11.3.4 备份集群状态 271

11.3.5 大小灾害 .272

11.3.6 Velero 272

11.4 监控集群状态 277

11.4.1 Kubectl.277

11.4.2 CPU 和内存利用率 280

11.4.3 云提供商控制台 280

11.4.4 Kubernetes 仪表板 .281

11.4.5 Weave Scope .283

11.4.6 kube-ops-view 283

11.4.7 node-problem-detector .283

11.5 深入阅读 284

11.6 小结 285

第12 章 部署Kubernetes 应用程序 287

12.1 使用Helm 构建清单 287

12.1.1 Helm Chart 包含什么? 288

12.1.2 Helm 模板 289

12.1.3 插值变量 .291

12.1.4 引用模板中的值 .292

12.1.5 指定依赖项 292

12.2 部署Heml Chart 293

12.2.1 设置变量 .293

12.2.2 在Helm Release 中指定值 .294

12.2.3 使用Helm 更新应用程序 295

12.2.4 回滚到以前的版本 .296

12.2.5 创建Helm Chart 库 296

12.2.6 使用Sops 管理Helm Chart 的机密数据 .297

12.3 使用Helmfile 管理多个Chart 300

12.3.1 Helmfile 中有什么? 300

12.3.2 Chart 元数据 .301

12.3.3 应用Helmfile302

12.4 高级清单管理工具 304

12.4.1 Tanka 304

12.4.2 Kapitan 304

12.4.3 Kustomize 305

12.4.4 kompose 305

12.4.5 Ansible .306

12.4.6 kubeval 307

12.5 小结 307

第13 章 开发流程 . 309

13.1 开发工具 309

13.1.1 Skaffold 310

13.1.2 Draft .310

13.1.3 Telepresence 310

13.1.4 Knative 311

13.2 部署策略 311

13.2.1 滚动更新 .312

13.2.2 Recreate 模式 313

13.2.3 maxSurge 和maxUnavailable 313

13.2.4 蓝绿部署 .314

13.2.5 彩虹部署 .315

13.2.6 金丝雀部署 316

13.3 使用Helm 处理迁移 316

13.3.1 Helm 的钩子 .317

13.3.2 处理失败的钩子 .318

13.3.3 其他钩子 .318

13.3.4 钩子连接 .319

13.4 小结 320

第14 章 Kubernetes 的持续部署 321

14.1 什么是持续部署? 321

14.2 CD 工具 322

14.2.1 Jenkins .323

14.2.2 Drone 323

14.2.3 Google 云构建 .323

14.2.4 Concourse 324

14.2.5 Spinnaker 324

14.2.6 GitLab CI 324

14.2.7 Codefresh 324

14.2.8 Azure 流水线 324

14.3 CD 组件 325

14.3.1 Docker Hub 325

14.3.2 Gitkube 325

14.3.3 Flux 325

14.3.4 Keel 325

14.4 Google 云构建的CD 流水线 .326

14.4.1 设置Google 云和GKE 326

14.4.2 分叉demo 代码库 327

14.4.3 Google 云构建简介 327

14.4.4 构建测试容器 327

14.4.5 运行测试 .329

14.4.6 构建应用程序容器 .329

14.4.7 验证Kubernetes 清单 329

14.4.8 发布镜像 .330

14.4.9 Git SHA 标签 330

14.4.10 创建个构建触发器 331

14.4.11 测试触发器 .332

14.4.12 CD 流水线部署 .333

14.4.13 创建部署触发器336

14.4.14 优化构建流水线337

14.4.15 调整示例流水线338

14.5 小结 338

第15 章 可观察性和监控 341

15.1 什么是可观察性? 341

15.1.1 什么是监控? 341

15.1.2 黑盒监控 .342

15.1.3 “正常”指什么? .344

15.1.4 日志 345

15.1.5 指标 347

15.1.6 跟踪 349

15.1.7 可观察性 .350

15.2 可观测性流水线 351

15.3 Kubernetes 中的监控 .353

15.3.1 外部的黑盒检查 .353

15.3.2 内部健康检查 355

15.4 小结 357

第16 章 Kubernetes 指标 . 359

16.1 什么是指标? 359

16.1.1 时间序列数据 360

16.1.2 计数器和计量器 .361

16.1.3 指标可以告诉我们什么?361

16.2 选择指标 361

16.2.1 服务:RED 模式 362

16.2.2 资源:USE 模式 .364

16.2.3 业务指标 .365

16.2.4 Kubernetes 指标 366

16.3 分析指标 370

16.3.1 简单的平均值有什么问题? .371

16.3.2 平均值、中位数和离群值371

16.3.3 百分位数 .372

16.3.4 将百分位数应用于指标数据 .373

16.3.5 一般我们想知道坏的情况 .375

16.3.6 比百分位数更好的方式 375

16.4 通过仪表板显示指标的图表 376

16.4.1 所有服务都使用标准布局376

16.4.2 利用主仪表板构建信息发射源 377

16.4.3 在仪表板上显示预示故障的数据 379

16.5 根据指标发出警报 380

16.5.1 警报有什么问题? .380

16.5.2 值班不应该成为地狱 381

16.5.3 紧急、重大且需要付诸行动的警报 382

16.5.4 跟踪警报、工作时间外的呼叫 383

16.6 指标工具和服务 384

16.6.1 Prometheus 384

16.6.2 Google Stackdriver.387

16.6.3 AWS Cloudwatch 387

16.6.4 Azure Monitor 388

16.6.5 Datadog 388

16.6.6 New Relic 389

16.7 小结 390

后记 393

作者介绍 397

封面介绍 397
点击展开 点击收起

   相关推荐   

—  没有更多了  —

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

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