4.5 用户推荐指数
计算机
类型
7.0
豆瓣评分
可以朗读
语音朗读
650千字
字数
2019-06-01
发行日期
展开全部
主编推荐语
Kubernetes权威指南:涵盖v1.0至v1.13版本特性,提供实践指南、开发运维指导,强实战指导意义。
内容简介
Kubernetes是由谷歌开源的Docker容器集群管理系统,为容器化的应用提供了资源调度、部署运行、服务发现、扩容及缩容等一整套功能。《Kubernetes权威指南:从Docker到Kubernetes实践全接触(纪念版)》从架构师、开发人员和运维人员的角度,阐述了Kubernetes的基本概念、实践指南、核心原理、开发指导、运维指南等内容,图文并茂、内容丰富、由浅入深、讲解全面;围绕着生产环境中可能出现的问题,给出了大量的典型案例,比如安全配置、网络方案、共享存储方案、高可用性方案及Trouble Shooting技巧等,有很强的实战指导意义。本书随着Kubernetes版本更新不断完善,目前涵盖了Kubernetes从v1.0到v1.13版本的全部特性,尽力为Kubernetes用户提供全方位的指南。
目录
- 版权信息
- 推荐序
- 自序
- 读者服务
- 第1章 Kubernetes入门
- 1.1 Kubernetes是什么
- 1.2 为什么要用Kubernetes
- 1.3 从一个简单的例子开始
- 1.3.1 环境准备
- 1.3.2 启动MySQL服务
- 1.3.3 启动Tomcat应用
- 1.3.4 通过浏览器访问网页
- 1.4 Kubernetes的基本概念和术语
- 1.4.1 Master
- 1.4.2 Node
- 1.4.3 Pod
- 1.4.4 Label
- 1.4.5 Replication Controller
- 1.4.6 Deployment
- 1.4.7 Horizontal Pod Autoscaler
- 1.4.8 StatefulSet
- 1.4.9 Service
- 1.4.10 Job
- 1.4.11 Volume
- 1.4.12 Persistent Volume
- 1.4.13 Namespace
- 1.4.14 Annotation
- 1.4.15 ConfigMap
- 1.4.16 小结
- 第2章 Kubernetes安装配置指南
- 2.1 系统要求
- 2.2 使用kubeadm工具快速安装Kubernetes集群
- 2.2.1 安装kubeadm和相关工具
- 2.2.2 kubeadm config
- 2.2.3 下载Kubernetes的相关镜像
- 2.2.4 运行kubeadm init命令安装Master
- 2.2.5 安装Node,加入集群
- 2.2.6 安装网络插件
- 2.2.7 验证Kubernetes集群是否安装完成
- 2.3 以二进制文件方式安装Kubernetes集群
- 2.3.1 Master上的etcd、kube-apischmerver、kube-controller-manager、kube-scheduler服务
- 2.3.2 Node上的kubelet、kube-proxy服务
- 2.4 Kubernetes集群的安全设置
- 2.4.1 基于CA签名的双向数字证书认证方式
- 2.4.2 基于HTTP Base或Token的简单认证方式
- 2.5 Kubernetes集群的网络配置
- 2.6 内网中的Kubernetes相关配置
- 2.6.1 Docker Private Registry(私有Docker镜像库)
- 2.6.2 kubelet配置
- 2.7 Kubernetes的版本升级
- 2.7.1 二进制升级
- 2.7.2 使用kubeadm进行集群升级
- 2.8 Kubernetes核心服务配置详解
- 2.8.1 公共配置参数
- 2.8.2 kube-apischmerver启动参数
- 2.8.3 kube-controller-manager启动参数
- 2.8.4 kube-scheduler启动参数
- 2.8.5 kubelet启动参数
- 2.8.6 kube-proxy启动参数
- 2.9 CRI(容器运行时接口)详解
- 2.9.1 CRI概述
- 2.9.2 CRI的主要组件
- 2.9.3 Pod和容器的生命周期管理
- 2.9.4 面向容器级别的设计思路
- 2.9.5 尝试使用新的Docker-CRI来创建容器
- 2.9.6 CRI的进展
- 2.10 kubectl命令行工具用法详解
- 2.10.1 kubectl用法概述
- 2.10.2 kubectl子命令详解
- 2.10.3 kubectl参数列表
- 2.10.4 kubectl输出格式
- 2.10.5 kubectl操作示例
- 第3章 深入掌握Pod
- 3.1 Pod定义详解
- 3.2 Pod的基本用法
- 3.3 静态Pod
- 3.4 Pod容器共享Volume
- 3.5 Pod的配置管理
- 3.5.1 ConfigMap概述
- 3.5.2 创建ConfigMap资源对象
- 3.5.3 在Pod中使用ConfigMap
- 3.5.4 使用ConfigMap的限制条件
- 3.6 在容器内获取Pod信息(Downward API)
- 3.6.1 环境变量方式:将Pod信息注入为环境变量
- 3.6.2 环境变量方式:将容器资源信息注入为环境变量
- 3.6.3 Volume挂载方式
- 3.7 Pod生命周期和重启策略
- 3.8 Pod健康检查和服务可用性检查
- 3.9 玩转Pod调度
- 3.9.1 Deployment或RC:全自动调度
- 3.9.2 NodeSelector:定向调度
- 3.9.3 NodeAffinity:Node亲和性调度
- 3.9.4 PodAffinity:Pod亲和与互斥调度策略
- 3.9.5 Taints和Tolerations(污点和容忍)
- 3.9.6 Pod Priority Preemption:Pod优先级调度
- 3.9.7 DaemonSet:在每个Node上都调度一个Pod
- 3.9.8 Job:批处理调度
- 3.9.9 Cronjob:定时任务
- 3.9.10 自定义调度器
- 3.10 Init Container(初始化容器)
- 3.11 Pod的升级和回滚
- 3.11.1 Deployment的升级
- 3.11.2 Deployment的回滚
- 3.11.3 暂停和恢复Deployment的部署操作,以完成复杂的修改
- 3.11.4 使用kubectl rolling-update命令完成RC的滚动升级
- 3.11.5 其他管理对象的更新策略
- 3.12 Pod的扩缩容
- 3.12.1 手动扩缩容机制
- 3.12.2 自动扩缩容机制
- 3.13 使用StatefulSet搭建MongoDB集群
- 3.13.1 前提条件
- 3.13.2 创建StatefulSet
- 3.13.3 查看MongoDB集群的状态
- 3.13.4 StatefulSet的常见应用场景
- 第4章 深入掌握Service
- 4.1 Service定义详解
- 4.2 Service的基本用法
- 4.2.1 多端口Service
- 4.2.2 外部服务Service
- 4.3 Headless Service
- 4.3.1 自定义SeedProvider
- 4.3.2 通过Service动态查找Pod
- 4.3.3 Cassandra集群中新节点的自动添加
- 4.4 从集群外部访问Pod或Service
- 4.4.1 将容器应用的端口号映射到物理机
- 4.4.2 将Service的端口号映射到物理机
- 4.5 DNS服务搭建和配置指南
- 4.5.1 在创建DNS服务之前修改每个Node上kubelet的启动参数
- 4.5.2 创建CoreDNS应用
- 4.5.3 服务名的DNS解析
- 4.5.4 CoreDNS的配置说明
- 4.5.5 Pod级别的DNS配置说明
- 4.6 Ingress:HTTP 7层路由机制
- 4.6.1 创建Ingress Controller和默认的backend服务
- 4.6.2 定义Ingress策略
- 4.6.3 客户端访问http://mywebsite.com/demo
- 4.6.4 Ingress的策略配置技巧
- 4.6.5 Ingress的TLS安全设置
- 第5章 核心组件运行机制
- 5.1 Kubernetes API Server原理解析
- 5.1.1 Kubernetes API Server概述
- 5.1.2 API Server架构解析
- 5.1.3 独特的Kubernetes Proxy API接口
- 5.1.4 集群功能模块之间的通信
- 5.2 Controller Manager原理解析
- 5.2.1 Replication Controller
- 5.2.2 Node Controller
- 5.2.3 ResourceQuota Controller
- 5.2.4 Namespace Controller
- 5.2.5 Service Controller与Endpoints Controller
- 5.3 Scheduler原理解析
- 5.4 kubelet运行机制解析
- 5.4.1 节点管理
- 5.4.2 Pod管理
- 5.4.3 容器健康检查
- 5.4.4 cAdvisor资源监控
- 5.5 kube-proxy运行机制解析
- 第6章 深入分析集群安全机制
- 6.1 API Server认证管理
- 6.2 API Server授权管理
- 6.2.1 ABAC授权模式详解
- 6.2.2 Webhook授权模式详解
- 6.2.3 RBAC授权模式详解
- 6.3 Admission Control
- 6.4 Service Account
- 6.5 Secret私密凭据
- 6.6 Pod的安全策略配置
- 6.6.1 PodSecurityPolicy的工作机制
- 6.6.2 PodSecurityPolicy配置详解
- 6.6.3 Pod的安全设置详解
- 第7章 网络原理
- 7.1 Kubernetes网络模型
- 7.2 Docker网络基础
- 7.2.1 网络命名空间
- 7.2.2 Veth设备对
- 7.2.3 网桥
- 7.2.4 iptables和Netfilter
- 7.2.5 路由
- 7.3 Docker的网络实现
- 7.4 Kubernetes的网络实现
- 7.4.1 容器到容器的通信
- 7.4.2 Pod之间的通信
- 7.5 Pod和Service网络实战
- 7.6 CNI网络模型
- 7.6.1 CNM模型
- 7.6.2 CNI模型
- 7.6.3 在Kubernetes中使用网络插件
- 7.7 Kubernetes网络策略
- 7.7.1 网络策略配置说明
- 7.7.2 在Namespace级别设置默认的网络策略
- 7.7.3 NetworkPolicy的发展
- 7.8 开源的网络组件
- 7.8.1 Flannel
- 7.8.2 Open vSwitch
- 7.8.3 直接路由
- 7.8.4 Calico容器网络和网络策略实战
- 第8章 共享存储原理
- 8.1 共享存储机制概述
- 8.2 PV详解
- 8.2.1 PV的关键配置参数
- 8.2.2 PV生命周期的各个阶段
- 8.3 PVC详解
- 8.4 PV和PVC的生命周期
- 8.4.1 资源供应
- 8.4.2 资源绑定
- 8.4.3 资源使用
- 8.4.4 资源释放
- 8.4.5 资源回收
- 8.5 StorageClass详解
- 8.5.1 StorageClass的关键配置参数
- 8.5.2 设置默认的StorageClass
- 8.6 动态存储管理实战:GlusterFS
- 8.6.1 准备工作
- 8.6.2 创建GlusterFS管理服务容器集群
- 8.6.3 创建Heketi服务
- 8.6.4 为Heketi设置GlusterFS集群
- 8.6.5 定义StorageClass
- 8.6.6 定义PVC
- 8.6.7 Pod使用PVC的存储资源
- 8.7 CSI存储机制详解
- 8.7.1 CSI的设计背景
- 8.7.2 CSI存储插件的关键组件和部署架构
- 8.7.3 CSI存储插件的使用示例
- 8.7.4 CSI的发展
- 第9章 Kubernetes开发指南
- 9.1 REST简述
- 9.2 Kubernetes API详解
- 9.2.1 Kubernetes API概述
- 9.2.2 Kubernetes API版本的演进策略
- 9.2.3 API Groups(API组)
- 9.2.4 API REST的方法说明
- 9.2.5 API Server响应说明
- 9.3 使用Java程序访问Kubernetes API
- 9.3.1 Jersey
- 9.3.2 Fabric8
- 9.3.3 使用说明
- 9.3.4 其他客户端库
- 9.4 Kubernetes API的扩展
- 9.4.1 使用CRD扩展API资源
- 9.4.2 使用API聚合机制扩展API资源
- 第10章 Kubernetes集群管理
- 10.1 Node的管理
- 10.1.1 Node的隔离与恢复
- 10.1.2 Node的扩容
- 10.2 更新资源对象的Label
- 10.3 Namespace:集群环境共享与隔离
- 10.3.1 创建Namespace
- 10.3.2 定义Context(运行环境)
- 10.3.3 设置工作组在特定Context环境下工作
- 10.4 Kubernetes资源管理
- 10.4.1 计算资源管理
- 10.4.2 资源配置范围管理(LimitRange)
- 10.4.3 资源服务质量管理(Resource QoS)
- 10.4.4 资源配额管理(Resource Quotas)
- 10.4.5 ResourceQuota和LimitRange实践
- 10.4.6 资源管理总结
- 10.5 资源紧缺时的Pod驱逐机制
- 10.5.1 驱逐策略
- 10.5.2 驱逐信号
- 10.5.3 驱逐阈值
- 10.5.4 驱逐监控频率
- 10.5.5 节点的状况
- 10.5.6 节点状况的抖动
- 10.5.7 回收Node级别的资源
- 10.5.8 驱逐用户的Pod
- 10.5.9 资源最少回收量
- 10.5.10 节点资源紧缺情况下的系统行为
- 10.5.11 可调度的资源和驱逐策略实践
- 10.5.12 现阶段的问题
- 10.6 Pod Disruption Budget(主动驱逐保护)
- 10.7 Kubernetes集群的高可用部署方案
- 10.7.1 手工方式的高可用部署方案
- 10.7.2 使用kubeadm的高可用部署方案
- 10.8 Kubernetes集群监控
- 10.8.1 通过Metrics Server监控Pod和Node的CPU和内存资源使用数据
- 10.8.2 Prometheus+Grafana集群性能监控平台搭建
- 10.9 集群统一日志管理
- 10.9.1 系统部署架构
- 10.9.2 创建Elasticsearch RC和Service
- 10.9.3 在每个Node上启动Fluentd
- 10.9.4 运行Kibana
- 10.10 Kubernetes的审计机制
- 10.11 使用Web UI(Dashboard)管理集群
- 10.12 Helm:Kubernetes应用包管理工具
- 10.12.1 Helm概述
- 10.12.2 Helm的主要概念
- 10.12.3 安装Helm
- 10.12.4 Helm的常见用法
- 10.12.5 --set的格式和限制
- 10.12.6 更多的安装方法
- 10.12.7 helm upgrade和helm rollback:应用的更新或回滚
- 10.12.8 helm install/upgrade/rollback命令的常用参数
- 10.12.9 helm delete:删除一个Release
- 10.12.10 helm repo:仓库的使用
- 10.12.11 自定义Chart
- 10.12.12 对Chart目录结构和配置文件的说明
- 10.12.13 对Chart.yaml文件的说明
- 10.12.14 快速制作自定义的Chart
- 10.12.15 搭建私有Repository
- 第11章 Trouble Shooting指导
- 11.1 查看系统Event
- 11.2 查看容器日志
- 11.3 查看Kubernetes服务日志
- 11.4 常见问题
- 11.4.1 由于无法下载pause镜像导致Pod一直处于Pending状态
- 11.4.2 Pod创建成功,但RESTARTS数量持续增加
- 11.4.3 通过服务名无法访问服务
- 11.5 寻求帮助
- 第12章 Kubernetes开发中的新功能
- 12.1 对Windows容器的支持
- 12.1.1 Windows Node部署
- 12.1.2 Windows容器支持的Kubernetes特性和发展趋势
- 12.2 对GPU的支持
- 12.2.1 环境准备
- 12.2.2 在容器中使用GPU资源
- 12.2.3 发展趋势
- 12.3 Pod的垂直扩缩容
- 12.3.1 前提条件
- 12.3.2 安装Vertical Pod Autoscaler
- 12.3.3 为Pod设置垂直扩缩容
- 12.3.4 注意事项
- 12.4 Kubernetes的演进路线和开发模式
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。