
CNCF X 阿里巴巴云原生技术公开课
这门课程是由 CNCF 官方与阿里巴巴强强联合,共同推出的以“云原生技术体系”为核心、以“技术解读”和“实践落地”并重的系列技术公开课。我们希望能以此帮助每一位云时代的开发者和技术人员,把握到云原生时代的精髓与本质。
阿里云云原生
阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的公众号。
展开
-
第一堂“云原生”课
本节课程要点云原生技术发展历程(为什么要学习这门课)课程简介与预备知识(这门课到底教什么)云原生的定义与技术要点(本节正式内容)为什么要开设云原生技术公开课?云原生技术发展简史首先从第一个问题进行分享,那就是“为什么要开设云原生技术公开课?”云原生、CNCF 都是目前非常热门的关键词,但是这些技术并不是非常新鲜的内容。2004 年— 2007 年,Google 已在内部大规模地...原创 2020-10-28 16:07:52 · 1089 阅读 · 0 评论 -
容器基本概念
本节课程要点什么是容器与镜像?如何构建容器与镜像容器的生命周期容器项目的架构容器 VS.VM容器与镜像什么是容器?在介绍容器的具体概念之前,先简单回顾一下操作系统是如何管理进程的。首先,当我们登录到操作系统之后,可以通过 ps 等操作看到各式各样的进程,这些进程包括系统自带的服务和用户的应用进程。那么,这些进程都有什么样的特点?第一,这些进程可以相互看到、相互通信;第二,...原创 2020-10-28 16:07:53 · 5259 阅读 · 0 评论 -
Kubernetes 核心概念
本节课程要点什么是 Kubernetes :介绍 Kubernetes 的主要功能以及能力;Kubernetes 的架构:介绍 Kubernetes 的核心组件,以及介绍它们之间是如何相互互动连接;Kubernetes 的核心概念与核心 API;什么是 KubernetesKubernetes,从官方网站上可以看到,它是一个工业级的容器编排平台。Kubernetes 这个单词是希腊语...原创 2020-10-28 16:07:53 · 560 阅读 · 0 评论 -
理解 Pod 和容器设计模式
本节课程要点为什么需要 Pod;Pod 的实现机制;详解容器设计模式。为什么需要 Pod容器的基本概念现在来看第一个问题:为什么需要 Pod?我们知道 Pod 是 Kubernetes 项目里面一个非常重要的概念,也是非常重要的一个原子调度单位,但是为什么我们会需要这样一个概念呢?我们在使用容器 Docker 的时候,也没有这个说法。其实如果要理解 Pod,我们首先要理解容器,所以...原创 2020-10-28 16:07:54 · 958 阅读 · 0 评论 -
课时 1 自测题
Kubernetes 并不支持为应用固定 IP,于是我自己通过编写网络插件把应用 IP 管理在了 etcd 里,然后上线。请问这破坏了云原生的理念了吗?(单选题)A. 否B. 是容器启动后,我会时常 SSH 进入到容器里然后写很多文件。请问这破坏了云原生理念了吗? (单选题)A. 否B. 是我编写的容器化应用,会将日志文件写在某路径写死的目录里。请问这破坏了云原生理念了吗?(单选题)...原创 2020-10-28 16:07:54 · 707 阅读 · 0 评论 -
课时 2 自测题
已运行 docker run -d —name demo busybox:1.25 top 命令,如何使用 docker 命令来获取容器 demo 的 Init 进程 PID?(单选题)A. docker inspect demo -f '{{.State.Pid}}'B. docker inspect demo -f '{{.Pid}}'已知容器 Init 进程 PID,在宿主机上通过 ...原创 2020-10-28 16:07:55 · 310 阅读 · 0 评论 -
课时 3 自测题
Kubernetes 的中文含义是(单选题)A. 船B. 舵手C. 容器平台D. 起重机Kubernetes 进行资源调度的最小粒度是(单选题)A. 进程B. 容器C. PodD. 虚拟机Kubernetes 的主要功能不包括(多选题)A. Service discovery and load balancingB. Automatic bin packingC. St...原创 2020-10-28 16:07:55 · 292 阅读 · 0 评论 -
课时 4 自测题
1.容器的 PID=1 的进程是应用本身。(单选题)A. 否 B. 是 2.如果:Kubernetes 比作操作系统,容器比作进程,那么:Pod 可以比作进程组。(单选题)A. 否 B. 是3.容器的“单进程”模型的具体含义是?(单选题)A. 容器里只能运行一个进程 B. 容器里PID=1 的进程是应用本身,一般情况下不具备像 systemd 这样完善的进程管理能力 ...原创 2020-10-28 16:07:56 · 604 阅读 · 0 评论 -
应用编排与管理:核心原理
本节课程要点K8s 资源的重要元信息;使用阿里云服务演示一下如何去修改或查看 K8s 重要元数据;详细分析控制器模式;总结控制器模式特点。资源元信息1. Kubernetes 资源对象首先,我们来回顾一下 Kubernetes 的资源对象组成:主要包括了 Spec、Status 两部分。其中 Spec 部分用来描述期望的状态,Status 部分用来描述观测到的状态。今天我们将为...原创 2020-10-28 16:07:57 · 570 阅读 · 0 评论 -
课时 5 自测题
下列哪个键值对无法作为 k8s对象的 label ?(单选题)A. app.kubernetes.io/version=3.4.1B. failure-domain.beta.kubernetes.io/region=cn-shanghaiC. app-name=tradeD. scaling-config=“min-replicas:50” 下列哪个键值对不适合做为 annotati...原创 2020-10-28 16:07:57 · 331 阅读 · 0 评论 -
应用编排与管理
本节课程要点需求来源;用例解读;操作演示以及架构设计。需求来源背景问题首先,我们来看一下背景问题。如下图所示:如果我们直接管理集群中所有的 Pod,应用 A、B、C 的 Pod,其实是散乱地分布在集群中。现在有以下的问题:首先,如何保证集群内可用 Pod 的数量?也就是说我们应用 A 四个 Pod 如果出现了一些宿主机故障,或者一些网络问题,如何能保证它可用的数量?如何为...原创 2020-10-28 16:07:58 · 340 阅读 · 0 评论 -
课时 6 自测题
通过 Deployment 不能实现以下功能:(单选题)A. 应用扩缩容B. 应用发布回滚C. 应用重启D. 应用副本数量维持一个 Deployment 中,哪些 labels/selector 必须一致:(单选题)A. deployment.Labels 与 deployment.Spec.Template.Labels一致B. deployment.Labels 与 deplo...原创 2020-10-28 16:07:58 · 406 阅读 · 0 评论 -
应用编排与管理:Job & DaemonSet
本节课程要点Job & CronJobs 基础操作与概念解析;DaemonSet 基础操作与概念解析。Job需求来源Job 背景问题首先我们来看一下 Job 的需求来源。我们知道 K8s 里面,最小的调度单元是 Pod,我们可以直接通过 Pod 来运行任务进程。这样做将会产生以下几种问题:我们如何保证 Pod 内进程正确的结束?如何保证进程运行失败后重试?如何管理多...原创 2020-10-28 16:07:59 · 440 阅读 · 0 评论 -
课时 7 自测题
Job 中 spec 可否指定 replicas 参数?(单选题)A. 可以B. 不可以Job 能帮助我们做的事情不包括如下哪个?(单选题)A. 确保每一台机器都能运行指定的 PodB. 跟踪 Pod 状态,根据配置及时重试失败的 PodC. 确定依赖关系,保证上一个任务运行完毕后再运行下一个任务D. 控制任务并行度,并根据配置确保 Pod 队列大小有一个任务会偶发失败,我们希望...原创 2020-10-28 16:07:59 · 276 阅读 · 0 评论 -
应用配置管理
本节课程要点ConfigMaps 和 Secret 资源的创建和使用;Pod 身份认证的实现和原理;容器资源、安全、前置校验等配置和使用。细分为以下八个方面:需求来源背景问题首先一起来看一下需求来源。大家应该都有过这样的经验,就是用一个容器镜像来启动一个 container。要启动这个容器,其实有很多需要配套的问题待解决:第一,比如说一些可变的配置。因为我们不可能把一些可变...原创 2020-10-28 16:08:00 · 364 阅读 · 0 评论 -
课时 8 自测题
Pod 中引用 ConfigMap 不正确的是:(单选题)A. 环境变量B. 命令行参数C. 资源声明D. Volumes如下哪些方式创建的 Pod 可以使用 ConfigMap?(多选题)A. KubectlB. DashboardC. kubelet mainifestsD. kubelet urlServiceAccount 用的 Secret 类型是哪一种?(单选题)...原创 2020-10-28 16:08:00 · 269 阅读 · 0 评论 -
应用存储和持久化数据卷:核心知识
本次课程的分享主要围绕以下三个部分:K8s Volume 使用场景PVC/PV/StorageClass 基本操作和概念解析PVC+PV 体系的设计与实现原理Volumes 介绍Pod Volumes首先来看一下 Pod Volumes 的使用场景:场景一:如果 pod 中的某一个容器在运行时异常退出,被 kubelet 重新拉起之后,如何保证之前容器产生的重要数据没有丢失?...原创 2020-10-28 16:08:01 · 569 阅读 · 0 评论 -
课时 9 自测题
在 Pod 中声明使用 volume 需要配置哪些字段? (多选题)A. .spec.volumesB. .spec.initContainers.volumeMountsC. .spec.containers.volumeMounts 在 Pod 中声明使用 volume 常见类型?(多选题)A. 本地存储B. 网络存储C. Projected Volume(投射卷)D. P...原创 2020-10-28 16:08:01 · 262 阅读 · 0 评论 -
应用存储和持久化数据卷:存储快照与拓扑调度(至天)
本文将主要分享以下两方面的内容:存储快照概念、使用与工作原理;存储拓扑调度背景、概念、使用与工作原理。基本知识存储快照产生背景在使用存储时,为了提高数据操作的容错性,我们通常有需要对线上数据进行snapshot,以及能快速restore的能力。另外,当需要对线上数据进行快速的复制以及迁移等动作,如进行环境的复制、数据开发等功能时,都可以通过存储快照来满足需求,而 K8s 中通过 CS...原创 2020-10-28 16:08:02 · 426 阅读 · 0 评论 -
课时 10 自测题
使用存储快照功能需要用到哪些 Kubernetes API 资源对象?(多选题)A. VolumeSnapshotB. VolumeSnapshotClassC. VolumeSnapshotContentD. PersistentVolumeClaim Kubernetes 中基于 CSI 实现存储快照(snapshot&restore)功能需要的组件有?(多选题)A. ...原创 2020-10-28 16:08:02 · 264 阅读 · 0 评论 -
课时 11:可观测性:你的应用健康吗?(莫源)
本次课程的分享主要围绕以下五个部分: 介绍一些整体需求的来源;介绍在 K8s 中 Liveness 和 Readiness 的使用方式;介绍在 K8s 中常见问题的诊断;应用的远程调试的方式;课程的总结与实践;需求来源首先来看一下,整个需求的来源:当把应用迁移到 Kubernetes 之后,要如何去保障应用的健康与稳定呢?其实很简单,可以从两个方面来进行增强:首先是提高应用的...原创 2020-10-28 16:08:03 · 351 阅读 · 0 评论 -
课时 11 自测题
在 Kubernetes 目前支持的哪几种探针?(多选题)A. Liveness ProbeB. Readiness ProbeC. Port ProbeD. Exec Probe 以下哪个关于 Liveness Probe 的描述是错误的?(多选题)A. Liveness Probe 是就绪探针B. Liveness Probe 是存活探针C. Livenss Probe 和...原创 2020-10-28 16:08:03 · 364 阅读 · 0 评论 -
课时 12:可观测性-监控与日志(莫源)
本文主要分为四个部分:在 K8s 中监控和日志的背景信息;在 K8s 中监控方案的演进,以及常见的监控方案的提供;日志采集的一些细节以及常见的日志的开源系统;课程总结,介绍一下阿里云容器服务上面监控和日志的最佳实践。背景监控和日志是大型分布式系统的重要基础设施,监控可以帮助开发者查看系统的运行状态,而日志可以协助问题的排查和诊断。在 Kubernetes 中,监控和日志属于生态的...原创 2020-10-28 16:08:04 · 479 阅读 · 0 评论 -
课时 12 自测题
以下哪些是 Kubernetes 中常见的监控场景?(多选题)A. 资源监控B. 性能监控C. 安全监控D. 事件监控 从功能性的角度而言,Heapster 的 Sink 机制比 Metrics-Server 更强大。(单选题)A. TRUEB. FALSE Metrics-Server 的核心产生原因是为了实现监控接口的标准化。(单选题)A. TRUEB. FALSE ...原创 2020-10-28 16:08:04 · 332 阅读 · 0 评论 -
Kubernetes 网络概念及策略控制(叶磊)
本文将主要分享以下 5 方面的内容: Kubernetes 基本网络模型;Netns 探秘;主流网络方案简介;Network Policy 的用处;思考时间。Kubernetes 基本网络模型本节来介绍一下 Kubernetes 对网络模型的一些想法。大家知道 Kubernetes 对于网络具体实现方案,没有什么限制,也没有给出特别好的参考案例。Kubernetes 对一个容器网...原创 2020-10-28 16:08:05 · 322 阅读 · 0 评论 -
课时 13 自测题
Kubernetes 基本网络模型需要符合哪些条件?(多选题)A. 所有 Pod 可以与其他 Pod 直接通信,无需显式使用 NATB. 所有 Node 可以与所有 Pod 直接通信,无需显式使用 NATC. Pod 可见的 IP 地址确为其他 Pod 与其通信时所用,无需显式转换 Kubernetes 网络方案需要考虑哪些需要达成的连通性目标?(多选题)A. 容器与容器间的通信B...原创 2020-10-28 16:08:05 · 234 阅读 · 0 评论 -
Kubernetes Service(溪恒)
本文将主要分享以下四方面的内容:为什么需要 K8s service;K8s service 用例解读;K8s service 操作演示;K8s service 架构设计。需求来源为什么需要服务发现在 K8s 集群里面会通过 pod 去部署应用,与传统的应用部署不同,传统应用部署在给定的机器上面去部署,我们知道怎么去调用别的机器的 IP 地址。但是在 K8s 集群里面应用是通过 p...原创 2020-10-28 16:08:06 · 430 阅读 · 0 评论 -
课时 14 自测题
下列哪些类型的 Service 用于向集群外部暴露访问?(多选题)A. NodePortB. ClusterIPC. LoadBalancerD. ExternalName Pod 可以直接用 Service 名来访问同一个集群里的 Service,不管 Pod 和 Service在不在一个 Namespace。(单选题)A. TRUEB. FALSE 创建 LoadBala...原创 2020-10-28 16:08:06 · 253 阅读 · 0 评论 -
特别篇 :从 0 开始创作云原生应用 (殷达)
本节内容的分享主要围绕以下两方面介绍云原生应用是什么?介绍 Helm 和如何创作一个 Helm 应用。一、 云原生应用是什么?首先我们来思考一个问题:云原生应用是什么?在生活中我们会和各种各样的应用打交道,有时候会在移动端上使用淘宝购物、使用高德导航,在 PC 端使用 word 编辑文稿、使用 Photoshop 处理相片······这些在各类平台上的应用程序对用户而言,大多数都只...原创 2020-10-28 16:08:06 · 518 阅读 · 0 评论 -
课时 15-深入解析 Linux 容器 (华敏)
今天的内容主要分成以下三个部分资源隔离和限制;容器镜像的构成;容器引擎的构成;前两个部分就是资源隔离和限制还有容器镜像的构成,第三部分会以一个业界比较成熟的容器引擎为例去讲解一下容器引擎的构成。容器容器是一种轻量级的虚拟化技术,因为它跟虚拟机比起来,它少了一层 hypervisor 层。先看一下下面这张图,这张图简单描述了一个容器的启动过程。最下面是一个磁盘,容器的镜像是存储在...原创 2020-10-28 16:08:07 · 302 阅读 · 0 评论 -
课时 15 自测题
查看容器日志的命令是?(单选题)A. docker log $containerB. docker stats $container 一个 docker 容器,在宿主机上有几个进程?(单选题)A. 3 个,docker 进程,contanerd-shim 进程和 runc 进程B. 2 个,contanerd-shim 进程和 runc 进程C. 1 个,contanerd-shi...原创 2020-10-28 16:08:07 · 283 阅读 · 0 评论 -
课时 16 深入理解 etcd:基于原理解析(曾凡松)
本文将主要分享以下三方面的内容:第一部分,会为大家介绍 etcd 项目发展的整个历程,从诞生至今 etcd 经历的那些重要的时刻;第二部分,会为大家介绍 etcd 的技术架构以及其内部的实现机制,通过对技术架构和内部机制的学习,帮助我们正确地使用 etcd;第三部分,结合具体的使用场景,为大家介绍在分布式系统中 etcd 所扮演的角色。etcd 项目的发展历程etcd 诞生于 Cor...原创 2020-10-28 16:08:08 · 549 阅读 · 0 评论 -
课时 16 自测题
以下说法错误的是?(单选题)A. etcd 是一个商业软件B. etcd 使用 go 语言编写C. etcd 是一个分布式系统,通常由多个 server 组成一个集群。 关于 etcd 重要时间节点,以下说法错误的是?(单选题)A. etcd 最初由 CoreOS 公司开发,用于解决分布式系统中的并发控制问题B. etcd 在 2013-6 月在 github 中提交了初始代码C...原创 2020-10-28 16:08:08 · 527 阅读 · 0 评论 -
课时 17-深入理解 etcd:etcd 性能优化实践(陈星宇)
本文将主要分享以下五方面的内容:etcd 前节课程回顾复习;理解 etcd 性能;etcd 性能优化 -server 端;etcd 性能优化 -client 端。etcd 前节课程回顾复习etcd 诞生于 CoreOs 公司,使用 Golang 语言开发,是一个分布式 KeyValue 存储引擎。我们可以利用 etcd 来作为分布式系统元数据的存储数据库,存储系统里面重要的元信息。...原创 2020-10-28 16:08:09 · 605 阅读 · 0 评论 -
课时 17 自测题
以下说法错误的是?(单选题)A. etcd 适合存储频繁变化的数据B. etcd 使用 go 语言编写C. etcd 是一个分布式系统,通常由多个 server 组成一个集群 etcd 满足了 CAP 原理中的哪些特性?(单选题)A. CAB. CPC. APD. CAP 一个节点数为 n 的 etcd 集群,它的 quorum 成员的数量是?(单选题)A. n/3B....原创 2020-10-28 16:08:09 · 283 阅读 · 0 评论 -
课时 18-Kubernetes 调度和资源管理(子誉)
这节课主要讲三部分的内容:Kubernetes 的调度过程;Kubernetes 的基础调度能力(资源调度、关系调度);Kubernetes 高级调度能力(优先级、抢占)。另外,关于调度器架构和具体算法部分,会由我的同事在下一节课为大家介绍。Kubernetes 调度过程首先来看第一部分 - Kubernetes 的调度过程。如下图所示,画了一个很简单的 Kubernetes 集群...原创 2020-10-28 16:08:10 · 359 阅读 · 0 评论 -
课时 18 自测题
在调度完成后 Pod Phase 会变成什么?(单选题)A. PendingB. RunningC. ScheduledD. Ready 在资源列表中 1.5Gi 内存也可以用以下哪个方式表达?(单选题)A. 1500mB. 1500MiC. 1536mD. 1536Mi 申请半张 GPU 可以用 nvidia.com/gpu=0.5 来表示吗?(单选题)A. TRUE...原创 2020-10-28 16:08:11 · 264 阅读 · 0 评论 -
第 19 课时:调度器的调度流程和算法介绍(木苏)
本文将主要分享以下四个部分的内容:调度流程调度算法如何配置调度器如何扩展调度器调度流程调度流程概览首先来看一下调度器流程概览图:调度器启动时会通过配置文件 File,或者是命令行参数,或者是配置好的 ConfigMap,来指定调度策略。指定要用哪些过滤器 (Predicates)、打分器 (Priorities) 以及要外挂哪些外部扩展的调度器 (Extenders),和要使...原创 2020-10-28 16:08:11 · 1088 阅读 · 0 评论 -
课时 19 自测题
以下扩展点哪个是 scheduler extender 不支持的?(单选题)A. filterB. prioritizeC. bindD. prebind SchedulerFramework 支持对 Scheduler Queue 做自定义排序。(单选题)A. TRUEB. FALSE 关于资源水位的打分算法,目前支持哪几种?(多选题)A. 优先堆叠B. 优先打散C....原创 2020-10-28 16:08:12 · 226 阅读 · 0 评论 -
第 20 课时:GPU 管理和 Device Plugin 工作机制(车漾)
本文将主要分享以下几个方面的内容: 需求来源GPU 的容器化Kubernetes 的 GPU 管理工作原理课后思考与实践需求来源2016 年,随着 AlphaGo 的走红和 TensorFlow 项目的异军突起,一场名为 AI 的技术革命迅速从学术圈蔓延到了工业界,所谓 AI 革命从此拉开了帷幕。经过三年的发展,AI 有了许许多多的落地场景,包括智能客服、人脸识别、机器翻译、以...原创 2020-10-28 16:08:12 · 673 阅读 · 0 评论