Course Code: kubernetesone
Duration: 21 hours
Course Outline:

课程介绍:

进入到2020年,云计算、虚拟化、容器微服务PaaS技术发展和运用已如日中天,新兴互联网企业、通信运营服务商、金融保险云服务等行业通过应用以上技术,给现有的IT基础设施等带来了巨大的商业机遇,云计算的发展也经历了一系列的架构演化,从以虚拟机为主体的“重量级”云平台IaaS,发展到了以容器为主体的“轻量级”微服务云平台PaaS,作为“轻量级”微服务与容器云平台的代表性技术:Docker容器虚拟化,以及对应的Docker容器集群管理平台和Kubernetes容器云平台解决方案,已经成为事实上的工业级标准,Kubernetes从诞生起就引起开源社区和工业界的关注。全球著名的IT企业纷纷选择 Docker 与 Kubernetes 进行自身业务服务容器化与编排,无数中小型企业也开始落地 Kubernetes,正走在容器化的道路上。

       本课程首先将帮助学员系统地掌握K8s的架构设计和核心组件的工作原理,同时通过在课程中穿插安排动手实验,为学员带来K8s日常的应用、部署、监控、日志等运维工作经验和技巧,课程还将介绍业界目前主流的基于K8s的PaaS解决方案,如何设计运维大型K8s生产方案,内容包括网络、存储方案的选型,最终如何将传统应用迁移到K8s平台也是本课程的重要目标之一。

Kubernetes容器平台从原理到生产案例实战

时间

课程内容

12月9日

晚上

16:00-20:00(4小时)

DevOps & Cloud Native

  • DevOps概述
  • 传统IT交付模式及问题
  • Cloud Native架构发展

Kubernetes介绍

  • Kubernetes简介和发展历程
  • Kubernetes架构
  • 主要组件介绍
  • 基本概念与术语
  • Kubernetes的容器资源调度、负载均衡、容灾、服务注册和动态扩容等功能组件的工作原理与应用
  • Kubernetes管理Docker容器集群的架构设计
  • Kubernetes的Pods,Replication Controller,Services,Labels,Proxy功能组件部署与配置
  • Kubernetes主节点上运行的组件配置,包括API Server、Scheduler、Controller-Manager的应用部署
  • Kubernetes Node节点上的两个运行组件包括kubelet、Kube-Proxy的应用部署

自动化部署完整的 Kubernetes 集群(老师演示)

  • 实施前准备工作
  • 生产环境K8S平台规划
  • 服务器硬件配置推荐
  • Etcd数据库集群部署
  • 部署Master组件
  • 部署Node组件
  • 部署K8S容器集群网络(Flannel)

12月28日上午

自动化部署完整的 Kubernetes 集群(学员操作)

  • 部署Web UI(Dashboard)
  • 部署K8S内部DNS服务(CoreDNS)
  • 一键部署部署K8S高可用集群

 kubectl 命令行管理工具

  • kubectl管理命令概要
  • kubectl工具管理集群应用
  • kubectl工具远程连接K8S集群

资源编排(YAML)

  • YAML文件格式说明
  • YAML文件创建资源对象
  • YAML字段介绍

深入理解Pod对象

  • Pod介绍与容器分类
  • Pod存在的意义
  • Pod实现机制
  • Pod镜像拉取策略
  • Pod资源限制
  • Pod重启策略
  • Pod健康检查
  • Pod调度约束
  • 故障排查

最常用的控制器 Deployment

  • Deployment功能及应用场景
  • 使用Deployment部署Java应用
  • 应用升级、回滚、弹性伸缩

12月28日下午

深入理解Service(统一入口访问应用)

  • Service介绍与定义
  • Service存在的意义
  • Service三种类型
  • Service类型小结
  • 代理模式之Iptables工作原理
  • 代理模式之IPVS工作原理
  • Iptables与IPVS小结
  • 集群内部DNS服务(CoreDNS)

Ingress(对外暴露你的应用)

  • Ingress Controller部署(Nginx)
  • Ingress HTTP
  • Ingress HTTPS
  • Ingress Nginx工作原理

Volume(数据卷)

  • emptyDir(容器数据共享)
  • hostPath(访问宿主机数据)
  • NFS(网络存储)

12月29日

上午

Kubernetes控制器(管理Pod)

  • Deployment(部署无状态应用)
  • 无状态与有状态服务区别
  • 从Headless Service谈起(部署有状态应用)
  • StatefulSet(部署有状态应用)
  • DaemonSet(部署守护进程)
  • Job与CronJob(离线业务)

Kubernetes调度详解与应用场景

  • 调度流程
  • 调试策略
  • 预选与优选
  • Pod优先级与抢占
  • 调度策略应用场景
  • 调度策略场景实战

Kubernetes 容器持久化存储

  • PV与PVC的关系
  • PV 静态供给及应用案例
  • PV 动态供给(StorageClass)
  • PV 动态供给应用案例
  • StatefulSet对存储状态管理机制

12月29日

下午

Kubernetes配置管理

  • Secret(机密存储)
  • ConfigMap(配置文件存储)

Kubernetes安全机制

  • K8S安全框架,API认证
  • RBAC核心概念
  • RBAC授权普通用户对命名空间访问权限
  • RBAC授权ServiceAccount对命名空间访问权限

Kubernetes包管理工具Helm

  • Helm简介
  • 管理应用生命周期
  • 模板编写与最佳实践
  • 使用Helm部署应用实战

Kubernetes/K8s部署Spring Cloud微服务电商项目

  • 传统部署方式与K8S部署方式区别
  • 项目迁移到K8S平台的流程
  • Spring Cloud微服务电商项目概述
  • 在K8S中部署Spring Cloud微服务项目

12月30日

晚上

16:00-19:00(3小时)

Kubernetes日志处理

  • Kubernetes日志处理工作原理
  • 使用EFK进行日志收集方案
  • 部署EFK收集Kubernetes日志实战演练

全方位监控 Kubernetes

  • K8S监控方案
  • K8S监控指标及实现思路
  • Prometheus+Grafana 全方位监控系统
  • 在K8S中部署Prometheus
  • 在K8S中部署Grafana
  • Grafana可视化展示K8S集群性能指标