作者 |
马永亮 杨保华 戴王剑 曹亚仑 |
丛书名 |
云计算与虚拟化技术丛书 |
出版社 |
机械工业出版社 |
ISBN |
9782109262035 |
简要 |
简介 |
内容简介书籍计算机书籍 ---------------------------8078403 - Kubernetes进阶实战(第2版)--------------------------- 全书分为5个部分。第一部分介绍Kubernetes系统基础架构及核心概述,并提供一个Kubernetes快速部署和应用的入门指南。第二部分剖析分Kubernetes系统的应用编排核心组件,对Pod、Controller、Service和Ingress、存储卷和应用配置等进行深入介绍。第三部分介绍安全相关的话题,主要涉及认证、授权、准入控制、网络模型和网络策略等话题。第四部分介绍Kubernetes系统高级话题及系统扩展,包括调度策略、CRD和Operator、资源指标与系统监控及应用管理器等。第五部分介绍基于Kubernetes的服务治理与服务网络,涉及数据平面组件Envoy、Istio架构、部署和应用案例等话题。 ---------------------------8052127 - Docker技术入门与实战 第3版--------------------------- 本书从Docker基本原理开始,深入浅出地讲解Docker的构建与操作,内容系统全面,可帮助开发人员、运维人员快速部署Docker应用。本书分为四大部分:基础入门、实战案例、进阶技能、开源项目,第一部分(第1~8章)介绍Docker与虚拟化技术的基本概念,包括安装、镜像、容器、仓库、数据卷、端口映射等;第二部分(第9~16章)通过案例介绍Docker的应用方法,包括与各种操作系统平台、SSH服务的镜像、Web服务器与应用、数据库的应用、各类编程语言的接口、容器云等,还介绍了作者在容器实战中的思考与经验总结;第三部分(第17~21章)介绍一些进阶技能,如Docker核心技术实现原理、安全、高级网络配置、libnetwork插件化网络功能等;第四部分(第22~28章)介绍与容器开发相关的开源项目,包括Etcd、Docker Machine、Docker Compose、Docker Swarm、Mesos、Kubernetes等。第3版根据 Docker 18.x 系列版本对全书内容进行了全面修订。 |
目录 |
[套装书具体书目] 8052127 - Docker技术入门与实战 第3版 - 9787111608523 - 机械工业出版社 - 定价 89 8078403 - Kubernetes进阶实战(第2版) - 9787111671862 - 机械工业出版社 - 定价 149 ---------------------------8078403 - Kubernetes进阶实战(第2版)--------------------------- 前言 第一部分 系统基础 第1章 Kubernetes系统基础2 1.1 容器与容器编排系统3 1.1.1 Docker容器技术3 1.1.2 OCI与容器运行时5 1.1.3 为什么需要容器编排系统7 1.2 Kubernetes基础8 1.2.1 Kubernetes集群概述9 1.2.2 Kubernetes集群架构11 1.3 应用的运行与互联互通14 1.3.1 Pod与Service15 1.3.2 Pod控制器16 1.3.3 Kubernetes网络基础18 1.3.4 部署并访问应用20 1.4 简析Kubernetes生态系统21 1.5 本章小结23 第2章 Kubernetes快速入门24 2.1 利用kubeadm部署Kubernetes集群24 2.1.1 kubeadm部署工具25 2.1.2 集群组件运行模式26 2.1.3 kubeadm init工作流程28 2.1.4 kubeadm join工作流程31 2.1.5 kubeadm配置文件33 2.2 部署分布式Kubernetes集群34 2.2.1 准备基础环境34 2.2.2 单控制平面集群38 2.3 kubectl命令与资源管理43 2.3.1 资源管理的操作44 2.3.2 kubectl的命令格式45 2.3.3 kubectl命令常用操作示例47 2.3.4 kubectl插件50 2.4 命令式应用编排52 2.4.1 应用编排53 2.4.2 部署Service对象56 2.4.3 扩容与缩容58 2.4.4 修改与删除对象60 2.5 本章小结61 第二部分 核心资源 第3章 Kubernetes资源管理64 3.1 资源对象与API群组64 3.1.1 Kubernetes的资源对象65 3.1.2 资源及其在API中的组织形式68 3.1.3 访问Kubernetes RESTful API70 3.2 对象类资源配置规范72 3.2.1 定义资源对象73 3.2.2 对象元数据74 3.2.3 资源的期望状态75 3.2.4 获取资源配置清单格式文档75 3.2.5 资源对象管理方式77 3.3 名称空间79 3.3.1 名称空间的作用80 3.3.2 管理Namespace资源81 3.4 节点资源86 3.4.1 节点心跳与节点租约86 3.4.2 节点状态87 3.4.3 手动管理Node资源与节点89 3.5 标签与标签选择器91 3.5.1 资源标签91 3.5.2 标签选择器93 3.6 资源注解94 3.7 本章小结96 第4章 应用部署、运行与管理97 4.1 应用容器与Pod资源97 4.1.1 Pod资源基础97 4.1.2 容器设计模式99 4.1.3 Pod的生命周期104 4.2 在Pod中运行应用105 4.2.1 使用单容器Pod资源106 4.2.2 获取Pod与容器状态详情107 4.2.3 自定义容器应用与参数110 4.2.4 容器环境变量111 4.2.5 Pod的创建与删除过程112 4.3 暴露容器服务115 4.3.1 其他容器端口映射115 4.3.2 配置Pod使用节点网络117 4.4 容器安全上下文118 4.4.1 配置格式速览119 4.4.2 管理容器进程的运行身份120 4.4.3 管理容器的内核功能121 4.4.4 特权模式容器123 4.4.5 在Pod上使用sysctl124 4.5 容器应用的管理接口125 4.5.1 健康状态监测接口126 4.5.2 容器存活状态检测127 4.5.3 Pod的重启策略133 4.5.4 容器就绪状态检测133 4.5.5 容器生命周期135 4.6 多容器Pod138 4.6.1 初始化容器138 4.6.2 Sidecar容器140 4.7 资源需求与资源限制142 4.7.1 资源需求与限制142 4.7.2 容器资源需求143 4.7.3 容器资源限制145 4.7.4 容器可见资源146 4.7.5 Pod服务质量类别147 4.8 综合应用案例149 4.9 本章小结150 第5章 存储卷与数据持久化152 5.1 存储卷基础152 5.1.1 存储卷概述152 5.1.2 配置Pod存储卷154 5.2 临时存储卷156 5.2.1 emptyDir存储卷156 5.2.2 gitRepo存储卷158 5.3 hostPath存储卷159 5.4 网络存储卷161 5.4.1 NFS存储卷162 5.4.2 RBD存储卷164 5.4.3 CephFS存储卷167 5.4.4 GlusterFS存储卷169 5.5 持久存储卷171 5.5.1 PV与PVC基础172 5.5.2 PV的生命周期173 5.5.3 静态PV资源175 5.5.4 PVC资源178 5.5.5 在Pod中使用PVC181 5.5.6 存储类181 5.6 容器存储接口CSI187 5.6.1 CSI基础187 5.6.2 Longhorn存储系统189 5.7 本章小结194 第6章 应用配置195 6.1 容器化应用配置195 6.1.1 容器化应用配置的常见方式195 6.1.2 容器环境变量197 6.2 应用程序配置管理与ConfigMap资源199 6.2.1 创建ConfigMap对象200 6.2.2 通过环境变量引用ConfigMap键值203 6.2.3 ConfigMap存储卷206 6.2.4 容器应用重载新配置211 6.3 Secret资源:向容器注入配置信息213 6.3.1 创建Secret资源213 6.3.2 使用Secret资源219 6.4 应用Downward API存储卷配置信息223 6.4.1 环境变量式元数据注入223 6.4.2 存储卷式元数据注入226 6.5 本章小结228 第7章 Service与服务发现229 7.1 Service资源及其实现模型229 7.1.1 Service资源概述229 7.1.2 kube-proxy代理模型230 7.1.3 Service资源类型233 7.2 应用Service资源235 7.2.1 应用ClusterIP Service资源236 7.2.2 应用NodePort Service资源238 7.2.3 应用LoadBalancer Service资源240 7.2.4 外部IP241 7.3 Service与Endpoint资源242 7.3.1 Endpoint与容器探针243 7.3.2 自定义Endpoint资源245 7.4 深入理解Service资源247 7.4.1 iptables代理模型247 7.4.2 ipvs代理模型255 7.5 Kubernetes服务发现258 7.5.1 服务发现概述258 7.5.2 基于环境变量的服务发现259 7.5.3 基于DNS的服务发现260 7.5.4 Pod的DNS解析策略与配置263 7.5.5 配置CoreDNS264 7.6 Headless Service资源解析266 7.6.1 ExternalName Service266 7.6.2 Headless Service267 7.7 本章小结270 第8章 应用编排与管理271 8.1 Kubernetes控制器基础271 8.1.1 控制器与Pod资源272 8.1.2 Pod模板资源275 8.2 ReplicaSet控制器276 8.2.1 功能分析276 8.2.2 ReplicaSet基础应用277 8.2.3 应用更新与回滚280 8.2.4 应用扩容与缩容285 8.2.5 高级更新策略286 8.3 Deployment控制器291 8.3.1 Deployment基础应用291 8.3.2 Deployment更新策略294 8.3.3 应用更新与回滚296 8.3.4 金丝雀发布298 8.4 StatefulSet控制器300 8.4.1 功能分析300 8.4.2 StatefulSet基础应用302 8.4.3 扩缩容与滚动更新306 8.4.4 StatefulSet的局限性309 8.5 DaemonSet控制器310 8.5.1 DaemonSet资源基础应用311 8.5.2 DaemonSet更新策略313 8.6 Job控制器314 8.6.1 Job资源基础应用315 8.6.2 并行式Job与扩容机制318 8.7 CronJob控制器319 8.8 Pod中断预算321 8.9 本章小结324 第三部分 安全 第9章 认证、授权与准入控制326 9.1 Kubernetes访问控制326 9.1.1 用户账户与用户组327 9.1.2 认证、授权与准入控制基础328 9.1.3 测试使用API Server的访问控制机制332 9.2 ServiceAccount及认证336 9.2.1 ServiceAccount自动化336 9.2.2 ServiceAccount基础应用338 9.2.3 Pod资源上的服务账户340 9.3 X509数字证书认证342 9.3.1 Kubernetes的X509数字证书认证体系343 9.3.2 TLS Bootstrapping机制347 9.4 kubeconfig配置文件348 9.4.1 kubeconfig文件格式348 9.4.2 自定义kubeconfig文件350 9.4.3 X509数字证书身份凭据353 9.4.4 多kubeconfig文件与合并354 9.5 基于角色的访问控制:RBAC355 9.5.1 RBAC授权模型356 9.5.2 Role与ClusterRole358 9.5.3 RoleBinding与ClusterRole-Binding361 9.5.4 聚合型ClusterRole364 9.5.5 面向用户的内置ClusterRole366 9.6 认证与权限应用案例:Dashboard368 9.6.1 部署Dashboard368 9.6.2 认证与授权370 9.7 准入控制器372 9.7.1 准入控制器概述372 9.7.2 LimitRange373 9.7.3 ResourceQuota377 9.7.4 PodSecurityPolicy379 9.8 本章小结386 第10章 网络模型与网络策略387 10.1 容器网络模型387 10.1.1 容器网络通信模式387 10.1.2 CNI网络插件基础391 10.1.3 Overlay网络模型394 10.1.4 Underlay网络模型396 10.1.5 配置CNI插件400 10.1.6 CNI插件与选型404 10.2 Flannel网络插件406 10.2.1 Flannel配置基础406 10.2.2 VXLAN后端408 10.2.3 直接路由412 10.2.4 host-gw后端414 10.3 Calico网络插件416 10.3.1 Calico架构417 10.3.2 Calico配置基础419 10.3.3 IPIP隧道网络421 10.3.4 客户端工具calicoctl424 10.3.5 BGP网络与BGP Reflector426 10.4 网络策略430 10.4.1 网络策略与配置基础431 10.4.2 管控入站流量433 10.4.3 管控出站流量436 10.4.4 隔离名称空间438 10.4.5 Calico的网络策略439 10.5 本章小结441 第四部分 进阶 第11章 Pod资源调度444 11.1 Kubernetes调度器444 11.1.1 调度器基础445 11.1.2 经典调度策略449 11.1.3 调度器插件454 11.1.4 配置调度器456 11.2 节点亲和调度461 11.2.1 Pod节点选择器462 11.2.2 强制节点亲和463 11.2.3 首选节点亲和465 11.3 Pod亲和调度467 11.3.1 位置拓扑468 11.3.2 Pod间的强制亲和469 11.3.3 Pod间的首选亲和471 11.3.4 Pod间的反亲和关系473 11.4 节点污点与Pod容忍度475 11.4.1 污点与容忍度基础概念475 11.4.2 定义污点477 11.4.3 定义容忍度478 11.4.4 问题节点标识479 11.5 拓扑分布式调度480 11.6 Pod优先级与抢占481 11.7 本章小结483 第12章 Kubernetes系统扩展484 12.1 CRD484 12.1.1 CRD 基础应用485 12.1.2 打印字段与资源类别488 12.1.3 CRD子资源489 12.1.4 CRD v1beta1版本491 12.2 自定义API Server492 12.2.1 自定义API Server运行机制493 12.2.2 APIService资源与应用494 12.3 控制器与Operator496 12.3.1 自定义控制器的工作机制496 12.3.2 Operator与简单应用示例500 12.4 Kubernetes集群高可用503 12.4.1 etcd高可用与控制平面拓扑503 12.4.2 Controller Manager与Scheduler高可用505 12.4.3 部署高可用控制平面506 12.5 本章小结508 第13章 Ingress与服务发布509 13.1 Ingress资源509 13.1.1 Ingress与Ingress控制器流量转发509 13.1.2 Ingress资源规范511 13.1.3 Ingress资源类型515 13.2 Ingress控制器部署与应用517 13.2.1 Ingress Nginx部署与测试518 13.2.2 配置Ingress Nginx522 13.2.3 Ingress资源案例:发布Dashboard524 13.3 Contour控制器525 13.3.1 Envoy数据平面525 13.3.2 部署Contour529 13.3.3 HTTPProxy基础532 13.3.4 HTTPProxy高级路由533 13.3.5 HTTPProxy服务韧性539 13.3.6 TCP代理542 13.4 本章小结544 第五部分 必备生态组件 第14章 应用管理546 14.1 Kustomize声明式应用管理546 14.1.1 声明式应用管理基本用法547 14.1.2 应用配置分解549 14.1.3 配置生成器551 14.1.4 资源补丁553 14.2 Helm基础应用556 14.2.1 Helm基础556 14.2.2 Helm 3 快速入门558 14.3 Helm Chart562 14.3.1 Chart包结构与描述文件562 14.3.2 Chart中的依赖关系564 14.3.3 模板与值565 14.3.4 其他需要说明的话题567 14.3.5 自定义Chart简单示例568 14.4 Helm实践:部署Harbor注册中心575 14.4.1 部署方案与配置方式577 14.4.2 Harbor部署与测试582 14.5 本章小结585 第15章 资源指标与集群监控586 15.1 资源监控与资源指标586 15.1.1 资源监控与Heapster587 15.1.2 新一代监控体系与指标系统589 15.2 资源指标与应用591 15.2.1 部署Metrics Server591 15.2.2 显示资源使用信息595 15.3 自定义指标与Prometheus596 15.3.1 Prometheus基础597 15.3.2 Prometheus核心概念601 15.3.3 Prometheus查询语言604 15.3.4 监控Kubernetes606 15.3.5 自定义指标适配器616 15.4 自动弹性缩放621 15.4.1 HPA控制器概述622 15.4.2 HPA v1控制器622 15.4.3 HPA v2控制器624 15.5 本章小结629 第16章 集群日志系统630 16.1 集群日志系统基础630 16.1.1 日志系统概述631 16.1.2 Elasticsearch基础633 16.2 EFK日志管理系统636 16.2.1 Elasticsearch集群637 16.2.2 日志采集器Fluent Bit642 16.2.3 可视化组件Kibana647 16.3 本章小结650 ---------------------------8052127 - Docker技术入门与实战 第3版--------------------------- 第3版前言 第一部分 基础入门 第1章 初识Docker与容器 3 1.1 什么是Docker 3 1.2 为什么要使用Docker 6 1.3 Docker与虚拟化 8 1.4 本章小结 9 第2章 核心概念与安装配置 10 2.1 核心概念 10 2.2 安装Docker引擎 11 2.2.1 Ubuntu 环境下安装 Docker 12 2.2.2 CentOS 环境下安装 Docker 14 2.2.3 通过脚本安装 15 2.2.4 macOS环境下安装 Docker 15 2.2.5 Windows环境下安装Docker 23 2.3 配置 Docker 服务 26 2.4 推荐实践环境 27 2.5 本章小结 27 第3章 使用Docker镜像 28 3.1 获取镜像 28 3.2 查看镜像信息 30 3.3 搜寻镜像 32 3.4 删除和清理镜像 33 3.5 创建镜像 35 3.6 存出和载入镜像 36 3.7 上传镜像 37 3.8 本章小结 38 第4章 操作Docker容器 39 4.1 创建容器 39 4.2 停止容器 44 4.3 进入容器 46 4.4 删除容器 47 4.5 导入和导出容器 48 4.6 查看容器 49 4.7 其他容器命令 50 4.8 本章小结 52 第5章 访问 Docker 仓库 53 5.1 Docker Hub 公共镜像市场 53 5.2 第三方镜像市场 55 5.3 搭建本地私有仓库 56 5.4 本章小结 58 第6章 Docker数据管理 59 6.1 数据卷 59 6.2 数据卷容器 60 6.3 利用数据卷容器来迁移数据 62 6.4 本章小结 62 第7章 端口映射与容器互联 63 7.1 端口映射实现容器访问 63 7.2 互联机制实现便捷互访 64 7.3 本章小结 67 第8章 使用Dockerfile创建镜像 68 8.1 基本结构 68 8.2 指令说明 70 8.2.1 配置指令 71 8.2.2 操作指令 74 8.3 创建镜像 75 8.3.1 命令选项 76 8.3.2 选择父镜像 77 8.3.3 使用.dockerignore文件 77 8.3.4 多步骤创建 78 8.4 最佳实践 79 8.5 本章小结 80 第二部分 实战案例 第9章 操作系统 83 9.1 BusyBox 83 9.2 Alpine 85 9.3 Debian/Ubuntu 86 9.4 CentOS/Fedora 88 9.5 本章小结 89 第10章 为镜像添加SSH服务 90 10.1 基于commit命令创建 90 10.2 使用Dockerfile创建 93 10.3 本章小结 95 第11章 Web服务与应用 96 11.1 Apache 96 11.2 Nginx 100 11.3 Tomcat 104 11.4 Jetty 108 11.5 LAMP 109 11.6 持续开发与管理 111 11.7 本章小结 114 第12章 数据库应用 115 12.1 MySQL 115 12.2 Oracle Database XE 117 12.3 MongoDB 118 12.4 Redis 124 12.5 Cassandra 126 12.6 本章小结 129 第13章 分布式处理与大数据平台 130 13.1 Hadoop 130 13.2 Spark 133 13.3 Storm 136 13.4 Elasticsearch 140 13.5 本章小结 141 第14章 编程开发 142 14.1 C/C++ 142 14.2 Java 146 14.3 Python 149 14.3.1 使用Python官方镜像 150 14.3.2 使用PyPy 151 14.3.3 使用 Flask 151 14.3.4 相关资源 154 14.4 JavaScript 154 14.4.1 使用Node.js 154 14.4.2 相关资源 158 14.5 Go 158 14.6 本章小结 161 第15章 容器与云服务 162 15.1 公有云容器服务 162 15.1.1 AWS 162 15.1.2 Google Cloud Platform 163 15.1.3 Azure 164 15.1.4 腾讯云 165 15.1.5 阿里云 165 15.1.6 华为云 166 15.1.7 UCloud 167 15.2 容器云服务 168 15.3 阿里云容器服务 172 15.4 时速云介绍 174 15.5 本章小结 175 第16章 容器实战思考 176 16.1 Docker 为什么会成功 176 16.2 研发人员该如何看待容器 177 16.3 容器化开发模式 178 16.4 容器与生产环境 180 16.5 本章小结 182 第三部分 进阶技能 第17章 核心实现技术 185 17.1 基本架构 185 17.2 命名空间 187 17.3 控制组 191 17.4 联合文件系统 193 17.5 Linux网络虚拟化 195 17.6 本章小结 197 第18章 配置私有仓库 199 18.1 安装Docker Registry 199 18.2 配置TLS证书 201 18.3 管理访问权限 202 18.4 配置Registry 205 18.5 批量管理镜像 211 18.6 使用通知系统 214 18.7 本章小结 217 第19章 安全防护与配置 218 19.1 命名空间隔离的安全 218 19.2 控制组资源控制的安全 219 19.3 内核能力机制 219 19.4 Docker服务端的防护 221 19.5 更多安全特性的使用 221 19.6 使用第三方检测工具 222 19.6.1 Docker Bench 222 19.6.2 clair 223 19.7 本章小结 224 第20章 高级网络功能 225 20.1 启动与配置参数 225 20.2 配置容器DNS和主机名 227 20.3 容器访问控制 228 20.4 映射容器端口到宿主主机的实现 229 20.5 配置容器网桥 231 20.6 自定义网桥 232 20.7 使用OpenvSwitch网桥 233 20.8 创建一个点到点连接 235 20.9 本章小结 236 第21章 libnetwork插件化网络功能 237 21.1 容器网络模型 237 21.2 Docker网络命令 238 21.3 构建跨主机容器网络 241 21.4 本章小结 243 第四部分 开源项目 第22章 Etcd—高可用的键值数据库 247 22.1 Etcd简介 247 22.2 安装和使用Etcd 248 22.3 使用客户端命令 253 22.3.1 数据类操作 255 22.3.2 非数据类操作 258 22.4 Etcd集群管理 260 22.4.1 构建集群 260 22.4.2 集群参数配置 263 22.5 本章小结 264 第23章 Docker三剑客之Machine 265 23.1 Machine简介 265 23.2 安装Machine 265 23.3 使用Machine 266 23.4 Machine命令 268 23.5 本章小结 272 第24章 Docker三剑客之Compose 273 24.1 Compose简介 273 24.2 安装与卸载 274 24.3 Compose模板文件 277 24.4 Compose命令说明 292 24.5 Compose环境变量 299 24.6 Compose应用案例一:Web负载均衡 300 24.7 Compose应用案例二:大数据Spark集群 304 24.8 本章小结 309 第25章 Docker三剑客之Swarm 310 25.1 Swarm简介 310 25.2 基本概念 311 25.3 使用Swarm 313 25.4 使用服务命令 316 25.5 本章小结 319 第26章 Mesos—优秀的集群资源调度平台 321 26.1 简介 321 26.2 Mesos安装与使用 322 26.3 原理与架构 330 26.3.1 架构 330 26.3.2 基本单元 331 26.3.3 调度 331 26.3.4 高可用性 332 26.4 Mesos配置解析 333 26.4.1 通用项 333 26.4.2 master专属配置项 333 26.4.3 slave专属配置项 335 26.5 日志与监控 338 26.6 常见应用框架 340 26.7 本章小结 341 第27章 Kubernetes—生产级容器集群平台 343 27.1 简介 343 27.2 核心概念 345 27.3 资源抽象对象 348 27.3.1 容器组 348 27.3.2 服务 349 27.3.3 存储卷 350 27.4 控制器抽象对象 351 27.5 其他抽象对象 353 27.6 快速体验 355 27.7 重要组件 359 27.7.1 Etcd 360 27.7.2 kube-apiserver 360 27.7.3 kube-scheduler 361 27.7.4 kube-controller-manager 362 27.7.5 kubelet 363 27.7.6 kube-proxy 364 27.8 使用kubectl 365 27.8.1 获取kubectl 365 27.8.2 命令格式 366 27.8.3 全局参数 367 27.8.4 通用子命令 369 27.9 网络设计 372 27.10 本章小结 374 第28章 其他相关项目 375 28.1 持续集成 375 28.2 容器管理 377 28.2.1 Portainer 377 28.2.2 Panamax 378 28.2.3 Seagull 378 28.3 编程开发 380 28.4 网络支持 381 28.4.1 Pipework 381 28.4.2 Flannel项目 382 28.4.3 Weave Net项目 382 28.4.4 Calico项目 383 28.5 日志处理 383 28.6 服务代理 385 28.7 标准与规范 389 28.8 其他项目 392 28.9 本章小结 396 附录 附录A 常见问题总结 398 附录B Docker命令查询 404 附录C 参考资源链接 411 |