CNCF - 云原生计算基金会简介

CNCF项目简介

CNCF,全称Cloud Native Computing Foundation(云原生计算基金会),口号是 坚持和整合开源技术来编排容器做为微服务架构的一部分 ,其做为致力于云原生应用推广和普及的一支重要力量,不论您是云原生应用的开发者、管理者仍是研究人员都有必要了解。数据库

CNCF做为一个厂商中立的基金会,致力于Github上的快速成长的开源技术的推广,如Kubernetes、Prometheus、Envoy等,帮助开发人员更快更好的构建出色的产品。安全

下图是CNCF的全景图。服务器

其中包含了CNCF中托管的项目,还有不少是非CNCF项目。架构

关于CNCF的使命与组织方式请参考 CNCF宪章 ,归纳的讲CNCF的使命宝库如下三点:负载均衡

  • 容器化包装。
  • 经过中心编排系统的动态资源管理。
  • 面向微服务。

CNCF这个角色的做用是推广技术,造成社区,开源项目管理与推动生态系统健康发展。框架

另外CNCF组织由如下部分组成:分布式

  • 会员 :白金、金牌、银牌、最终用户、学术和非赢利成员,不一样级别的会员在治理委员会中的投票权不一样。
  • 理事会 :负责事务管理
  • TOC(技术监督委员会) :技术管理
  • 最终用户社区 :推进CNCF技术的采纳并选举最终用户技术咨询委员会
  • 最终用户技术咨询委员会 :为最终用户会议或向理事会提供咨询
  • 营销委员会 :市场推广

CNCF项目成熟度分级与毕业条件

每一个CNCF项目都须要有个成熟度等级,申请成为CNCF项目的时候须要肯定项目的成熟度级别。微服务

成熟度级别(Maturity Level)包括如下三种:工具

  • inception(初级)
  • incubating(孵化中)
  • graduated(毕业)

是否能够成为CNCF项目须要经过Technical Oversight Committee (技术监督委员会)简称 TOC ,投票采起fallback策略,即 回退策略 ,先从最高级别(graduated)开始,若是2/3多数投票经过的话则确认为该级别,若是没经过的话,则进行下一低级别的投票,若是一直到inception级别都没获得2/3多数投票经过的话,则拒绝其进入CNCF项目。性能

当前全部的CNCF项目能够访问 https://www.cncf.io/projects/。

项目所达到相应成熟度须要知足的条件和投票机制见下图:

 

CNCF 有哪些具体的项目内容?

CNCF 包含的明星项目有 Kubernetes、Prometheus 和目前煊赫一时的 gRPC

CNCF 计划为支持分布式、可扩展的应用须要的组件和组装方式提出一种规范,指望定义可以支持云原生应用和容器的整个基础设施堆栈。为了真正理解 CNCF 的既定目标,咱们还须要了解它旗下的项目内容。

正如基金会目标中所描述的任务、角色以及价值观,基金会自创立以来名下已经管理了多个云端原生技术项目,包括:

– Kubernetes :集群中管理跨多台主机容器化应用的开源系统;

– Prometheus :专一于时间序列数据,为客户端依赖及第三方数据消费提供普遍集成支持的开源监控解决方案;

– OpenTracing:与厂商无关的分布式追踪开源标准;

– Fluentd:建立统一日志层的开源数据收集器。

另外,2017 开年以来基金会新接纳了五个项目:

– Linkerd:为微服务提供可靠性支持、自动化负载均衡、服务发现和运行时可恢复性的开源“服务网格”项目;

– gRPC:现代化高性能开源远程调用框架;

– CoreDNS:快速灵活的构建 DNS 服务器的方案;

– containerd:将容器运行时及其管理功能从 Docker Daemon 剥离的镜像管理和容器执行技术;

– rkt:帮助开发者打包应用和依赖包,简化搭环境等部署工做,提升容器安全性和易用性的容器引擎。

CNCF 包含的明星项目如此之多,其中广为人知的有 Kubernetes、Prometheus 和目前煊赫一时的 gRPC。

1)Kubernetes

Kubernetes(常常被缩写成 k8s)前身是 Borg,是 Google 发起并维护的基于 Docker 的开源容器集群管理系统。它构建在 Docker 技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等整一套功能,但它并不是一个传统的 Paas,不限制应用运行环境,不区分应用和服务这两个概念,本质上可看做是基于容器技术的 mini-PaaS 平台,由于容器自己就是可移植的,因此 Kubernetes 容器集群也能跑在私有云、公有云或者混合云上面。Kubernetes 属于主从的分布式集群架构,包含 Master 和 Node:Master 做为控制节点,调度管理整个系统;Node 是运行节点,运行业务容器。

cncf-3

2)Prometheus

Prometheus 是一套开源的监控、报警和时间序列数据库的组合,成立于 2012 年,由 SoundCloud 公司开发,此后许多组织接受和采用了 Prometheus,遂将其独立为开源项目。该项目使用 Go 语言开发,社区氛围很是活跃。

cncf-4

截止今年 1 月,该项目已经拥有超过 200 个贡献者。做为一个可供现代平台选择的新兴监控工具,Prometheus 可以监控 Mesos、Docker、OpenStack 等等平台的应用程序。2016 年,Prometheus 加入了 CNCF 并成为了第二个托管项目,项目的创始人但愿经过 CNCF,进一步推动 Prometheus 的推广和使用,并经过组织活动的方式让社区团结在一块儿。

3)gRPC

gRPC 是一个现代化高性能开源远程过程调用(RPC)框架。CoreOS 的分布式键值存储 etcd 就使用了 gRPC 进行点对点通信,Docker 的便携式容器运行时 containerd 也经过 gRPC 暴露其功能,同时 containerd 自己也被捐献给了 CNCF。在 gRPC 中可使用 Protocol Buffers 来定义服务的接口,Protocol Buffers 是一个强大的二进制序列化工具和语言。gRPC 也和诸多语言进行了集成,并能够自动生成特定语言的客户端和服务端接口。

cncf-5