第1章 先把 Kubernetes 跑起来 1 1.1 先跑起来 1 1.2 创建 Kubernetes 集群 2 1.3 部署应用 4 1.4 访问应用 5 1.5 Scale 应用 6 1.6 滚动更新 7 1.7 小结 8 第2章 重要概念 9 第3章 部署 Kubernetes Cluster 13 3.1 安装 Docker 14 3.2 安装 kubelet、kubeadm 和 kubectl 14 3.3 用 kubeadm 创建 Cluster 14 3.3.1 初始化Master 14 3.3.2 配置 kubectl 16 3.3.3 安装Pod网络 16 3.3.4 添加 k8s-node1 和 k8s-node2 16 3.4 小结 18 第4章 Kubernetes 架构 19 4.1 Master 节点 19 4.2 Node 节点 20 4.3 完整的架构图 21 4.4 用例子把它们串起来 22 4.5 小结 24 第5章 运行应用 25 5.1 Deployment 25 5.1.1 运行Deployment 25 5.1.2 命令 vs 配置文件 29 5.1. 3 Deployment 配置文件简介 30 5.1.4 伸缩 31 5.1.5 Failover 33 5.1.6 用label 控制 Pod 的位置 33 5.2 DaemonSet 36 5.2.1 kube-flannel-ds 36 5.2.2 kube-proxy 37 5.2.3 运行自己的 DaemonSet 38 5.3 Job 40 5.3.1 Pod 失败的情况 41 5.3.2 Job 的并行性 43 5.3.3 定时 Job 45 5.4 小结 48 第6章 通过 Service 访问 Pod 49 6.1 创建 Service 49 6.2 Cluster IP 底层实现 51 6.3 DNS 访问 Service 53 6.4 外网如何访问 Service 55 6.5 小结 58 第7章 Rolling Update 59 7.1 实践 59 7.2 回滚 61 7.3 小结 63 第8章 Health Check 64 8.1 默认的健康检查 64 8.2 Liveness 探测 65 8.3 Readiness 探测 67 8.4 Health Check 在 Scale Up 中的应用 69 8.5 Health Check 在滚动更新中的应用 71 8.6 小结 75 第9章 数据管理 76 9.1 Volume 76 9.1.1 emptyDir 76 9.1.2 hostPath 78 9.1.3 外部 Storage Provider 79 9.2 PersistentVolume & PersistentVolumeClaim 81 9.2.1 NFS PersistentVolume 81 9.2.2 回收 PV 84 9.2.3 PV 动态供给 86 9.3 一个数据库例子 87 9.4 小结 91 第10章 Secret & Configmap 92 10.1 创建 Secret 92 10.2 查看 Secret 93 10.3 在Pod中使用Secret 94 10.3.1 Volume 方式 94 10.3.2 环境变量方式 96 10.4 ConfigMap 97 10.5 小结 100 第11章 Helm—Kubernetes的包管理器 101 11.1 Why Helm 101 11.2 Helm 架构 103 11.3 安装 Helm 104 11.3.1 Helm 客户端 104 11.3.2 Tiller服务器 105 11.4 使用Helm 106 11.5 chart 详解 109 11.5.1 chart 目录结构 109 11.5.2 chart 模板 113 11.5.3 再次实践 MySQL chart 115 11.5.4 升级和回滚 release 118 11.5.5 开发自己的 chart 119 11.6 小结 126 第12章 网 络 127 12.1 Kubernetes 网络模型 127 12.2 各种网络方案 128 12.3 Network Policy 129 12.3.1 部署 Canal 129 12.3.2 实践 Network Policy 130 12.4 小结 135 第13章 Kubernetes Dashboard 136 13.1 安装 136 13.2 配置登录权限 137 13.3 Dashboard 界面结构 139 13.4 典型使用场景 140 13.4.1 部署 Deployment 140 13.4.2 在线操作 141 13.4.3 查看资源详细信息 142 13.4.4 查看 Pod 日志 142 13.5 小结 143 第14章 Kubernetes 集群监控 144 14.1 Weave Scope 144 14.1.1 安装 Scope 144 14.1.2 使用 Scope 145 14.2 Heapster 151 14.2.1 部署 151 14.2.2 使用 152 14.3 Prometheus Operator 155 14.3.1 Prometheus 架构 159 14.3.2 Prometheus Operator 架构 161 14.3.3 部署 Prometheus Operator 162 14.4 小结 167 第15章 Kubernetes 集群日志管理 168 15.1 部署 168 15.2 小结 173 写在最后 174 3 Deployment 配置文件简介 30 5.1.4 伸缩 31 5.1.5 Failover 33 5.1.6 用label 控制 Pod 的位置 33 5.2 DaemonSet 36 5.2.1 kube-flannel-ds 36 5.2.2 kube-proxy 37 5.2.3 运行自己的 DaemonSet 38 5.3 Job 40 5.3.1 Pod 失败的情况 41 5.3.2 Job 的并行性 43 5.3.3 定时 Job 45 5.4 小结 48 第6章 通过 Service 访问 Pod 49 6.1 创建 Service 49 6.2 Cluster IP 底层实现 51 6.3 DNS 访问 Service 53 6.4 外网如何访问 Service 55 6.5 小结 58 第7章 Rolling Update 59 7.1 实践 59 7.2 回滚 61 7.3 小结 63 第8章 Health Check 64 8.1 默认的健康检查 64 8.2 Liveness 探测 65 8.3 Readiness 探测 67 8.4 Health Check 在 Scale Up 中的应用 69 8.5 Health Check 在滚动更新中的应用 71 8.6 小结 75 第9章 数据管理 76 9.1 Volume 76 9.1.1 emptyDir 76 9.1.2 hostPath 78 9.1.3 外部 Storage Provider 79 9.2 PersistentVolume & PersistentVolumeClaim 81 9.2.1 NFS PersistentVolume 81 9.2.2 回收 PV 84 9.2.3 PV 动态供给 86 9.3 一个数据库例子 87 9.4 小结 91 第10章 Secret & Configmap 92 10.1 创建 Secret 92 10.2 查看 Secret 93 10.3 在Pod中使用Secret 94 10.3.1 Volume 方式 94 10.3.2 环境变量方式 96 10.4 ConfigMap 97 10.5 小结 100 第11章 Helm—Kubernetes的包管理器 101 11.1 Why Helm 101 11.2 Helm 架构 103 11.3 安装 Helm 104 11.3.1 Helm 客户端 104 11.3.2 Tiller服务器 105 11.4 使用Helm 106 11.5 chart 详解 109 11.5.1 chart 目录结构 109 11.5.2 chart 模板 113 11.5.3 再次实践 MySQL chart 115 11.5.4 升级和回滚 release 118 11.5.5 开发自己的 chart 119 11.6 小结 126 第12章 网 络 127 12.1 Kubernetes 网络模型 127 12.2 各种网络方案 128 12.3 Network Policy 129 12.3.1 部署 Canal 129 12.3.2 实践 Network Policy 130 12.4 小结 135 第13章 Kubernetes Dashboard 136 13.1 安装 136 13.2 配置登录权限 137 13.3 Dashboard 界面结构 139 13.4 典型使用场景 140 13.4.1 部署 Deployment 140 13.4.2 在线操作 141 13.4.3 查看资源详细信息 142 13.4.4 查看 Pod 日志 142 13.5 小结 143 第14章 Kubernetes 集群监控 144 14.1 Weave Scope 144 14.1.1 安装 Scope 144 14.1.2 使用 Scope 145 14.2 Heapster 151 14.2.1 部署 151 14.2.2 使用 152 14.3 Prometheus Operator 155 14.3.1 Prometheus 架构 159 14.3.2 Prometheus Operator 架构 161 14.3.3 部署 Prometheus Operator 162 14.4 小结 167 第15章 Kubernetes 集群日志管理 168 15.1 部署 168 15.2 小结 173 写在最后 174