课程目录:
一、Docker基础
1、Docker是什么?
2、Docker有什么用?
3、从案例了解Docker
4、Docker架构说明
5、Docker主要组件与概念介绍
二、容器技术
1、容器技术发展
2、为什么选择Docker?
3、Cgroup介绍
4、Namespace介绍
三、Docker 容器
1、Docker Containers(容器)介绍
2、Docker案例使用
3、Docker 创建Containers
4、Docker Containers的停止、启动等
5、Docker Containers 修改,备份等
第一、二、三节重点:了解什么是Docker,以及为什么企业要从传统方式向Docker容器化转变,掌握Docker架构设计原理,以及了解Docker主要组件,为后续课程学习做准备。理解虚拟化的本质,为后期的Kubernetes做好基础。
四、Docker镜像
1、Docker镜像是什么?
2、镜像组织结构
3、镜像写时复制
4、镜像基本操作
5、镜像常用操作实践
6、私有镜像仓库介绍和搭建[Vmware Harbor]
7、镜像在实际使用注意事项[私人镜像制作引导]
五、Docker网络
1、Docker网络介绍
2、Docker网络模式
3、使用Wireshrk分析跨主机多子网通信流程介绍及排障
4、生产中网络选型
第四、五节目的/重点:通过镜像的构建过程进而明白镜像构建时候Layer的概念,以及后期的镜像替换时的方式方法。
通过对wireshark对docker的网络的抓包分心,有助于后期在对k8s的集群的网络流量分析和系统TS。
六、数据共享与持久化
1、为什么需要数据持久化?
2、挂载数据卷
3、创建数据卷
4、数据卷备份
5、数据卷插件介绍
6、持久化实践
7、实际场景落地介绍和剖析
七、Docker最佳实践
1、常用容器命令与实际使用最佳实践
2、使用Dockerfile构建镜像
3、Docker安全部署实践
4、Docker运维实践与技巧
第六、七节目的:通过存储方案的了解常用的方式进而在实际的工作中采用相应的存储方式
八、Kubernetes基础介绍
1、Docker与Kubernetes关系
2、Kubernetes是什么?
3、为什么选择Kubernetes?
4、Kubernetes 架构剖析和主要组件介绍
5、Kubernetes 基本概念与术语
九、Kubernetes集群安装和部署应用(服务)和架构
1、Kubernetes 集群安装方式介绍
2、Minikube安装、Kubeadm安装、二进制安装、ansible安装
3、采用Kubeadm方式安装实践
4、通过Kubernetes 部署应用服务[Web+Redis方式]
第八、九节目的/重点:通过学习能快速搭建一个Kubernetes集群,并且能够根据各组件之间的关系,掌握基本的TS技能。并且我们会根据已有的环境,搭建一个Project,从而掌握一个完成的项目所涉及到kubernetes的所有相关细节。
十、Pod状态与生命周期管理-健康性检查
1、Pod 概述与创建
2、Pod 解析与理解
3、Init 容器介绍及案例分析
4、Pause 容器介绍及应用
5、Pod 安全策略及应用
6、Pod 的生命周期管理
7、Pod 自动部署
8、Pod Preset
9、Pod 健康性检查及探针
本节重点:通过学习能弄清楚Kubernetes的基本单元Pod的概念和本质,数量的掌握该模块。
十一、Kubernetes集群资源管理
1、Node之Master节点和Worker节点理解[分布式架构理解]
2、Namespace 概念及资源隔离
3、Label 概念及使用
4、Annotation 使用案例
5、Taint和Toleration(污点和容忍)
6、垃圾收集 [kubelet Garbage Collection ]
本节重点:通过学习掌握通用分布式架构的一般定义进而深刻理解分布式架构的应用场景以及意义
十二、Kubernetes 控制器
1、Deployment 概念及应用案例分析
2、Deployment Controller-滚动更新
3、Deployment Controller-状态机切换
4、DaemonSet 概念及应用案例分析
5、Job 概念及应用案例分析
6、CronJob 概念及应用案例分析
7、各控制器试用场景介绍
本节重点:完全掌握Kubernetes的各种控制器以及对应的YAML文件的书写,学会使用帮助来分析常见字段。
十三、Kubernetes 网络
1、Kubernetes 集群网络介绍及常用方案比较和推荐
2、Kubernetes中的网络通信流程解析——以flannel为例
3、Contaienr-Container,Pod-Pod,Pod-Servie通信流程剖析
4、Flannel网络工作原理
5、Flannel网络安装配置
6、Kubernetes中的网络通信流程解析——以calico为例
7、Calico 网络工作原理
8、Calico 网络安装配置[与生产联动]
9、SDN方案介绍,Pod多网卡技术介绍
10、DANM[Pod多网卡方案]实际落地项目介绍
11、Network Policy[结合Calico]
12、Network Policy[结合Nuage]
本节重点:掌握Kubernetes以及各虚拟化场景下的数据包转发流程。掌握整个集群的网络排查和故障定位及处理。
十四、Kubernetes 资源调度
1、Kubernetes 资源调度原理
2、Pod 调度流程剖析[调度日志]
3、Pod 调度策略剖析[结合调度日志]
4、调度策略中的预选与优选策略
5、Pod优先级与抢占
6、Pod Affinity 和 Node Affinity
7、调度策略实际场景实践
本节重点:熟练掌握Kubernetes的核心概念Service和Pod的调度策略以及如何利用调度策略达到相应的调度目的。
十五、Kubernetes 服务发现
1、Service[ClusterIP, NodePort,LoadBalancer]介绍和应用场景
2、Headless 服务及应用场景剖析
3、ENV & DNS介绍和案例分析
4、Service sessionAffinity
5、NGINX Ingress Controller控制器部署和理解[HTTP2介绍][HTTP,HTTPS]
6、NGINX Ingress Controller控制器URL重写
本节重点:熟悉使用INGRESS Controoler实现7层代理。
十六、Kubernetes 存储
1、ConfigMap 概念及应用配置
2、Secret 概念及配置应用
3、ConfigMap的热更新
4、Volume[hostPath,emptyDir]存储方案介绍和部署
5、Persistent Volume(持久化卷)概念及应用[PV PVC]
6、NFS 存储方案介绍和部署[直接使用+化PV使用]
7、GlusterFS 存储方案介绍和部署[直接使用+化PV使用]
8、Storage Class 存储方案介绍[NFS Provision]
本节重点:熟悉使用各种存储手段,进而提供高效稳定的存储环境。能够根据环境快速的配出相应的存储环境以适配存储的要求。
十七、Kubernetes 准入控制
1、Kubernetes 认证及Service Account介绍
2、Kubernetes 认证及Service Account使用场景
3、Kubernetes RBAC介绍
4、Role,Rolbindding,ClusterRole、ClusterRoleBIndding
5、Kubernetes RBAC使用场景
本节重点:熟悉使用该手段提供接入的授权,和资源控制权限。熟练使用context来控制集群的接入。
十八、Kubernetes 包管理工具(Helm)
1、Helm 简介
2、HELMv2.0-HELM3.0迁移
3、Helm3.0 安装部署及使用
4、模板编写与最佳实践
5、Helm实际操作
本节重点:通过学习能够快速的编写HELM的Templete文件快速的部署相应的环境。
十九、Kubernetes 监控方案
1、Kubernetes 集群监控原理 / 各监控方案区别
2、Kubernetes 监控-Metrics Server
3、使用 Prometheus 进行集群与应用监控
4、结合AlertManager实现告警
5、使用Grafrna进行展示监控信息
本节重点:能够掌握几种常用的监控方案部署和维护。
二十、DevOps
1、了解DevOps
2、gitlab配置
3、安装及配置Jenkins
4、使用gitlab+Jenkins+kubernetes建立CI/CD解决方案
本节目的:通过学习能掌握基本的DevOps流程
二十一、ETCD
1、etcd部署
2、etcd使用
3、etcd架构理解
4、etcd选举
本节目的:基本了解etcd