你将学到的
  • Docker 容器技术入门
  • Kubernetes Pod 和 Service
  • Kubernetes Helm 和安全配置
  • Kubernetes 入门与配置
  • 控制器、共享存储与网络
  • Kubernetes 典型应用与拓展
课程内容
阶段 0 课程准备   展开
共2个章节
lab-classic 实验 1 课程须知
lab-classic 实验 2 开课准备
阶段 1 Docker 容器技术入门   展开
共18个章节
lab-classic 实验 3 Docker 概念及基本用法

知识点: 1.Docker基本概念 2.安装Docker 3.Docker运行HelloWorld

lab-classic 实验 4 Docker 容器管理

知识点: 1.Docker基本命令 2.Docker容器操作命令

lab-classic 实验 5 Docker 镜像管理

知识点: 1.查看镜像列表 2.查看镜像详细信息 3.搜索镜像 4.拉取镜像 5.构建镜像 6.删除镜像

lab-challenge 挑战 1 通过 Docker 运行 MySQL 服务

知识点: 1.Docker镜像管理 2.DockerHub获取镜像 3.Docker容器相关命令 4.Docker容器端口映射

lab-classic 实验 6 Docker 存储管理

知识点: 1.使用volumes 2.使用bindmounts 3.使用tmpfs 4.数据卷容器 5.数据卷的备份与恢复

lab-classic 实验 7 Docker 网络管理

知识点: 1.docker容器端口映射 2.自定义网络实现容器互联 3.host和none网络的使用

lab-challenge 挑战 2 通过 Docker 来运行实验楼网站

知识点: 1.Docker镜像构建 2.Docker网络管理 3.容器之间网络通信 4.Nginx代理配置

lab-classic 实验 8 编写 DockerFile

知识点: 1.Dockerfile基本语法 2.Dockerfile创建镜像流程

lab-classic 实验 9 Docker 运行 MongoDB 及 Redis

知识点: 1.MongoDB的安装及配置 2.Redis的安装及配置 3.Dockerfile的编写 4.从Dockerfile构建镜像

lab-challenge 挑战 3 使用 Docker 运行 WordPress

知识点: 1.WordPress的安装及配置 2.Dockerfile的编写 3.从Dockerfile构建镜像

lab-classic 实验 10 搭建自己的 Docker Registry

知识点: 1.DockerRegistry的部署和配置 2.使用Registry管理仓库和镜像 3.DockerRegistry的配置

知识点: 1.使用证书加固DockerDaemon安全 2.设置特权级运行的容器:privileged=true 3.设置容器权限白名单:capadd 4.DockerBenchSecurity

lab-challenge 挑战 4 限制 Docker 用户权限

知识点: 1.使用user参数设置Docker的uid和gid 2.使用securityopt参数限制Docker用户权限

lab-classic 实验 12 Docker Compose 项目

知识点: 1.安装DockerCompose 2.创建DockerCompose服务Webredis网站

lab-classic 实验 13 Docker Swarm 项目

知识点: 1.下载DockerSwarm 2.部署和管理Swarm集群

lab-challenge 挑战 5 Compose 部署简单服务

知识点: 1.DockerSwarm的使用 2.DockerCompose的编写

lab-classic 实验 14 Docker API 详解

知识点: 1.DockerAPI基本概念与认证 2.使用API管理容器:创建,查看,删除等操作 3.使用API管理镜像:创建,查看,删除等操作 4.使用API管理数据卷:创建,查看,删除等操作 5.使用API管理网络:创建,查看,删除等操作

lab-classic 实验 15 基于 Docker API 开发应用

知识点: 1.docker包的安装与使用 2.获取容器信息 3.使用Dockerfile创建镜像

阶段 2 Kubernetes 入门与配置   展开
共18个章节
lab-classic 实验 16 Kubernetes 介绍和基本概念

知识点: 1.Kubernetes发展简介 2.Kubernetes的特点 3.为什么要使用Kubernetes 4.Kubernetes架构 5.KubernetesAPI对象和核心概念

lab-classic 实验 17 微服务架构

