Kubernetes进阶实战
Kubernetes进阶实战
勘误和支持
1 Kubernetes系统基础
1.1 容器技术概述
1.1.1 容器技术的功用
1.1.2 容器简史
1.1.3 Docker的功能限制
1.2 Kubernetes概述
1.2.1 Kubernetes简史
1.2.2 Kubernetes特性
1.2.3 Kubernetes概念和术语
1.3 Kubernetes集群组件
1.3.1 Master组件
1.3.2 Node组件
1.3.3 核心附件
1.4 Kubernetes网络模型基础
1.4.1 网络模型概述
1.4.2 集群上的网络通信
1.5 本章小结
2 Kubernetes快速入门
2.1 Kubernetes的核心对象
2.1.1 Pod资源对象
2.1.2 Controller
2.1.3 Service
2.1.4 部署应用程序的主体过程
2.2 部署Kubernetes集群
2.2.1 kubeadm部署工具
2.2.2 集群运行模式
2.2.3 准备用于实践操作的集群环境
2.2.4 获取集群环境相关的信息
2.3 kubectl使用基础与示例
2.4 命令式容器应用编排
2.4.1 部署应用(Pod)
2.4.2 探查Pod及应用详情
2.4.3 部署Service对象
2.4.4 扩容和缩容
2.4.5 修改及删除对象
2.5 本章小结
3 资源管理基础
3.1 资源对象及API群组
3.1.1 Kubernetes的资源对象
3.1.2 资源及其在API中的组织形式
3.1.3 访问Kubernetes REST API
3.2 对象类资源格式
3.2.1 资源配置清单
3.2.2 metadata嵌套字段
3.2.3 spec和status字段
3.2.4 资源配置清单格式文档
3.2.5 资源对象管理方式
3.3 kubectl命令与资源管理
3.3.1 资源管理操作概述
3.3.2 kubectl的基本用法
3.4 管理名称空间资源
3.4.1 查看名称空间及其资源对象
3.4.2 管理Namespace资源
3.5 Pod资源的基础管理操作
3.5.1 陈述式对象配置管理方式
3.5.2 声明式对象配置管理方式
3.6 本章小结
4 管理Pod资源对象
4.1 容器与Pod资源对象
4.2 管理Pod对象的容器
4.2.1 镜像及其获取策略
4.2.2 暴露端口
4.2.3 自定义运行的容器化应用
4.2.4 环境变量
4.2.5 共享节点的网络名称空间
4.2.6 设置Pod对象的安全上下文
4.3 标签与标签选择器
4.3.1 标签概述
4.3.2 管理资源标签
4.3.3 标签选择器
4.3.4 Pod节点选择器nodeSelector
4.4 资源注解
4.4.1 查看资源注解
4.4.2 管理资源注解
4.5 Pod对象的生命周期
4.5.1 Pod的相位
4.5.2 Pod的创建过程
4.5.3 Pod生命周期中的重要行为
4.5.4 容器的重启策略
4.5.5 Pod的终止过程
4.6 Pod存活性探测
4.6.1 设置exec探针
4.6.2 设置HTTP探针
4.6.3 设置TCP探针
4.6.4 存活性探测行为属性
4.7 Pod就绪性探测
4.8 资源需求及资源限制
4.8.1 资源需求
4.8.2 资源限制
4.8.3 容器的可见资源
4.8.4 Pod的服务质量类别
4.9 本章小结
5 Pod控制器
5.1 关于Pod控制器
5.1.1 Pod控制器概述
5.1.2 控制器与Pod对象
5.1.3 Pod模板资源
5.2 ReplicaSet控制器
5.2.1 ReplicaSet概述
5.2.2 创建ReplicaSet
5.2.3 ReplicaSet管控下的Pod对象
5.2.4 更新ReplicaSet控制器
5.2.5 删除ReplicaSet控制器资源
5.3 Deployment控制器
5.3.1 创建Deployment
5.3.2 更新策略
5.3.3 升级Deployment
5.3.4 金丝雀发布
5.3.5 回滚Deployment控制器下的应用发布
5.3.6 扩容和缩容
5.4 DaemonSet控制器
5.4.1 创建DaemonSet资源对象
5.4.2 更新DaemonSet对象
5.5 Job控制器
5.5.1 创建Job对象
5.5.2 并行式Job
5.5.3 Job扩容
5.5.4 删除Job
5.6 CronJob控制器
5.6.1 创建CronJob对象
5.6.2 CronJob的控制机制
5.7 ReplicationController
5.8 Pod中断预算
5.9 本章小结
6 Service和Ingress
6.1 Service资源及其实现模型
6.1.1 Service资源概述
6.1.2 虚拟IP和服务代理
6.2 Service资源的基础应用
6.2.1 创建Service资源
6.2.2 向Service对象请求服务
6.2.3 Service会话粘性
6.3 服务发现
6.3.1 服务发现概述
6.3.2 服务发现方式:环境变量
6.3.3 ClusterDNS和服务发现
6.3.4 服务发现方式:DNS
6.4 服务暴露
6.4.1 Service类型
6.4.2 NodePort类型的Service资源
6.4.3 LoadBalancer类型的Service资源
6.4.4 ExternalName Service
6.5 Headless类型的Service资源
6.5.1 创建Headless Service资源
6.5.2 Pod资源发现
6.6 Ingress资源
6.6.1 Ingress和Ingress Controller
6.6.2 创建Ingress资源
6.6.3 Ingress资源类型
6.6.4 部署Ingress控制器(Nginx)
6.7 案例:使用Ingress发布tomcat
6.7.1 准备名称空间
6.7.2 部署tomcat实例
6.7.3 创建Service资源
6.7.4 创建Ingress资源
6.7.5 配置TLS Ingress资源
6.8 本章小结
7 存储卷与数据持久化
7.1 存储卷概述
7.1.1 Kubernetes支持的存储卷类型
7.1.2 存储卷的使用方式
7.2 临时存储卷
7.2.1 emptyDir存储卷
7.2.2 gitRepo存储卷
7.3 节点存储卷hostPath
7.4 网络存储卷
7.4.1 NFS存储卷
7.4.2 RBD存储卷
7.4.3 GlusterFS存储卷
7.4.4 Cinder存储卷
7.5 持久存储卷
7.5.1 创建PV
7.5.2 创建PVC
7.5.3 在Pod中使用PVC
7.5.4 存储类
7.5.5 PV和PVC的生命周期
7.6 downwardAPI存储卷
7.6.1 环境变量式元数据注入
7.6.2 存储卷式元数据注入
7.7 本章小结
8 配置容器应用:ConfigMap和Secret
8.1 容器化应用配置方式
8.2 通过命令行参数配置容器应用
8.3 利用环境变量配置容器应用
8.4 应用程序配置管理及ConfigMap资源
8.4.1 创建ConfigMap对象
8.4.2 向Pod环境变量传递ConfigMap对象键值数据
8.4.3 ConfigMap存储卷
8.4.4 容器应用重载新配置
8.4.5 使用ConfigMap资源的注意事项
8.5 Secret资源
8.5.1 Secret概述
8.5.2 创建Secret资源
8.5.3 Secret存储卷
8.5.4 imagePullSecret资源对象
8.6 本章小结
9 StatefulSet控制器
9.1 StatefulSet概述
9.1.1 Stateful应用和Stateless应用
9.1.2 StatefulSet控制器概述
9.1.3 StatefulSet的特性
9.2 StatefulSet基础应用
9.2.1 创建StatefulSet对象
9.2.2 Pod资源标识符及存储卷
9.3 StatefulSet资源扩缩容
9.4 StatefulSet资源升级
9.4.1 滚动更新
9.4.2 暂存更新操作
9.4.3 金丝雀部署
9.4.4 分段更新
9.4.5 其他话题
9.5 案例:etcd集群
9.5.1 创建Service资源
9.5.2 etcd StatefulSet
9.6 本章小结
10 认证、授权与准入控制
10.1 访问控制概述
10.1.1 用户账户与用户组
10.1.2 认证、授权与准入控制基础
10.2 服务账户管理与应用
10.2.1 Service Account自动化
10.2.2 创建服务账户
10.2.3 调用imagePullSecret资源对象
10.3 X.509数字证书认证
10.3.1 Kubernetes中的SSL/TLS认证
10.3.2 客户端配置文件kubeconfig
10.3.3 TLS bootstrapping机制
10.4 基于角色的访问控制:RBAC
10.4.1 RBAC授权插件
10.4.2 Role和RoleBinding
10.4.3 ClusterRole和ClusterRoleBinding
10.4.4 聚合型ClusterRole
10.4.5 面向用户的内建ClusterRole
10.4.6 其他的内建ClusterRole和ClusterRoleBinding
10.5 Kubernetes Dashboard
10.5.1 部署HTTPS通信的Dashboard
10.5.2 配置token认证
10.5.3 配置kubeconfig认证
10.6 准入控制器与应用示例
10.6.1 LimitRange资源与LimitRanger准入控制器
10.6.2 ResourceQuota资源与准入控制器
10.6.3 PodSecurityPolicy
10.7 本章小结
11 网络模型与网络策略
11.1 Kubernetes网络模型及CNI插件
11.1.1 Docker容器的网络模型
11.1.2 Kubernetes网络模型
11.1.3 Pod网络的实现方式
11.1.4 CNI插件及其常见的实现
11.2 flannel网络插件
11.2.1 flannel的配置参数
11.2.2 VxLAN后端和direct routing
11.2.3 host-gw后端
11.3 网络策略
11.3.1 网络策略概述
11.3.2 部署Canal提供网络策略功能
11.3.3 配置网络策略
11.3.4 管控入站流量
11.3.5 管控出站流量
11.3.6 隔离名称空间
11.3.7 网络策略应用案例
11.4 Calico网络插件
11.4.1 Calico工作特性
11.4.2 Calico系统架构
11.4.3 Calico部署要点
11.4.4 部署Calico提供网络服务和网络策略
11.4.5 客户端工具calicoctl
11.5 本章小结
12 Pod资源调度
12.1 Kubernetes调度器概述
12.1.1 常用的预选策略
12.1.2 常用的优选函数
12.2 节点亲和调度
12.2.1 节点硬亲和性
12.2.2 节点软亲和性
12.3 Pod资源亲和调度
12.3.1 位置拓扑
12.3.2 Pod硬亲和调度
12.3.3 Pod软亲和调度
12.3.4 Pod反亲和调度
12.4 污点和容忍度
12.4.1 定义污点和容忍度
12.4.2 管理节点的污点
12.4.3 Pod对象的容忍度
12.4.4 问题节点标识
12.5 Pod优选级和抢占式调度
12.6 本章小结
13 Kubernetes系统扩展
13.1 自定义资源类型(CRD)
13.1.1 创建CRD对象
13.1.2 自定义资源格式验证
13.1.3 子资源
13.1.4 使用资源类别
13.1.5 多版本支持
13.1.6 自定义控制器基础
13.2 自定义API Server
13.2.1 自定义API Server概述
13.2.2 APIService对象
13.3 Kubernetes集群高可用
13.3.1 etcd高可用
13.3.2 Controller Manager和Scheduler高可用
13.4 Kubernetes的部署模式
13.4.1 关键组件
13.4.2 常见的部署模式
13.5 容器时代的DevOps概述
13.5.1 容器:DevOps协作的基础
13.5.2 泛型端到端容器应用程序生命周期工作流
13.5.3 基于Kubernetes的DevOps
13.6 本章小结
14 资源指标及HPA控制器
14.1 资源监控及资源指标
14.1.1 资源监控及Heapster
14.1.2 新一代监控架构
14.2 资源指标及其应用
14.2.1 部署metrics-server
14.2.2 kubectl top命令
14.3 自定义指标与Prometheus
14.3.1 Prometheus概述
14.3.2 部署Prometheus监控系统
14.3.3 自定义指标适配器k8s-prometheus-adapter
14.4 自动弹性缩放
14.4.1 HPA概述
14.4.2 HPA(v1)控制器
14.4.3 HPA(v2)控制器
14.5 本章小结
15 Helm程序包管理器
15.1 Helm基础
15.1.1 Helm的核心术语
15.1.2 Helm架构
15.1.3 安装Helm Client
15.1.4 安装Tiller server
15.1.5 Helm快速入门
15.2 Helm Charts
15.2.1 Charts文件组织结构
15.2.2 Chart.yaml文件组织格式
15.2.3 Charts中的依赖关系
15.2.4 模板和值
15.2.5 其他需要说明的话题
15.2.6 自定义Charts
15.3 Helm实践:部署EFK日志管理系统
15.3.1 ElasticSearch集群
15.3.2 日志采集代理fluentd
15.3.3 可视化组件Kibana
15.4 本章小结
附录A 部署Kubernetes集群
A.1 准备部署Kubernetes集群
A.2 部署Kubernetes集群
A.3 从集群中移除节点
A.4 重新生成用于节点加入集群的认证命令
附录B 部署GlusterFS及Heketi
B.1 部署GlusterFS集群
B.2 部署Heketi
思维导图
防止博客图床图片失效,防止图片源站外链:
http://www.processon.com/chart_image/5e5b3a9be4b0c037b6081dfa.png)
思维导图在线编辑链接: