博主头像
LT技术站

行动起来,活在当下

  • 累计撰写 255 篇文章
  • 累计创建 131 个标签
  • 累计收到 0 条评论

目录

电子硬件基础

云原生计算基金会CNCF

云原生计算基金会 1. CNCF 是什么? CNCF,全称是 Cloud Native Computing Foundation,中文一般翻译为 云原生计算基金会。它隶属于 Linux Foundation,是一个推动云原生技术发展的开源基金会。 简单理解,CNCF 就是云原生领域的“开源项目孵化器

云原生计算基金会

1. CNCF 是什么?

CNCF,全称是 Cloud Native Computing Foundation,中文一般翻译为 云原生计算基金会。它隶属于 Linux Foundation,是一个推动云原生技术发展的开源基金会。

简单理解,CNCF 就是云原生领域的“开源项目孵化器”和“社区组织者”。它并不是某一家云厂商的产品,而是一个中立的开源组织,负责托管、治理和推广很多云原生相关项目。

CNCF 的目标是让云原生技术变得更加普及,让开发者和企业可以更容易地构建、部署和管理现代化应用。

2. 什么是云原生?

理解 CNCF 之前,先要理解“云原生”。

云原生不是简单地“把应用部署到云服务器上”,而是一种更适合云环境的软件架构和交付方式。

云原生应用通常有这些特点:

  1. 使用容器进行打包和运行;

  2. 使用微服务架构拆分系统;

  3. 可以动态调度和自动扩缩容;

  4. 通过声明式配置管理基础设施;

  5. 依赖自动化运维、监控、日志、CI/CD 等体系;

  6. 能够更好地适应分布式环境和弹性资源。

也就是说,云原生关注的不只是“上云”,而是让应用从设计、开发、部署到运维都更加适合云环境。

3. CNCF 的历史背景

CNCF 成立于 2015 年。当时容器技术正在快速发展,Docker 已经让容器变得非常流行,但围绕容器编排、服务发现、网络、存储、监控等方面还没有形成统一的生态。

在这个背景下,Google 将 Kubernetes 贡献出来,并由 Linux Foundation 牵头成立了 CNCF。Kubernetes 也成为 CNCF 最核心、最具代表性的项目之一。

Kubernetes 本身来源于 Google 多年大规模集群管理经验。Google 内部曾经有 Borg、Omega 等系统,用来管理海量服务和容器化工作负载。Kubernetes 可以看作是这些经验在开源领域的一种体现。

CNCF 成立之后,它的目标不是只维护 Kubernetes,而是围绕 Kubernetes 和云原生应用,逐渐建立一个完整的技术生态。

4. CNCF 的发展过程

CNCF 的发展大致可以分为几个阶段。

第一阶段:以 Kubernetes 为核心

CNCF 早期最重要的项目就是 Kubernetes。Kubernetes 解决的是容器编排问题,也就是如何在一组机器上自动部署、管理、扩缩容容器。

在 Kubernetes 出现之前,容器虽然方便,但如果应用规模变大,就会遇到很多问题:

  • 容器应该运行在哪台机器上?

  • 某个容器挂了怎么办?

  • 服务如何发现彼此?

  • 应用如何扩容和缩容?

  • 配置和密钥如何管理?

  • 滚动更新和回滚如何实现?

Kubernetes 对这些问题提供了一套相对标准化的解决方案,因此很快成为云原生生态的核心。

第二阶段:生态逐渐扩大

随着 Kubernetes 被越来越多企业采用,大家发现仅有容器编排还不够。一个完整的云原生平台还需要监控、日志、网络、安全、服务网格、CI/CD、存储、配置管理等能力。

于是 CNCF 开始接纳更多项目,例如:

  • Prometheus:监控和告警系统;

  • Envoy:高性能代理,常用于服务网格;

  • containerd:容器运行时;

  • Helm:Kubernetes 应用包管理工具;

  • CoreDNS:DNS 服务;

  • etcd:分布式键值存储;

  • Argo:GitOps、工作流和持续交付相关工具;

  • OpenTelemetry:可观测性数据采集标准和工具。

这些项目组合在一起,逐渐形成了完整的云原生技术栈。

第三阶段:从技术项目到行业标准

CNCF 后来不只是托管项目,也开始承担行业标准化和社区建设的角色。

它通过项目治理、成熟度评估、技术监督委员会、KubeCon + CloudNativeCon 大会等方式,把企业、开发者、云厂商和开源社区连接起来。

这让 CNCF 不再只是一个“项目仓库”,而更像是云原生领域的生态中心。

5. CNCF 项目的成熟度等级

CNCF 项目通常分为三个主要成熟度等级:

1. Sandbox

Sandbox 表示沙箱项目,也就是比较早期、实验性质较强的项目。

这类项目可能很有创新性,但还不一定成熟,API 和架构也可能经常变化。适合关注新技术趋势,但企业生产环境采用时要谨慎。

2. Incubating

Incubating 表示孵化项目。

进入这个阶段,说明项目已经有一定用户基础、社区活跃度和生产使用案例。它比 Sandbox 更成熟,但还没有达到最高成熟度。

3. Graduated

Graduated 表示毕业项目。

这是 CNCF 项目中的最高成熟等级。毕业项目通常代表项目已经比较稳定,有广泛的生产环境使用,有健康的社区治理,并且具备较强的长期维护能力。

比如 Kubernetes、Prometheus、Envoy、containerd 等都是 CNCF 生态中非常重要的成熟项目。

6. CNCF 和 Kubernetes 的关系

很多人第一次听说 CNCF,往往是因为 Kubernetes。

可以这样理解:

Kubernetes 是 CNCF 最重要的项目之一,但 CNCF 不等于 Kubernetes。

Kubernetes 主要解决容器编排问题,而 CNCF 关注的是整个云原生生态。

如果把 Kubernetes 看作云原生平台的“操作系统内核”,那么 CNCF 生态中的其他项目就像是围绕它构建的各种系统组件:

  • Prometheus 负责监控;

  • Helm 负责应用安装和包管理;

  • Envoy 负责代理和流量治理;

  • Argo CD 负责 GitOps 持续交付;

  • OpenTelemetry 负责可观测性数据采集;

  • containerd 负责容器运行时;

  • CoreDNS 负责服务发现中的 DNS 能力。

所以,学习云原生不能只学 Kubernetes,还需要逐步理解 CNCF 生态中的其他项目。

7. CNCF 的意义

CNCF 的价值主要体现在几个方面。

第一,它提供了一个中立的开源治理平台。云原生技术涉及很多厂商,如果由某一家厂商完全主导,其他公司可能会有顾虑。CNCF 作为基金会,可以降低这种担忧。

第二,它推动了云原生技术标准化。很多企业在建设云原生平台时,可以参考 CNCF 生态中的成熟项目,而不是从零开始造轮子。

第三,它促进了开源社区协作。开发者、企业用户、云厂商都可以参与项目建设,共同推动技术发展。

第四,它降低了企业采用云原生技术的门槛。通过成熟项目、文档、认证、会议和案例,CNCF 帮助企业更系统地理解和落地云原生。

8. 如何理解 CNCF 生态?

CNCF 生态非常庞大,初学者容易被各种项目绕晕。可以按照云原生平台的能力来理解:

  • 容器运行时:containerd、CRI-O;

  • 编排调度:Kubernetes;

  • 网络:Cilium、Flannel;

  • 服务网格:Envoy、Linkerd;

  • 监控告警:Prometheus;

  • 日志和追踪:OpenTelemetry、Jaeger;

  • 存储:Rook、Longhorn;

  • 配置和包管理:Helm、Kustomize;

  • CI/CD 和 GitOps:Argo、Flux;

  • 安全:Falco、OPA、cert-manager。

这样看,CNCF 不是一个单一软件,而是一整套围绕云原生应用生命周期的技术集合。

9. 总结

CNCF 是云原生领域非常重要的开源基金会。它成立于 2015 年,早期以 Kubernetes 为核心,后来逐渐发展成覆盖容器、编排、网络、存储、监控、安全、CI/CD、服务网格等方向的庞大生态。

对于初学者来说,可以先把 CNCF 理解为:

CNCF 是云原生技术的开源生态中心,Kubernetes 是其中最核心的项目之一。

学习 CNCF,不是要一次性学完所有项目,而是先理解云原生的整体思想,再从 Kubernetes 入手,逐步学习监控、网络、服务治理、持续交付和安全等周边能力。

那年今日11 月 15 日

    评论区