知识点: 1.CloudNative(云原生) 2.微服务架构简介 3.微服务API设计 4.Kubernetes的微服务架构设计

lab-classic 实验 18 部署一个 Java Web 应用

知识点: 1.构建并启动MySQL服务 2.构建并启动Tomcat服务 3.访问网页 4.清除环境

lab-challenge 挑战 6 部署实验楼网站

知识点: 1.使用ReplicationController资源对象创建pod 2.使用Service资源对象创建服务 3.外网访问Kubernetes集群内部的服务

lab-classic 实验 19 YAML 配置文件详解

知识点: 1.YAML的基本语法规则 2.YAML的数据结构 3.常用特殊符号

lab-challenge 挑战 7 修复 YAML 文件格式错误

知识点: 1.使用YAML语法修复配置文件中的格式错误

lab-classic 实验 20 Minikube 本地安装部署

知识点: 1.Minikube的安装 2.Minikube的简单使用

lab-classic 实验 21 阿里云 ECS 安装 Kubeadm

知识点: 1.创建一台ECS服务器 2.安装ALLInOne的Kubernetes集群 3.部署Nginx验证集群 4.部署Dashboard

lab-challenge 挑战 8 使用 Kubeadm 搭建多节点集群

知识点: 1.使用Kubeadm搭建多节点Kubernetes集群

lab-classic 实验 22 kubectl 命令行工具详解

知识点: 1.KubernetesAPI概述 2.kubectl用法详解 3.kubectl操作示例

lab-challenge 挑战 9 使用 kubectl 完成需求

知识点: 1.kubectl命令行工具的使用

lab-classic 实验 23 kubelet 功能及运行机制

知识点: 1.kubelet功能及模块 2.kubelet启动参数 3.Node管理 4.Pod管理 5.容器健康检查 6.资源监控

lab-classic 实验 24 kube proxy 相关组件详解

知识点: 1.userspace模式 2.iptables模式 3.ipvs模式 4.kubeproxy启动参数

lab-challenge 挑战 10 配置 kube proxy 组件

知识点: 1.kubeproxy组件的配置

lab-classic 实验 25 API Server 相关组件详解

知识点: 1.多种方式访问APIServer 2.APIServer工作原理 3.访问控制 4.常用参数介绍 5.KubernetesProxyAPI接口

lab-classic 实验 26 Etcd 组件详解

知识点: 1.Etcd工作原理:Raft协议 2.Etcdv2和v3的区别 3.Etcd安装与简单使用 4.Etcd在Kubernetes中的应用

lab-classic 实验 27 配置 Kubernetes Dashboard

知识点: 1.创建admin用户 2.访问DashboardService的4种方式 3.WebUI界面简介

lab-challenge 挑战 11 使用 Kubernetes Dashboard

知识点: 1.使用kubernetesdashboard的Web界面进行资源的创建

阶段 3 Kubernetes Pod 和 Service   展开
共19个章节
lab-classic 实验 28 Pod 基本用法详解

知识点: 1.Pod简介 2.创建Pod 3.标签 4.标签选择器 5.命名空间(Namespace) 6.删除Pod 7.副本集(RS) 8.后台支撑服务集(DaemonSet) 9.任务(Job)

lab-classic 实验 29 使用 ConfigMap 配置应用程序

知识点: 1.ConfigMap简介 2.创建ConfigMap资源对象 3.在Pod中使用ConfigMap

lab-challenge 挑战 12 使用 ConfigMap 配置 Pod

知识点: 1.使用ConfigMap配置Pod

lab-classic 实验 30 使用 Secret 传递敏感数据

知识点: 1.Secret简介 2.默认令牌Secret 3.创建Secret 4.使用Secret

lab-classic 实验 31 多容器 Pod 详解

知识点: 1.多容器Pod简介 2.Pod容器共享Volume 3.进程间通信(IPC) 4.容器间网络通信

lab-challenge 挑战 13 启动多容器的 Pod

知识点: 1.在一个Pod中运行两个容器 2.两个容器使用相同的共享卷

lab-classic 实验 32 Scheduler 调度服务

