前言 1
第1章 初识Kubernetes 9
1.1 无需安装即可使用Kubernetes 9
1.2 安装Kubernetes的命令行界面和kubectl 10
1.3 安装Minikube并运行本地的Kubernetes实例 12
1.4 在本地使用Minikube进行开发 14
1.5 在Minikube上运行应用程序 15
1.6 使用Minikube访问仪表盘 16
第2章 创建Kubernetes集群 20
2.1 安装kubeadm以创建Kubernetes集群 20
2.2 使用kubeadm创建Kubernetes集群 22
2.3 从GitHub上下载Kubernetes 24
2.4 下载客户端和服务器端可执行文件 25
2.5 使用hyperkube映像通过Docker运行Kubernetes主节点 26
2.6 编写systemd单元文件来运行Kubernetes的组件 29
2.7 在Google Kubernetes引擎上创建Kubernetes集群 32
2.8 在Azure容器服务上创建Kubernetes集群 34
第3章 学习使用Kubernetes客户端 39
3.1 查看资源 39
3.2 删除资源 41
3.3 使用kubectl观察资源的变化 42
3.4 使用kubectl编辑资源 43
3.5 通过kubectl解释资源和字段 44
第4章 创建与修改基础的工作负载 46
4.1 通过kubectl run创建部署 46
4.2 通过清单文件创建对象 47
4.3 从零创建pod的清单文件 48
4.4 通过kubectl run创建部署 50
4.5 更新部署 54
第5章 使用服务 58
5.1 通过创建服务来公布应用程序 59
5.2 验证服务的DNS注册项 61
5.3 改变服务类型 62
5.4 在Minikube上配置ingress controller 64
5.5 从集群外部访问服务 65
第6章 探索Kubernetes的API与关键元数据 69
6.1 发现Kubernetes上API的访问点 69
6.2 掌握Kubernetes清单文件的结构 71
6.3 通过创建命名空间避免命名冲突 73
6.4 设置命名空间的配额 74
6.5 给对象贴标签 75
6.6 使用标签进行查询 76
6.7 通过命令注解资源 78
第7章 管理具体的工作负载 80
7.1 运行批处理 80
7.2 在Pod内按照计划时间运行任务 82
7.3 在每个节点上运行基础设施的服务 83
7.4 管理有状态的主从应用 85
7.5 影响Pod的启动行为 89
第8章 卷与配置数据 91
8.1 通过本地卷在容器间交换数据 91
8.2 通过Secret类型的卷将API的访问密钥传递给pod 93
8.3 提供配置数据给应用程序 97
8.4 在Minkube内使用持久卷 100
8.5 掌握Minikube上数据的持久性 104
8.6 在GKE上动态配置持久性存储空间 107
第9章 伸缩 109
9.1 部署的伸缩 110
9.2 在GKE中自动调整集群的大小 110
9.3 在AWS中自动调整集群的大小 114
9.4 在GKE上使用pod的横向自动伸缩 114
第10章 安全 118
10.1 赋予应用程序唯一的身份 118
10.2 列举并查看访问控制信息 121
10.3 控制资源的访问权限 125
10.4 加强pod的安全 128
第11章 监控与日志 130
11.1 访问容器的日志 130
11.2 使用存活探针修复失败状态 131
11.3 使用就绪探针来控制pod的访问流 133
11.4 向部署添加存活探针和就绪探针 134
11.5 在Minikube上激活Heapster监视资源 137
11.6 在Minikube上使用Prometheus 139
11.7 在Minikube上使用Elasticsearch-Fluentd-Kibana 144
第12章 维护与故障排除 149
12.1 启用kubectl的自动补齐 149
12.2 删除服务上的pod 150
12.3 从集群外部访问集群IP的服务 152
12.4 掌握并解析资源的状态 153
12.5 调试pod 155
12.6 集群状态的详细快照 160
12.7 添加Kubernetes工作节点 161
12.8 抽出Kubernetes节点以实施维护 163
12.9 管理etcd 165
第13章 Kubernetes开发 168
13.1 编译源代码 168
13.2 编译特定的组件 169
13.3 如何使用Python客户端与Kubernetes API交互 170
13.4 使用自定义的资源扩展API 171
第14章 Kubernetes的生态系统 177
14.1 安装Helm(Kubernetes的包管理器) 177
14.2 利用Helm安装应用程序 178
14.3 利用Helm创建自己的图表打包应用程序 180
14.4 将DockerCompose文件转换成Kubernetes清单文件 182
14.5 使用kubicorn创建Kubernetes集群 183
14.6 在版本控制中保存加密的secret 188
14.7 利用kubeless部署函数 191
附录A 资源 195