
云原生
文章平均质量分 92
云原生
最爱喝酸奶
一直要努力!
展开
-
24. RuntimeClass与多容器运行时
本文由 CNCF + Alibaba 云原生技术公开课 整理而来RuntimeClass 需求容器运行时的演进过程:与此同时,越来越多的容器运行时也想接入到 Kubernetes 中。如果还是按 rkt 和 Docker 一样内置支持的话,会给 Kubernetes 的代码维护和质量保障带来严重挑战。社区也意识到了这一点,所以在 1.5 版本时推出了 CRI,它的全称是 Container Runtime Interface。这样做的好处是:实现了运行时和 Kubernetes 的解耦,社.转载 2021-01-28 19:03:55 · 352 阅读 · 0 评论 -
23. 理解容器运行时接口CRI
本文由 CNCF + Alibaba 云原生技术公开课 整理而来CRI 介绍在 CRI 出现之前(Kubernetes v1.5 之前),Docker 作为第一个容器运行时,Kubelet 通过内嵌的 dockershim 操作 Docker API 来操作容器,进而达到一个面向终态的效果。在这之后,又出现了一种新的容器运行时 rkt,它也想要成为 Kubernetes 支持的一个容器运行时,当时它也合到了 Kubelet 的代码之中。这两个容器运行时的加入使得 Kubernetes 的代码越来越复.转载 2021-01-27 19:10:30 · 395 阅读 · 0 评论 -
22. Kubernetes安全之访问控制
本文由 CNCF + Alibaba 云原生技术公开课 整理而来Kubernetes API 请求访问控制访问控制:访问控制是云原生中的一个重要组成部分,也是一个 Kubernetes 集群在多租户环境下必须要采取的一个基础的安全架构手段。访问控制,在概念上可以抽象的定义为谁在何种条件下可以对什么资源做什么操作。这里的资源就是在 Kubernetes 中熟知的:Pod、ConfigMap、Deployment、Secret 等等这样的资源对象。Kubernetes API 请求:.转载 2021-01-26 19:11:46 · 273 阅读 · 0 评论 -
21. 理解CNI和CNI插件
本文由 CNCF + Alibaba 云原生技术公开课 整理而来CNICNI 的全称是 Container Network Interface,即容器网络的 API 接口。CNI 是 Kubernetes 中标准的一个调用网络实现的接口。Kubelet 通过这个标准的 API 来调用不同的网络插件以实现不同的网络配置方式。实现了这个接口的就是 CNI 插件,它实现了一系列的 CNI API 接口。常见的 CNI 插件包括 Calico、Flannel、Terway、Weave Net 以及 Con.转载 2021-01-25 18:50:54 · 1416 阅读 · 0 评论 -
20. Kubernetes网络模型
本文由 CNCF + Alibaba 云原生技术公开课 整理而来Kubernetes 网络模型演化Docker 网络:容器网络发端于 Docker 的网络。Docker 使用了一个比较简单的网络模型,即内部的网桥加内部的保留 IP。这样设计的好处在于容器的网络和外部世界是解耦的,无需占用宿主机的 IP 或者宿主机的资源,完全是虚拟的。它的设计初衷是:当需要访问外部世界时,会采用 SNAT 这种方法来借用 Node 的 IP 去访问外面的服务。比如容器需要对外提供服务的时候,所用的是 DNA.转载 2021-01-24 19:39:16 · 200 阅读 · 0 评论 -
19. Kubernetes API编程范式
本文由 CNCF + Alibaba 云原生技术公开课 整理而来需求来源在 Kubernetes 里面, API 编程范式也就是 Custom Resources Definition(CRD)。CRD,其实指的就是用户自定义资源。为什么会有用户自定义资源问题呢?随着 Kubernetes 使用的越来越多,用户自定义资源的需求也会越来越多。而 Kubernetes 提供的聚合各个子资源的功能,已经不能满足日益增长的广泛需求了。用户希望提供一种用户自定义的资源,把各个子资源全部聚合起来。但 Kub.转载 2021-01-22 19:03:43 · 235 阅读 · 0 评论 -
18. 有状态应用编排:StatefulSet
本文由 CNCF + Alibaba 云原生技术公开课 整理而来“有状态”需求Deployment 介绍:Deployment 作为 Pod 管理部署发布的控制器,每个 Deployment 其实是管理的一组相同的应用 Pod。Deployment 可以具体完成这些事情:1. Deployment定义了 Pod 期望数量,Controller 始终会持续维持 Pod 数量为期望的数量。当 Pod 出现问题时,Controller也能够恢复2. 配置 Pod 发布方式,Controller.转载 2021-01-21 19:03:57 · 497 阅读 · 0 评论 -
17. Kubernetes存储架构及插件使用
本文由 CNCF + Alibaba 云原生技术公开课 整理而来Kubernetes 存储架构在 Kubernetes 中挂载一个 Volume:apiVersion: v1kind: PersistentVolumeClaimmetadata: name: pvc-diskspec: storageClassName: alicloud-disk-ssd accessModes: - ReadWriteOnce resources: requests: .转载 2021-01-19 18:44:05 · 413 阅读 · 0 评论 -
16. GPU管理和Device Plugin工作机制
本文由 CNCF + Alibaba 云原生技术公开课 整理而来需求来源2016 年,随着 AlphaGo 的走红和 TensorFlow 项目的异军突起,一场名为 AI 的技术革命迅速从学术圈蔓延到了工业界,所谓 AI 革命从此拉开了帷幕。经过三年的发展,AI 有了许许多多的落地场景,包括智能客服、人脸识别、机器翻译、以图搜图等功能。其实机器学习或者人工智能,并不是什么新鲜的概念,而这次热潮的背后,云计算的普及以及算力的巨大提升,才是真正将人工智能从象牙塔带到工业界的一个重要推手。与之相对应的.转载 2021-01-18 19:00:07 · 733 阅读 · 0 评论 -
15. Kubernetes调度和资源管理
本文由 CNCF + Alibaba 云原生技术公开课 整理而来Kubernetes 调度过程现在假设有一个 Kubernetes 集群,如果要向这个 Kubernetes 集群提交一个 Pod,那它的调度过程是什么样的一个流程?首先需要写一个 yaml 文件,然后往 ApiServer 里面提交这个 yaml 文件。此时,ApiServer 会先把这个待创建的请求路由给 Kube-Controller 进行校验。在通过校验之后,ApiServer 会在集群里面生成一个 Pod,但此时生成的 P.转载 2021-01-14 19:21:38 · 321 阅读 · 0 评论 -
14. 深入剖析Linux容器
本文由 CNCF + Alibaba 云原生技术公开课 整理而来容器容器是一种轻量级的虚拟化技术,因为它跟虚拟机比起来,它少了一层 hypervisor 层。上面简单描述了一个容器的启动过程。下面是磁盘,容器的镜像存储在磁盘上面;上层是一个容器引擎,容器引擎可以是 docker,也可以是其它的容器引擎。容器引擎向下发出一个请求,如创建容器,然后它就把磁盘上面的容器镜像,运行成在宿主机上的一个进程。对于容器来说,最重要的是怎么保证这个进程所用到的资源是被隔离和被限制住的,在 Linux 内核上面.转载 2021-01-09 18:44:01 · 451 阅读 · 0 评论 -
13. Kubernetes Services
本文由 CNCF + Alibaba 云原生技术公开课 整理而来Service:服务发现与负载均衡为什么需要服务发现?在 Kubernetes 集群里面会通过 Pod 去部署应用,与传统的应用部署不同,传统应用部署在给定的机器上面去部署,去调用别的机器的 IP 地址非常简单。在 Kubernetes 集群里面应用是通过 Pod 去部署的, 而 Pod 的生命周期是短暂的。在 Pod 的生命周期过程中,比如它创建或销毁,它的 IP 地址都会发生变化,这样就不能使用传统的部署方式,不能指定 Po.转载 2021-01-03 18:19:11 · 267 阅读 · 0 评论 -
12. Kubernetes网络概念和策略控制
本文由 CNCF + Alibaba 云原生技术公开课 整理而来Kubernetes 基本网络模型Kubernetes 的容器网络模型,就是Kubernetes 对一个容器网络是否合格做出了限制。可以把它归结为约法三章和四大目标:约法三章:在评价容器网络或者设计容器网络时,它的准入条件。它需要满足哪三个条件才能认为它是一个合格的网络方案四大目标:在设计网络拓扑、设计网络的具体功能实现的时候,要去想清楚,能不能达成连通性等这几大指标约法三章:第一条:任意两个 Pod 之间其实是可以直接.转载 2020-12-31 18:39:56 · 197 阅读 · 0 评论 -
11. 可观测性:监控与日志
本文由 CNCF + Alibaba 云原生技术公开课 整理而来背景监控和日志是大型分布式系统的重要基础设施,监控可以帮助开发者查看系统的运行状态,而日志可以协助问题的排查和诊断。在 Kubernetes 中,监控和日志属于生态的一部分,它并不是核心组件,因此大部分的能力依赖上层的云厂商的适配。Kubernetes 定义了介入的接口标准和规范,任何符合接口标准的组件都可以快速集成。监控监控类型:从监控类型上划分,在 Kubernetes 中 可以分成 4 个不同的类型:1. 资源类型:.转载 2020-12-28 18:59:53 · 584 阅读 · 0 评论 -
10. 可观测性:应用健康
本文由 CNCF + Alibaba 云原生技术公开课 整理而来需求来源当把应用迁移到 Kubernetes 之后,要如何去保障应用的健康与稳定呢?其实很简单,可以从两个方面来进行增强:1. 首先是提高应用的可观测性2. 其次是提高应用的可恢复能力从可观测性方面看,可以在三个角度进行增强:1. 首先是应用的健康状态,可以实时地进行观测2. 其次是可以获取应用的资源使用情况3. 最后是可以拿到应用的实时日志,进行问题的诊断与分析当出现问题之后,首先要做的事情是降低影响的范围,进.转载 2020-12-23 19:02:53 · 502 阅读 · 0 评论 -
9. 应用存储和持久化数据卷:存储快照和拓扑调度
本文由 CNCF + Alibaba 云原生技术公开课 整理而来基本知识存储快照产生背景:在使用存储时,为了提高数据操作的容错性,我们通常有需要对线上数据进行 Snapshot,以及能快速 Restore 的能力。另外,当需要对线上数据进行快速的复制以及迁移等动作,如进行环境的复制、数据开发等功能时,都可以通过存储快照来满足需求,而 Kubernetes 中通过 CSI Snapshotter Controller 来实现存储快照的功能。Kubernetes 支持三种类型的卷插件:in-tr.转载 2020-12-18 18:58:00 · 562 阅读 · 0 评论 -
8. 应用存储和持久化数据卷:核心知识
本文由 CNCF + Alibaba 云原生技术公开课 整理而来Volumes 介绍Pod 存在的问题:Kubernetes 集群通过 Deployment 解决了 Pod 的更新、回滚及期望数量维持等问题。但 Pod 是一个逻辑概念,它对应的真正运行的还是容器,容器运行就会存在数据持久化的问题,而 Pod 在 Kubernetes 集群中是允许在各个 Node 之间漂移的,如何解决 Pod 的这两个问题:1. Pod 中的某一个容器在运行时异常退出,被 Kubelet 重新拉起之后,如何保.转载 2020-12-13 19:38:16 · 364 阅读 · 3 评论 -
7. 应用配置管理
本文由 CNCF + Alibaba 云原生技术公开课 整理而来背景背景问题:如果想通过一个镜像来启动容器,有时不仅仅只需要一个镜像,其实还有些问题需要解决:1. 应用的可变配置写到镜像里面是无法接受的,如何加载可变配置?2. 应用的敏感信息如何存储和使用?3. 容器如何通过身份认证来访问集群自身,如访问 API Server ?4. 容器在节点上运行之后,如何配置资源需求?5. 节点上的容器由于共享内核,如何对它们进行安全管控?6. 如何在容器启动之前进行前置条件校验?.转载 2020-12-07 19:06:56 · 345 阅读 · 0 评论 -
6. 应用编排和管理:Job和DaemonSet
本文由 CNCF + Alibaba 云原生技术公开课 整理而来Job为什么需要 Job?Kubernetes 中最小的调度单元是 Pod。可以直接通过 Pod 来运行任务进程,但这样做会产生以下问题:1. 如何保证 Pod 内进程正确的结束?2. 如何保证进程运行失败后重试?3. 如何管理多个任务,且任务之间有依赖关系?4. 如何并行运行任务,并管理任务的队列大小?Kubernetes 的 Job 就是为解决以上问题而产生的,它提供以下功能:1. Job 是管理任务的控制.转载 2020-12-01 19:11:36 · 316 阅读 · 0 评论 -
5. 应用编排和管理:Deployment
本文由 CNCF + Alibaba 云原生技术公开课 整理而来Deployment:管理部署发布Pod 存在的问题:Kubernetes 集群可以直接管理所有的 Pod 吗?如果这样做,会带来什么样的问题呢?首先 Kubernetes 集群不可以直接管理所有的 Pod,也强烈不建议这么做,因为这么做会带来这些问题:1. 如何保证集群内可用 Pod 的数量?2. 如何为所有 Pod 更新镜像的版本?3. 如何在更新过程中保证服务的可用性?4. 如何在更新过程中发现问题并快速回滚.转载 2020-11-27 19:05:27 · 457 阅读 · 0 评论 -
4. 应用编排和管理:核心原理
本文由 CNCF + Alibaba 云原生技术公开课 整理而来资源元信息Kubernetes 资源对象:Kubernetes 的资源对象组成:主要包括了 Spec 和 Status 两部分。其中 Spec 部分用来描述期望的状态,Status 部分用来描述观测到的状态。Labels:最重要的一个元数据:资源标签 Labels,Labels是一种具有标识型的 key: value 元数据。示例:environment: productionrelease: stableap.转载 2020-11-19 18:40:12 · 416 阅读 · 0 评论 -
3. 理解Pod和容器设计模式
本文由 CNCF + Alibaba 云原生技术公开课 整理而来理解Pod容器基本概念:容器的本质实际上是一个进程,是一个视图隔离、资源受限的进程。容器里面 PID=1 的进程就是应用本身,这意味着管理虚拟机等于管理基础设施,管理容器等于管理应用本身,这就是不可变基础设施的一个最佳体现。在这个前提下,Kubernetes 可以称作云时代的操作系统,以此类推,容器镜像就是这个操作系统的软件安装包。真实操作系统:在真实的操作系统中,一个程序实际上是由一组进程组成的,这里的进程实际上等同.转载 2020-11-16 17:35:25 · 490 阅读 · 0 评论 -
2. Kubernetes基础
本文由 CNCF + Alibaba 云原生技术公开课 整理而来Kubernetes 是一个开源系统、一个自动化的容器编排平台,它负责容器化应用的部署、弹性伸缩和管理。Kubernetes 将构成应用的容器按逻辑单位进行分组以便于管理和发现。Kubernetes 基于Google公司在运行生产负载上的15年经验打造,并融合了来自社区的最佳建议与实践。Kubernetes核心功能核心功能:服务的发现与负载的均衡 容器的自动调度容器的自动恢复应用的自动发布与回滚,以及与应用相关的.转载 2020-11-13 18:19:49 · 337 阅读 · 0 评论 -
1. 云原生与容器基础
本文由 CNCF + Alibaba 云原生技术公开课 整理而来云原生云原生的定义:实际上,云原生是一条最佳路径或者最佳实践。云原生为用户指定了一条低心智负担的、敏捷高效的、能够以可扩展、可复制的方式最大化地利用云的能力、发挥云的价值的最佳路径。因此,云原生其实是一套指导进行软件架构设计的思想。按照这样的思想设计出来的软件:云原生的愿景:云原生的最大价值和愿景,就是认为未来的软件,从诞生起就生在云上、长在云上,遵循全新的软件开发、发布和运维模式,从而使得软件能够最大化地发挥云的能力。.转载 2020-11-09 18:33:05 · 1033 阅读 · 0 评论