知识点: 1.kubescheduler职责及调度流程 2.常用参数 3.预选策略(PredicatesPolicies) 4.优选策略(PrioritesPolicies) 5.自定义调度器

lab-classic 实验 33 使用 Deployment 管理 Pod

知识点: 1.Deployment简介 2.Deployment的升级 3.Deployment的回滚 4.Deployment的暂停与恢复

lab-challenge 挑战 14 使用 Deployment 升级 Pod

知识点: 1.使用Deployment升级Pod

lab-classic 实验 34 Pod 扩容与缩容

知识点: 1.手动扩缩容 2.自动扩缩容 3.扩缩容算法 4.phpapache自动扩缩容实例 5.配置HPA

lab-classic 实验 35 Daemon 和 StatefulSet 使用

知识点: 1.DaemonSet简介 2.运行示例程序 3.滚动更新 4.StatefulSet简介 5.运行nginx实例 6.扩缩容StatefulSet 7.更新StatefulSet 8.删除StatefulSet 9.Pod管理策略

lab-challenge 挑战 15 使用 StatefulSet 部署应用

知识点: 1.创建本地持久存储卷 2.将本地持久存储卷绑定到Node上 3.创建StatefulSet运行MongoDB应用

lab-classic 实验 36 Service 基本用法

知识点: 1.Service简介 2.Service的类型 3.使用命令创建服务 4.使用YAML文件创建服务

lab-classic 实验 37 Service Discovery 服务发现

知识点: 1.环境变量 2.DNS

lab-classic 实验 38 ClusterIP 和 NodePort 服务

知识点: 1.ClusterIpService简介 2.NormalService 3.HeadlessService 4.NodePortService简介 5.NodePortService实例 6.扩展:客户端直接访问Pod

lab-challenge 挑战 16 设置 NodePort Service

知识点: 1.使用Deployment创建Pod副本 2.设置NodePort类型的Service

lab-classic 实验 39 负载均衡和 ExternalName

知识点: 1.LoadBalancerService简介 2.使用nginx软件手动实现负载均衡 3.由云服务商提供负载均衡器 4.ExternalNameService简介

lab-classic 实验 40 Ingress 集群外部访问管理

知识点: 1.Ingress简介 2.部署nginxingresscontroller 3.部署一个简单的Nginx实例 4.不同的Ingress策略配置类型 5.配置Ingress处理TLS传输

lab-challenge 挑战 17 配置 Ingress 访问 Dashboard

知识点: 1.Ingress配置TLS

阶段 4 控制器、共享存储与网络   展开
共15个章节
lab-classic 实验 41 Node 与 Namespace 控制器

知识点: 1.NodeController简介 2.Node的隔离与恢复 3.Node的扩容 4.NamespaceController简介 5.创建namespace 6.定义Context 7.切换Context 8.删除Namespace

lab-classic 实验 42 ResourceQuota Controller

知识点: 1.ResourceQuotaController简介 2.计算资源管理 3.资源的服务质量管理(QoS) 4.Container资源配额 5.Pod资源配额 6.Namespace资源配额

lab-challenge 挑战 18 Kubectl 多集群访问配置

知识点: 1.使用kubeadm搭建ALLInOne集群 2.使用KUBECONFIG环境变量设置多集群配置文件路径

lab-classic 实验 43 Ingress Controller

知识点: 1.IngressController简介 2.NGINXIngressController 3.KongIngress 4.Traefik 5.IstioIngress

lab-classic 实验 44 Kubernetes 存储机制

知识点: 1.kubernetes存储简介 2.kubernetes存储架构与原理 3.存储卷(Volume) 4.临时存储(emptyDir) 5.使用Node的文件系统(hostPath) 6.本地存储卷(local) 7.AWS弹性块存储(awsElasticBlockStore)

知识点: 1.持久存储卷(PersistentVolume) 2.持久存储卷声明(PersistentVolumeClaim) 3.静态存储实例

lab-challenge 挑战 19 部署挂载存储卷的应用

知识点: 1.PV的创建和使用 2.PVC的创建和使用

lab-classic 实验 46 动态存储管理

知识点: 1.StorageClass详解 2.不同存储卷的配置参数 3.动态存储管理实例

