新書推薦: 
			  
			《 
			中国古代文学理论概论
			》 
			 售價:HK$ 
			96.8
			 
			 
	
			  
			《 
			诸葛亮:三国时期的真正主角
			》 
			 售價:HK$ 
			64.9
			 
			 
	
			  
			《 
			甘肃道教碑刻集(全三册)
			》 
			 售價:HK$ 
			1078.0
			 
			 
	
			  
			《 
			《吉檀迦利》(英汉双语对照)泰戈尔创作的一部“奉献给神的祭品”的作品  冰心文学奖获奖者王钦刚新译作
			》 
			 售價:HK$ 
			54.8
			 
			 
	
			  
			《 
			画中观器:明画里的家具
			》 
			 售價:HK$ 
			308.0
			 
			 
	
			  
			《 
			梵蒂冈图书馆藏中国传统古籍善本总目提要
			》 
			 售價:HK$ 
			82.5
			 
			 
	
			  
			《 
			外国考古学研究译丛——国家与文明的起源:文化演进的过程(精装版)
			》 
			 售價:HK$ 
			140.8
			 
			 
	
			  
			《 
			身体,图像与艺术史
			》 
			 售價:HK$ 
			96.8
			 
			 
	
 
       | 
     
      
      
         
          | 編輯推薦: | 
         
         
           
            关于Kubernetes基础设施维护与支持的全面、权威、实用的书籍。。
 Kubernetes是云原生世界的操作系统,为运行容器化的工作负载提供了可靠、可伸缩的平台。在这本实用教程中,本书作者充分向你展示了Kubernetes有哪些功能,以及你可以利用Kubernetes做些什么。
 你将学习Kubernetes的生态系统,使用久经考验的解决方案来解决日常问题。你可以按照书中的示例逐步学习如何构建云原生应用程序及其支持的基础设施,还将学习如何构建应用程序的开发环境及持续部署流水线。
 “关于Kubernetes基础设施维护与支持的全面、权威、实用的书籍。。”
 ——Jeremy Yates
 Home Depot QuoteCenter的SRE团队成员
 “逻辑清晰,内容丰富,涵盖了所有细节,同时兼具可读性。”
 ——Will Thames
 Skedulo平台工程师
           | 
         
       
      
      
      
      
         
          | 內容簡介: | 
         
         
          |  
            本书的主要内容有:学习容器和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
           | 
         
       
      
      
      
         
          | 內容試閱: 
           | 
         
         
           
            前言
 在IT 运维领域,开发运维的核心原则已广为人知并得到了广泛采用,但是如今情况正在发生变化,一个名为Kubernetes 的新应用程序平台已被全世界各个不同行业的公司迅速采用。随着越来越多的应用程序和企业从传统服务器迁移到Kubernetes 环境,人们开始关心如何在这个新世界中开展开发运维的工作。
 本书讲解了以Kubernetes 为标准平台的云原生世界中开发运维的含义。不仅可以帮助你从Kubernetes 生态系统中挑选工具和框架,而且还呈上了一套使用这些工具和框架的统一方式,此外还提供了久经考验可在实际生产环境中运行的解决方案。
 主要内容
 你将学习Kubernetes 是什么,它来自何处,以及对软件开发和运维的未来意味着什么。你将学习容器的工作原理,如何构建和管理容器,以及如何设计云原生服务和基础架构。
 你将了解自行构建并运行Kubernetes 集群与使用托管服务之间的利弊,将学习流行的Kubernetes 安装工具(比如kops、kubeadm 和Kubespray)的功能、局限性以及优缺点,还将大致了解亚马逊、Google 以及微软提供的主流Kubernetes 托管产品的概况。
 你将学习大量实践经验,包括如何编写和部署Kubernetes 应用程序,如何配置和操作Kubernetes 集群,以及如何使用Helm 等工具自动化云基础设施与部署。你将了解Kubernetes 对安全、身份验证和权限的支持,包括基于角色的访问控制(RBAC),以及在生产中保护容器和Kubernetes 的实践。
 你将学习如何设置Kubernetes 的持续集成和部署,如何备份和还原数据,如何测试集群的一致性和可靠性,如何监控、跟踪、记录和汇总指标,以及如何保证Kubernetes 基础架构兼具可扩展性、弹性和高性价比。
 为了方便说明,我们引入了一个非常简单的演示应用程序。你可以通过本书Git 代码库中的代码来学习所有的示例。
 本书面向的读者对象
 本书主要面向负责服务器、应用程序和服务的IT 运维人员,以及负责构建云原生服务或将现有应用程序迁移到Kubernetes 和云端的开发人员。我们不要求你了解有关Kubernetes 或容器的前提知识,书中已经涵盖这些基本知识,所以请不用担心。
 经验丰富的Kubernetes 用户也可以从本书中找到很多有价值的材料,比如本书涵盖了RBAC、持续部署、机密管理以及可观察性等高级主题。无论你的专业水平如何,我们都希望你可以从本书中找到有用的信息。
 本书解决的主要问题
 在计划和创作本书期间,我们与数百人就云原生和Kubernetes 进行了交流,其中既有行业领导者和专家,也有初学者。下面是他们希望本书能够解决的问题:
 ? “我希望了解为什么我应该把时间投入到这项技术上。它能够帮助我和我的团队解决哪些问题?”
 ? “Kubernetes 看起来很棒,但是学习曲线相当陡峭。建立一个快速的演示很容易,但是运维和故障排除似乎非常有难度。我们希望获得一些可靠的指导,了解人们如何在现实世界中运行Kubernetes 集群,以及我们可能会遇到哪些问题。”
 ? “希望提供一些真知灼见。对于新手团队来说,Kubernetes 生态系统提供了太多选择。当有多种方式都可以完成同一项工作时,哪一种才是好的?我们该如何选择?”
 而其中重要的问题是:
 ? 如何在不破坏公司现有状况的情况下使用Kubernetes ?
 在编写本书时,我们牢记包括上述问题在内的许多问题,并竭尽全力回答这些问题。这些问题是否得到了解答?请仔细阅读本书吧。
 排版约定
 本书使用了下述排版约定。
 斜体(Italic)
 表示新术语、URL、示例电子邮件地址、文件名、扩展名、路径名和目录。
 等宽字体(Constant Width)
 表示命令、选项、开关、变量、属性、键、函数、类型、类、命名空间、方法、模块、属性、参数、值、对象、事件、事件句柄、XML 标签、HTML 标签、宏、文件的内容,或者命令的输出。
 斜体等宽字体(constant width italic)
 表示应该替换成用户提供的值。
 使用代码示例
 你可以通过如下链接下载本书的补充材料(代码示例,练习等):https://github.com/cloudnativedevops/demo
 本书的目的是帮助你完成工作。一般来说,你可以在自己的程序或者文档中使用本书附带的示例代码。你无需联系我们获得使用许可,除非你要复制大量的代码。例如,使用本书中的多个代码片段编写程序就无需获得许可。但以CD-ROM 的形式销售或者分发O’Reilly 书中的示例代码则需要获得许可。回答问题时援引本书内容以及书中示例代码,无需获得许可。在你自己的项目文档中使用本书大量的示例代码时,则需要获得许可。
 我们不强制要求署名,但如果你这么做,我们深表感激。署名一般包括书名、作者、出版社和国际标准书号。例如:“Cloud Native DevOps with Kubernetes by John Arundel and Justin Domingus (O’Reilly). Copyright 2019 John Arundel and Justin Domingus, 978-1-492-04076-7”。
 如果你觉得自身情况不在合理使用或上述允许的范围内,请通过邮件和我们联系,地址是 permissions@oreilly.com。
 O’Reilly Online Learning
 40 年间,O’Reilly Media 为众多公司提供技术和商业培训,提升知识储备和洞察力,为企业的成功助力。
 我们有一群独家专家和创新者,他们通过图书、文章、会议和在线学习平台分享知识和技术。O’Reilly 的在线学习平台提供按需访问的直播培训课程、详细的学习路径、交互式编程环境,以及由O’Reilly 和其他200 多家出版社出版的书籍和视频。
 详情请访问 http://oreilly.com。
 联系方式
 请将你对本书的评价和问题发给出版社:
 美国:
 O’Reilly Media, Inc.
 1005 Gravenstein Highway North
 Sebastopol, CA 95472
 中国:
 北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)
 奥莱利技术咨询(北京)有限公司
 这本书有专属网页,你可以在那里找到本书的勘误、示例和其他信息。地址是:http://bit.ly/cloud-nat-dev-ops
 如果你对本书有一些评论或技术上的建议,请发送电子邮件到bookquestions@oreilly.com。
 要了解O’Reilly 图书、培训课程和新闻的更多信息,请访问我们的网站,地址是:
 http://www.oreilly.com
 我们的Facebook:
 http://facebook.com/oreilly
 我们的Twitter:
 http://twitter.com/oreillymedia
 我们的Youtube 视频:
 http://www.youtube.com/oreillymedia
 致谢
 本书得以付梓,我要感谢很多人阅读本书的初稿并提供了宝贵反馈和建议,还有通过其他方式予以支持的人,包括(但不限于)Abby Bangser、Adam J.McPartlan、Adrienne Domingus、Alexis Richardson、Aron Trauring、Camilla Montonen、 Gabriell Nascimento、Hannah Klemme、Hans Findel、Ian Crosby、Ian Shaw、Ihor Dvoretskyi、Ike Devolder、Jeremy Yates、 Jér?me Petazzoni、Jessica Deen、John Harris、Jon Barber、Kitty Karate、Marco Lancini、Mark Ellens、Matt North、Michel Blanc、Mitchell Kent、Nicolas Steinmetz、Nigel Brown、Patrik Dudit?、Paul van der Linden、Philippe Ensarguet、Pietro Mamberti、 Richard Harper、Rick Highness、Sathyajith Bhat、Suresh Vishnoi、Thomas Liakos、Tim McGinnis、Toby Sullivan、Tom Hall、 Vincent De Smet 和Will Thames 等。
           | 
         
       
      
        
     |