【.com快译】本文介绍了九个值得关注的CNCF毕业孵化开源项目。毕业项目毕业项目被认为是成熟的——并被许多组织采用——受CNCF指南的约束。以下是三个流行的开源CNCF研究生项目。Kubernetes说起云原生应用,就不得不提到Kubernetes。由Google发明的Kubernetes无疑是著名的容器化应用容器编排平台,同时也是一个开源工具。什么是容器编排平台?基本上,容器引擎本身可以用来管理多个容器。然而,当面对数千个容器和数百个服务时,管理这些容器变得复杂。这就是容器引擎派上用场的地方。容器编排引擎通过自动化部署、管理、网络和可用性来帮助扩展容器。DockerSwarm和MesosphereMarathon是其他容器编排引擎,但可以肯定地说Kubernetes成为赢家(至少目前如此)。Kubernetes还催生了容器即服务(CaaS)平台,例如OKD,这是为RedHatOpenShift提供支持的Kubernetes的Origin社区发行版。要开始使用,请访问KubernetesGitHub存储库并从Kubernetes文档页面访问其文档和学习资源。PrometheusPrometheus是SoundCloud于2012年构建的开源系统监控和警报工具包。从那时起,许多公司和组织都采用了Prometheus,该项目拥有活跃的开发者和用户社区。它现在是一个独立的开源项目,独立于公司维护。Prometheus的架构如果你想了解Prometheus,想象一个生产系统需要一天24小时,一年365天正常运行。没有系统是完美的,并且有减少故障的技术(称为容错系统)。但是,如果出现问题,最重要的是尽快找到问题所在。这就是Prometheus等监控工具派上用场的地方。Prometheus不仅仅是一个容器监控工具,它在云原生应用公司中也极受欢迎。此外,包括Grafana在内的其他开源监控工具也使用Prometheus。开始使用Prometheus的推荐方法是查看其GitHub存储库。在本地运行Prometheus很容易,但您需要安装容器引擎。您可以在Prometheus网站上查看详细文档。EnvoyEnvoy(或EnvoyProxy)是专为云原生应用程序设计的开源边缘和服务代理。Envoy创建于Lyft,是为单一服务和应用程序设计的高性能C++分布式代理,以及为大规模微服务服务网格架构设计的通信总线和通用数据平面。Envoy在借鉴Nginx、HAProxy、硬件负载均衡系统、云负载均衡系统等解决方案的基础上,与各个应用程序并行运行,通过以平台无关的方式提供通用功能来抽象网络。由于基础设施中的所有服务流量都流经Envoy网格,因此可以轻松地可视化问题区域、调整整体性能并通过在一个地方的一致可观察性添加底层功能。EnvoyProxy基本上是一种服务网格工具,可帮助组织为生产环境构建容错系统。服务网格应用程序有很多替代方案,例如Uber的Linkerd(下面讨论)和Istio。Istio通过部署为Sidecar并利用Mixer配置模型来扩展EnvoyProxy。Envoy的显着特性如下:包括所有“基本”功能(当与Istio等控制平面结合使用时)核心层充当L3/L4过滤器,默认情况下有许多L7过滤器可用,支持gRPC和HTTP/2(上游/下游)API驱动,支持动态配置和热重载专注于指标收集、跟踪和整体可观察性要了解Envoy、验证其功能并获得全部收益,需要在运行生产级环境方面拥有丰富的经验。您可以访问GitHub代码库,从详细的文档中了解更多信息。孵化项目下面是六个流行的开源CNCF孵化项目。rktrkt是一个pod-native容器引擎。它具有用于在Linux上运行容器的命令行界面(CLI)。从某种意义上说,它类似于Podman、Docker和CRI-O等其他容器。rkt最初由CoreOS(后来被RedHat收购)开发。您可以在官方网站上找到详细的文档,并在GitHub上访问源代码。JaegerJaeger是一个用于云原生应用程序的开源端到端分布式跟踪系统。一方面,它与Prometheus一样是一种监控解决方案。但又有所不同,因为它的使用场景可以扩展到:分布式事务监控性能和延迟优化根本原因分析服务依赖分析分布式上下文传播Jaeger是Uber开发的开源技术。您可以在官方网站上找到详细的文档并在GitHub上访问源代码(。Linkerd就像Lyft开发EnvoyProxy一样,Uber开发了Linkerd作为开源解决方案来维护其生产级服务。在某些方面,Linkerd就像Envoy,因为两者都是服务网格工具,旨在提供整个平台的可观察性、可靠性和安全性,而无需配置或更改代码。但是,两者之间存在一些细微的差异。虽然Envoy和Linkerd作为代理,可以报告连接的服务,但是Envoy不像Linkerd那样设计成KubernetesIngress控制器。Linkerd的显着特性包括:支持多个平台(Docker、Kubernetes、DC/OS、AmazonECS或任何独立机器)??内置服务发现抽象以统一多个系统支持gRPC、HTTP/2和HTTP/1.x请求以及所有TCP流量您可以在Linkerd的网站上阅读更多相关信息并访问GitHub上的源代码。HelmHelm是基本上是Kubernetes的包管理器。如果您使用过ApacheMaven、MavenNexus或类似服务,您就会知道Helm的用途。Helm可帮助您管理Kubernetes应用程序。它使用“HelmCharts”来定义、安装和升级复杂的Kubernetes应用程序。Helm不是完成此任务的唯一方法,另一个流行的概念是KubernetesOperators,它被RedHatOpenShift4使用。您可以按照其文档中的快速入门指南或GitHub指南试用Helm。EtcdEtcd是一个可靠的分布式键值存储项目,可用于在分布式系统中存储关键数据。其主要特点如下:定义明确,面向用户的API(gRPC)自动TLS,可选客户端证书验证速度(每秒10,000次写入)可靠性(使用Raft分布式)Etcd用作Kubernetes的内置默认数据存储和许多其他技术。话虽如此,它很少独立运行或作为单独的服务运行;相反,它使用集成到Kubernetes和OKD/OpenShift或其他服务中的服务。还有etcdOperators来管理生命周期并利用其API管理功能。您可以在etcd的文档中了解更多信息并访问GitHub上的源代码。CRI-OCRI-O根据开放容器倡议(OCI)实施Kubernetes运行时接口。CRI-O用于多种功能,包括:使用runc(或任何OCI运行时规范实现)和OCI运行时工具的运行时环境使用容器/图像的图像管理使用容器/存储来存储和管理图像层容器的联网接口(CNI)提供网络支持。CRI-O提供了广泛的文档,包括指南、教程、文章甚至播客,您还可以访问其GitHub页面。原标题:9个值得考虑的开源云原生项目,作者:BryantSon