lab-challenge 挑战 20 Pod 的动态存储配置

知识点: 1.NFS动态存储卷的配置和使用

lab-classic 实验 47 Kubernetes 网络概述

知识点: 1.Kubernetes网络模型 2.Kubernetes网络实现之“容器之间的通信” 3.Kubernetes网络实现之“Pod之间的通信”

lab-classic 实验 48 CNI 网络模型

知识点: 1.CNI网络模型简介 2.CNIPlugin 3.IPAMPlugin 4.实例

知识点: 1.网络策略原理 2.给Pod设置网络策略 3.给Namespace设置网络策略 4.网络策略实例

lab-challenge 挑战 21 配置多服务的网络策略

知识点: 1.网络策略配置

lab-classic 实验 50 Calico 网络插件

知识点: 1.Calico简介 2.使用Calico搭建集群环境 3.测试搭建的集群

lab-classic 实验 51 Flannel 网络插件

知识点: 1.Flannel简介 2.使用Flannel搭建集群环境

阶段 5 Kubernetes Helm 和安全配置   展开
共19个章节
lab-classic 实验 52 Helm 基础用法

知识点: 1.Helm简介 2.安装Helm 3.Helm的常用命令

lab-classic 实验 53 Helm 模板(上)

知识点: 1.Helm模板简介 2.内置对象与Values文件 3.模板函数与管道 4.流程控制

lab-classic 实验 54 Helm 模板(下)

知识点: 1.变量 2.命名模板 3.在模板中访问文件 4.忽略不需要的文件和文件夹 5.notes文件 6.子chart和全局值

lab-challenge 挑战 22 使用 Helm 部署 Tomcat

知识点: 1.Helm创建Chart 2.对Chart模板进行简单配置

lab-classic 实验 55 Helm Hooks 与仓库

知识点: 1.HelmHooks简介 2.写一个Hook 3.Chart仓库

lab-challenge 挑战 23 配置 Harbor 为 Helm 的存储仓库

知识点: 1.使用Helm安装Harbor 2.Harbor创建仓库 3.配置本地Helm推送Chart到Harbor

lab-classic 实验 56 Kubernetes 安全机制概述

知识点: 1.Kubernetes访问控制的三个层次

lab-classic 实验 57 Kubernetes 认证

知识点: 1.KubernetesAccount简介 2.UserAccount 3.ServiceAccount 4.Kubernetes认证简介 5.账户身份认证的4种方式

lab-classic 实验 58 Kubernetes 授权(上)

知识点: 1.Kubernetes授权简介 2.RBAC授权模式

lab-challenge 挑战 24 配置 Service Account 访问 API

知识点: 1.ServiceAccount的使用 2.RBAC授权配置

lab-classic 实验 59 Kubernetes 授权(下)

知识点: 1.Node授权模式 2.ABAC授权模式 3.Webhook授权模式

lab-classic 实验 60 Kubernetes 准入控制

知识点: 1.AdmissionControl简介 2.AdmissionControl插件列表 3.例子:一个Webhook准入控制器

lab-challenge 挑战 25 集群添加账户并设置 RBAC 授权

知识点: 1.kubernetes集群新建用户 2.RBAC授权设置

lab-classic 实验 61 Kubernetes 日志采集

知识点: 1.Kubernetes日志简介 2.在Pod中处理日志(podlevellogging) 3.在Node中处理日志(nodelevellogging) 4.处理整个集群的日志(clusterlevellogging) 5.在每个Node节点上运行一个agent收集日志 6.在每个Pod中运行sidecar容器收集日志 7.直接在应用程序中将日志信息推送到采集后端

lab-classic 实验 62 EFK 搭建日志收集系统

知识点: 1.EFK简介 2.使用EFK搭建日志收集服务 3.部署Elasticsearch 4.部署Fluentd 5.部署Kibana 6.进行测试

lab-challenge 挑战 26 使用 Helm 部署 EMK 日志收集系统

知识点: 1.Helm的基本使用 2.在集群中安装ElasticsearchKibanaMetricbeat

