第1章 课程简介&&自我介绍 1-1 自我介绍 1-2 课程大纲内容介绍 1-3 课程更新通知 第2章 K8s必备知识-Docker容器基础入门 2-1 课程介绍 2-2 docker容器介绍 2-3 docker优缺点 2-4 安装和配置docker 2-5 修改内核参数 2-6 配置镜像加速器 2-7 配置常用镜像加速器站点 2-8 docker镜像操作 第3章 运行docker容器 3-1 创建交互式docker容器 3-2 创建守护进程容器 3-3 容器相关命令汇总 3-4 docker部署web网站 第4章 dockerfile基础篇-基本语法 4-1 了解dockerfile构建流程 4-2 dockerfile-EXPOSE和RUN指令 4-3 dockerfile-CMD指令 4-4 ENTRYPOINT指令 4-5 dockerfile-COPY指令 4-6 dockerfile指令-ADD 4-7 VOLUME指令 4-8 ENV和WORKDIR指令 4-9 ONBUILD和USER指令 4-10 LABEL和HEALTHCHECK指令 第5章 dockerfile实战篇-构建企业镜像 5-1 dockerfile构建企业级Nginx镜像 5-2 dockerfile构建tomcat镜像 5-3 dockerfile构建企业级JAVA项目 第6章 docker容器数据持久化 6-1 docker 容器的数据管理 6-2 docker 容器共享数据卷 6-3 docker 数据备份和还原 第7章 docker进阶篇-资源配额 7-1 cpu-shares控制docker容器cpu份额 7-2 cpu-share和cpuset控制docker c 7-3 控制docker容器内存 7-4 控制docker容器的IO 7-5 docker容器自动释放资源 第8章 docker容器网络实战 8-1 docker容器互联 8-2 docker网络别名link 8-3 docker none网络模式 8-4 docker container网络模式 8-5 docker bridge网络模式 8-6 docker host网络模式 第9章 docker实战篇-harbor私有仓库 9-1 安装和配置harbor2+新版本镜像仓库 9-2 docker login登录harbor 9-3 上传镜像到harbor仓库 9-4 从harbor下载镜像 9-5 harbor高可用和镜像复制 9-6 课程小节 第10章 k8s入门篇:架构-组件-核心资源 10-1 k8s学习路线图 10-2 为什么学习kubernetes 10-3 为什么大公司都在用k8s? 10-4 k8s应用领域 10-5 k8s相关的岗位和行业 10-6 k8s相关认证 10-7 kubernetes架构 10-8 k8s控制节点组件介绍 10-9 k8s工作节点组件介绍 10-10 k8s核心资源概述 10-11 课程学习计划 第11章 kubeadm安装高可用的k8s集群-适合生产环境 11-1 实验环境规划 11-2 机器初始化-配置ip和主机名 11-3 机器初始化-配置防火墙和yum源 11-4 机器初始化-配置ipvs 11-5 安装和配置docker 11-6 安装初始化k8s需要的软件包 11-7 配置keepalived和nginx-实现k8s高可 11-8 kubeadm初始化k8s集群 11-9 扩容k8s集群-添加master节点 11-10 扩容k8s集群-添加node节点 11-11 安装calico网络插件 11-12 测试k8s集群网络是否正常 11-13 测试k8s集群部署Pod 11-14 测试coredns是否可以做域名解析 第12章 二进制安装高可用K8S集群-适合生产环境 12-1 对安装k8s集群的实验环境进行初始化 12-2 安装etcd高可用集群 12-3 安装k8s控制节点和工作节点组件 12-4 测试k8s网络和coredns组件是否正常 12-5 keepalive和nginx实现apiserver 第13章 kubeadm搭建单master多node的k8s集群 13-1实验环境准备 13-2kubeadm和二进制安装k8sd对比分析 13-3初始化安装k8s的实验环境 13-4安装和配置docker 13-5安装初始化k8s需要的命令行工具 13-6kubeadm初始化k8s集群 13-7扩容k8s-添加第一个工作节点 13-8扩容k8s集群-添加第二个工作节点 13-9安装网络插件calico 13-10测试k8s集群网络是否正常 13-11测试k8s部署tomcat服务 13-12测试coredns是否正常 13-13安装k8s可视化ui界面dashboard 13-14通过token登录dashboard界面 13-15通过kubeconfig登录dashboard 13-16通过dashboard创建pod 13-17安装metrics-server服务 13-18kubectl top命令 13-19修改schedule绑定的端口 第14章 K8s基础篇-Pod入门知识讲解 14-1 Pod是什么? 14-2 Pod工作方式-自主式Pod 14-3 pod工作方式-控制器管理Pod 14-4 Pod创建流程 14-5 Pod资源清单编写技巧 14-6 kubectl run运行Pod 第15章 namespace和Resourcequota 15-1 namespsce概述 15-2 namespace应用场景 15-3 namespace使用案例分享 15-4 namespace资源限额 15-5 k8s标签labels 第16章 Pod进阶篇:污点-容忍度-亲和性-Affinity-调度 16-1 Pod资源清单详细解读 16-2 nodeName 16-3 node节点选择器 16-4 node节点亲和性 16-5 Pod亲和性 16-6 Pod反亲和性 16-7 位置拓朴键topologykey 16-8 Taint和Tolerations 16-9 Pod异常状态处理方案 16-10 pod重启策略 16-11 初始化容器 16-12 定义Initcontainer 16-13 主容器和初始化容器的关系 16-14 创建Pod需要经过哪些阶段 第17章 Pod进阶篇-Pod生命周期和健康探测 17-1 postStart和preStop 17-2 优雅删除k8s资源 17-3 livenessProbe和readinessPro 17-4 k8s存活性探测-exec探测 17-5 存活性探测-httpGet探测 17-6 k8s存活性探测-tcp探测 17-7 就绪性探测-httpGet探测 17-8 存活性探测和就绪性探测混合使用 第18章 Pod扩展篇:startupProbe启动探测 18-1 k8s三种探针概述 18-2 startupProbe介绍 18-3 startupProbe使用案例分享 18-4 k8s探针探测顺序 第19章 K8s控制器-Replicaset 19-1 replicaset控制器概念-原理解读 19-2 replicaset资源清单YAML文件编写技巧 19-3 replicaset部署frontend前端项目 19-4 replicaset实现Pod扩缩容 19-5 replicaset实现业务pod更新升级 第20章 K8s控制器-Deployment 20-1 Deployment控制器概述 20-2 Deployment控制器工作原理 20-3 Deployment资源清单yaml编写技巧 20-4 Deployment.spec字段详细解读 20-5 hostAliases-pod中添加域名解析 20-6 Pod中dns配置-dnsConfig和dnsPol 20-7 Deployment部署生产环境web项目 20-8 livenessProbe和readiness探测 20-9 Deployment实现Pod扩容 20-10 Deployment实现Pod缩容 20-11 Deployment滚动升级 20-12 Deployment实现Pod滚动升级 20-13 Deployment实现Pod按照指定版本回滚 20-14 定义Pod资源配额 20-15 自定义deployment更新策略 第21章 K8s应用篇-Service代理和kube-proxy转发 21-1 k8s为什么要用Service四层代理? 21-2 Service概述 21-3 Service工作原理 21-4 k8s中的三类IP 21-5 Service资源清单编写技巧 21-6 Service ExternalName类型 21-7 Service ClusterIp类型 21-8 Serivice NodePort类型 21-9 Service LoadBalancer类型 21-10 Port和targetPort 21-11 创建ClusterIp类型的Service 21-12 创建NodePort类型的Service 21-13 创建ExternalName类型的Service 21-14 自定义Endpoint资源 21-15 kube-proxy组件详细介绍 21-16 kube-proxy三种工作模式 21-17 通过iptables规则分析Service转发流程 21-18 kube-proxy生成iptables规则具体调用 21-19 Coredns工作原理-域名解析流程分析 第22章 K8s应用篇-持久化存储和StorageClass详细介绍 22-1k8s持久化存储-emptyDir 22-2k8s持久化存储-hostPath 22-3k8s持久化存储-nfs 22-4PV & PVC 22-5pv数据回收策略-Retain 22-6pv数据回收策略-Delete 22-7pv资源清单编写技巧 22-8pv访问模式 22-9定义指定容量的pv 22-10测试pod挂载pvc实现持久化存储 22-11StorageClass核心功能和参数介绍 22-12安装存储类外部供应商-nfs provisioner 22-13创建StorageClass存储类 22-14pvc基于Storageclass动态生成pv 22-15测试pod挂载pvc 22-16Storageclass回收策略Retain 第23章 K8s控制器-Statefulset 23-1Statefulsett概述 23-2headless Service 23-3VolumeClaimTemplate 23-4Statefulset资源清单编写技巧 23-5Statefulset部署Web站点 23-6定义Headless Service 23-7测试Pod的dns解析 23-8测试Headless service的dns解析 23-9Statefulset资源清单详细解读 23-10Statefulset实现pod扩缩容 23-11Statefulset实现Pod更新策略 第24章 K8s控制器-Daemonset 24-1Daemonset概述 24-2Daemonset应用场景 24-3Daemonset资源清单编写技巧 24-4DaemonSet部署日志收集组件 24-5Daemonset实现Pod滚动更新 第25章 K8s应用篇-配置管理中心Configmap 25-1Configmap概述 25-2Configmap应用场景 25-3指定参数创建configmap 25-4指定文件创建Configmap 25-5指定目录创建Configmap 25-6Configmap资源清单编写技巧 25-7ConfigMapKeyRef 25-8通过环境变量envFrom把configmap引入P 25-9Configmap做成volume 25-10Configmap热更新 第26章 K8s应用篇-配置管理中心Secret 26-1Secret概述和应用场景介绍 26-2通过环境变量把secret注入到Pod 26-3Secret做成volume挂载给Pod 第27章 k8s安全篇:安全机制之RBAC授权 27-1k8s认证流程 27-2RBAC授权概述 27-3准入控制 27-4Role授权说明 27-5ClusterRole授权说明 27-6rolebinding&&clusterrolebi 27-7资源引用方式 27-8常见的role授权规则 27-9常见的授权主体用户 27-10对sa进行rbac授权 27-11通过kubectl命令行进行rbac授权 27-12通过yaml文件进行rbac授权 27-13限制不同的用户操作k8s集群 第28章 实战-Prometheus+Grafana构建企业级监控系统 28-1实验环境说明 28-2Prometheus介绍 28-3Prometheus特点 28-4Prometheus组件 28-5Prometheus工作流程 28-6prometheus和zabbix区别 28-7Prometheus部署模式 28-8Prometheus数据类型 28-9Prometheus能监控什么? 28-10Prometheus对k8s监控如何做? 28-11安装node-exporter组件 28-12node-exporter采集物理节点监控数据. 28-13创建sa:进行RBAC授权 28-14relabel_configs重写标签 28-15基于k8s服务发现-采集容器监控数据 28-16基于k8s服务发现-采集apiserver监控数据 28-17Prometheus采集自定义的目标服务端口 28-18安装Prometheus 28-19Prometheus热加载 28-20安装Grafana组件 28-21Grafana可视化展示node节点的资源指标 28-22Grafana可视化展示docker容器监控数据 28-23Grafana可视化展示k8s组件和资源指标 28-24Alertmanager配置详解 28-25Prometheus触发告警流程 28-26Prometheus静态配置-监控etcd和k8s组 28-27Prometheus告警规则配置 28-28Alertmanager发送报警到qq邮箱 28-29Prometheus监控kube-proxy组件 28-30Alertmanager发送报名到钉钉群 28-31Alertmanager发送报警到企业微信群 28-32Prometheus PromQL语法 第29章 实战-EFK+logstash构建日志收集平台 29-1日志对我们来说到底重不重要? 29-2常见的日志收集方案 29-3elasticsearch组件介绍 29-4filebeat组件介绍 29-5logstash组件介绍 29-6fluentd组件介绍 29-7常见的日志收集工具对比分析-1 29-8常见的日志收集工具对比分析-2 29-9安装nfs-provisioner供应商 29-10安装elasticsearch集群 29-11安装kibana组件 29-12elasticsearch故障排查 29-13安装fluentd组件 29-14kibana可视化展示k8s容器日志 29-15测试efk收集业务pod日志 第30章 基于Jenkins+k8s+Git等技术构建DevOps平台 30-1什么是DevOps? 30-2敏捷开发 30-3持续集成 30-4持续交付 30-5持续部署 30-6为什么企业都在用DevOps? 30-7k8s在DevOps中的作用 30-8Jenkins+k8s等技术助力企业DevOps落地 30-9安装jenkins 30-10安装jenkins插件 30-11安装blueocean和kubernetes插件 30-12安装推荐的插件 30-13配置k8s创建jenkins slave pod的模 30-14配置dockerhub凭据 30-15构建流水线任务 30-16jenkins实现发布应用到k8s的生产-测试-开发 30-17测试jenkins按照指定版本回滚业务 30-18什么是Jenkins pipeline 30-19为什么用jenkins pipeline 30-20jenkins pipeline 基本语法 30-21pipeline声明式语法-environment 30-22pipeline声明式语法-options 30-23pipeline声明式语法-parameters 30-24pipeline声明式语法-triggers 30-25pipeline声明式语法-tools 30-26pipeline声明式语法-input 30-27pipeline声明式语法-when 30-28pipeline声明式语法-parallel 30-29pipeline声明式语法与脚本式语法对比分析 30-30Jenkins+k8s+harbor实现DevOps 第31章 实战-Rancher管理k8s集群 31-1rancher简介 31-2初始化安装rancher的实验环境 31-3安装rancher 31-4登录rancher可视化ui界面 31-5通过rancher管理已经存在的k8s集群 31-6通过rancher部署监控系统 31-7通过Rncher仪表盘管理k8s集群:部署tomca 第32章 实战-Istio微服务入门到进阶 32-1istio是什么? 32-2服务注册和发现 32-3负载均衡 32-4服务度量 32-5金丝雀发布 32-6istio核心特性 32-7服务熔断和降级 32-8超时 32-9重试 32-10多路由规则 32-11Istio架构 32-12Istio组件-pilot 32-13Istio组件-Envoy 32-14Istio组件-Citadel 32-15Istio组件-Galley 32-16入口网关Ingress Gateway 32-17Sidecar自动注入 32-18istio其他组件 32-19安装和配置新版本Istio 32-20通过istio+k8s部署在线书店 32-21配置Ingressgateway网关 32-22通过istio实现k8s线上业务金丝雀发布 32-23Gateway资源清单详细解读 32-24VirtualServer虚拟服务 32-25DestinationRule规则 32-26Istio服务治理-熔断 32-27Istio服务治理-超时配置 32-28故障注入和重试 第33章 实战-k8s对接Ceph实现持久化存储 33-1 ceph简介 33-2 ceph rbd 33-3 ceph文件系统存储-cephfs 33-4 ceph对象存储 33-5 ceph核心组件介绍 33-6 准备ceph实验环境 33-7 配置ceph的repo源 33-8 安装ceph 33-9 安装ceph monitor服务 33-10 安装ceph osd服务 33-11 创建Ceph文件系统 33-12 测试k8s挂载Ceph rbd块设备 33-13 基于ceph rbd生成pv 33-14 基于storageclass动态生成pv 33-15 k8s挂载cephfs 第34章 实战-在k8s集群中部署SpringCloud在线购物平台 34-1安装k8s高可用集群:初始化实验环境 34-2安装k8s集群:安装docker 34-3安装k8s集群:初始化k8s 34-4回顾四层负载均衡器Service 34-5Ingress概述 34-6Ingress Controller概述 34-7Ingress Controller代理k8s内部应 34-8安装Ingress Controller 34-9测试Ingress HTTP代理k8s的tomcat 34-10测试Ingress HTTP访问k8s的tomcat 34-11测试Ingress HTTPS代理k8s的tomca 34-12harbor简介 34-13安装harbor:初始化机器和安装docker 34-14安装harbor:签发证书 34-15安装和配置harbor 34-16harbor可视化图形界面使用说明 34-17从harbor仓库上传和下载镜像 34-18什么是微服务? 34-19为什么要用微服务? 34-20微服务的特性 34-21什么样的项目适合使用微服务? 34-22使用微服务需要考虑的问题 34-23常见的微服务框架 34-24常见的微服务框架对比分析 34-25什么是SpringCloud? 34-26SpringCloud优缺点 34-27为何要将SpringCloud项目部署到k8s平台? 34-28SpringCloud项目部署到k8s的流程 34-29SpringCloud组件:服务注册与组件eurek 34-30SpringCloud组件客户端负载均衡组件Ribb 34-31SpringCloud组件:网关zuul 34-32SpringCloud组件:熔断器Hystrix 34-33Springcloud原生的网关组件Gateway 34-34配置中心SpringCloud Config 34-35将SpringCloud项目部署到K8S平台的注意事 34-36k8s部署Spring Cloud项目的整体流程 34-37MySQl概述 34-38安装和配置MySQL 34-39导入数据到MySQL数据库 34-40对MySQL数据库授权 34-41SPringCloud电商平台源码解读 34-42修改源代码:更改数据库连接地址 34-43重新编译打包源代码 34-44在k8s中部署eureka组件 34-45在k8s中部署Gateway网关 34-46在k8s中部署前端portal服务 34-47在k8s中部署订单order服务 34-48在k8s中部署产品product服务 34-49在k8s中部署库存stock服务 34-50模拟电商平台购物 34-51微服务扩缩容和发布流程 第35章 实战-Pinpoint对k8s关键业务模块进行全链路监控 35-1什么是全链路监控? 35-2为什么要进行全链路监控? 35-3全链路监控能解决哪些问题? 35-4全链路监控工具:zipkin详细介绍 35-5全链路监控工具:skywalking概述 35-6全链路监控工具:pinpoint概述 35-7全链路监控工具对比分析 35-8安装配置pinpoint服务 35-9重新编译带有pinpoint agent的源代码 35-10部署带pinpoint agent的product服 第36章 kubectl命令行管理工具 36-1kubectl简介和语法 36-2kubectl相关命令演示 36-3kubectl输出选项 36-4kubectl常用命令介绍 第37章 扩展篇:HPA-KPA-VPA-CA实现k8s自动扩缩容 37-1k8s自动扩缩容背景分析 37-2HPA概述 37-3KPA概述 37-4VPA概述 37-5HPA工作原理和扩缩容流程 37-6安装和配置metrics-server组件 37-7dockerfile构建apache镜像 37-8Deployment部署apache服务 37-9创建HPA 37-10HPA基于CPU使用率实现Pod自动扩缩容 37-11HPA基于内存实现Pod自动扩缩容 第38章 扩展篇:k8s包管理工具Helm v3 38-1Helm介绍 38-2Helm v3版本相对v2的变化 38-3Helm v3安装 38-4配置Chart仓库地址 38-5搜索和下载Chart 38-6helm install运行Chart 38-7release相关操作 38-8自定义Chart图表 38-9Chart.yaml文件编写技巧 38-10go模板文件渲染 38-11values.yaml编写技巧 38-12运行自定义的release 38-13helm lint 38-14helm upgrade 38-15helm rollback 38-16helm package 38-17操作release相关的命令 38-18helm常用命令介绍 第39章 扩展篇:临时容器ephemeral 39-1临时容器ephemeralContainers介绍 39-2开启特性支持临时容器 39-3kubectl debug创建临时容器 39-4kubectl --raw创建临时容器 39-5添加多个临时容器 第40章 Ingress-Controller高可用方案及多租户场景 40-1在多个k8s节点安装Ingress-controll 40-2通过keepalived和nginx实现Ingres 40-3测试Ingress代理JAVA程序 40-4Ingress Controller多租户场景使用 第41章 Ingress通过Header实现流量切分-灰度发布 41-1Ingress按照权重-cookie-请求头灰度介绍 41-2部署新老版本Nginx服务 41-3Ingress-controller基于请求头和地域 41-4Ingress-controller基于Cookie 41-5Ingress-controller基于权重流量代理