lab-classic 实验 63 Prometheus 集群监控

知识点: 1.Prometheus简介 2.Prometheus和Grafana简单上手 3.安装Prometheus和Grafana 4.创建监控集群 5.测试访问Grafana服务 6.测试访问Grafana服务 7.测试访问Alertmanager服务

lab-challenge 挑战 27 Prometheus 和 Grafana 部署

知识点: 1.Helm的基本使用 2.按需修改Chart配置 3.Prometheus和Grafana的基本使用

lab-classic 实验 64 故障排查常用方法

知识点: 1.应用故障分析方法 2.Pod故障排查 3.Service故障排查 4.Ingress故障排查 5.集群故障排查

阶段 6 Kubernetes 典型应用与拓展   展开
共11个章节
lab-classic 实验 65 Kubernetes 调度器

知识点: 1.Kubernetes调度器

lab-classic 实验 66 Kubernetes 亲和性调度

知识点: 1.nodeSelector 2.亲和性和反亲和性调度 3.污点(taints)与容忍(tolerations)

lab-classic 实验 67 搭建动态 Jenkins Slave

知识点: 1.Jenkins简介 2.安装Jenkins 3.配置kubernetesplugin 4.测试

lab-classic 实验 68 Jenkins Pipeline 部署应用

知识点: 1.JenkinsPipeline介绍 2.创建一个简单的Pipeline 3.部署Kubernetes应用 4.配置从仓库中使用jenkinsfile文件

lab-classic 实验 69 配置使用 Jenkins BlueOcean

知识点: 1.BlueOcean的使用

lab-classic 实验 70 部署 Docker 私有仓库 Harbor

知识点: 1.Harbor的安装使用

lab-challenge 挑战 28 Kubelet 从 Harbor 中拉取镜像

知识点: 1.配置从私有仓库中获取镜像

lab-classic 实验 71 Gitlab 的安装使用

知识点: 1.Gitlab的安装使用

lab-classic 实验 72 使用 Gitlab 进行 CI 操作

知识点: 1.GitlabCI使用

lab-classic 实验 73 Kubernetes Devops 实践

知识点: 1.搭建一个完整的CI/CD流水线作业

lab-challenge 挑战 29 在集群中部署 VSCode

知识点: 1.traefik的安装 2.YAML文件的编写 3.traefik路由配置的使用

课程介绍

随着云计算的快速发展,各种云服务已经为我们提供了稳定、方便的基础设施,企业上云成为趋势。但是,具体的业务上云,即云原生应用成为了工程师们面临的新考验。Docker 容器是云原生应用的基石,而 Kubernetes 则让容器应用进入大规模的工业生产,成为云原生应用的基础架构。

起源于 Google 的 Kubernetes(简称:K8s)在过去几年中一直都是云计算领域最著名的开源项目之一,如今更是成为容器编排的事实标准,为组织设计和部署应用程序带来全新定义。Linux 基金会常务董事 Jim Zemlin 曾说:Kubernetes 已经成为云计算时代的 Linux 操作系统。

无论是对于开发人员、测试人员还是运维人员,Kubernetes 的诞生不仅减少了工作的复杂性,同时也降低了各种成本。但是由于 Kubernetes 的平台级特性,涵盖技术广泛,学习曲线陡峭,因此尽早学习、多多练习,才是掌握这门新技术的不二法则。

学完可达到的水平

学完之后,对于 Kubernetes 的各个组件有一个系统完整的认识。同时,对于集群部署、网络服务、存储选择、安全管理等技术细节充分掌握。结合其它已掌握的编程语言经验或是运维经验,可以投递初级 Kubernetes 开发工程师,或是初级运维工程师岗位。

适合人群

具备 Linux 和 Docker 基础,希望通过动手实战的方式快速入门容器和 Kubernetes 技术。面向运维工程师,研发工程师,DevOps 工程师和计算机专业应届学生等群体。

挑战参考答案仓库

课程教师

实验楼 共发布过 55 门课程

查看老师的所有课程 >
实验楼楼+
实验楼会员
会员
开通会员,即刻开始学习
公众号
实验楼学习助手 实验楼订阅号