互联网技术 / 互联网资讯 · 2023年11月17日 0

2021年关注的5个开源Kubernetes项目

开源项目的引入使Kubernetes变得更加高效。了解这些有潜力的开源项目至关重要,它们能够解决与Java、可观测性以及持续集成(CI)/持续交付(CD)管道等相关的问题。

Kubernetes本身为IT组织提供了显著的价值,从开发者的兴趣到可在生产环境中进行大规模部署的内容。根据云原生计算基金会(CNCF)在2019年的调查,Kubernetes在云计算社区中的使用率从2018年的58%增长到2019年的78%。这种价值的提升在很大程度上得益于Kubernetes社区中个人和组织的共同努力。

与此同时,这也反映出个人和组织在创建与Kubernetes兼容的开源工具方面所做的工作,这些工具进一步增强了Kubernetes的能力。接下来,我们将重点介绍一些开发者和运维人员更为关注的项目。

1. QuaRkUS

Java是最受欢迎的编程语言之一,自上世纪90年代中期问世以来,主要优化了动态应用程序的运行,这些应用程序假设主机的CPU和内存是唯一的所有权。企业应用程序大多是以这种方式构建的。

尽管大型应用程序仍然存在,但出于生产力、灵活性和效率的考虑,组织正朝着支持微服务、反应式编程、功能即服务(FAaS)以及12要素原则的方向发展,逐步迈向云原生应用的领域。因此,需要重新思考如何在这一环境中更有效地使用Java。

2. OpenTelemetry

根据EMA公司的分析师Torsten Volk的说法,最近的KubeCon大会上,可观测性成为热门话题。可观测性这个概念涵盖了许多方面,通常包括指标、追踪和日志记录。该领域中两个主要项目是ProMetheus和Jaeger,前者是基于时间序列数据模型的系统监控和警报工具,而后者是分布式追踪工具。虽然监控很重要,但通常被视为与可观测性不同。

OpenTelemetry是这一领域的最新成果,源于谷歌的OpenCensus与Lightstep的OpenTracing在2019年的合并。

除了项目本身,OpenTelemetry在分布式系统可观测性方面展现出一定的统一性。在广泛的CNCF生态系统中,许多开源项目在某种程度上彼此重叠,可以互补甚至集成,可能会形成更广泛的相关项目组合。

3. Argo CD与Keptn

在持续集成(CI)/持续交付(CD)领域,项目开始采用Kubernetes原生开发模式和流程来构建和部署管道。例如,Tekton Pipelines在Kubernetes上运行,使Kubernetes集群成为第一类,并利用容器作为构建单元。流行的Jenkins构建工具的分支Jenkins X同样针对云原生开发环境。

虽然Tekton能够处理完整的持续集成(CI)/持续交付(CD)管道,但一些新兴项目则旨在增强部署管道的灵活性和能力。

Tekton有效地将部署推送到一个或多个Kubernetes集群。如果发生故障,Tekton需要在任何地方重新推送部署,或者操作人员需要手动处理任何失败的部署。相比之下,Argo CD作为一个声明性GitOps工具,确保活动集群中的部署状态始终反映所需状态,并持续监控以保持两者的一致性。

Keptn是另一个项目,可以独立使用Argo CD的部署功能,主要关注对生产代码的额外测试、评估和升级。

4. Envoy与Contour

以上讨论了与基于微服务的分布式应用程序相关的可观测性挑战,此外,还需要管理集群内部及集群与外界之间的微服务流量。

Kubernetes中的数据平台已经围绕Envoy建立了标准化。Envoy与每个应用程序同时运行,并以平台无关的方式提供通用功能,抽象化网络。

像Istio这样的服务网格可以建立在Envoy之上,提供安全性、流量管理以及集群内部和外部流量的洞察。服务网格是操作大型基于微服务的应用程序的宝贵工具,但也可能复杂且规模庞大。相对而言,Contour专注于南北向流量,提供Envoy作为简单可靠的负载均衡解决方案,供Kubernetes用户使用。

5. OKD 4、Fedora CoreOS与CodeReady容器

对于寻求Kubernetes社区发行版的开发人员和运维工具的组织,OKD是一个不错的选择。可以将其视为Red Hat OpenShift产品的“上游”项目。引入Universal Base Image实际上使其形成了更为平等的关系,允许更新的代码同时流入项目和产品之中。

OKD 4以Fedora CoreOS作为节点的基本操作系统,Fedora CoreOS是一个自动更新的小型操作系统,旨在安全地运行容器化工作负载。OKD 4提供了一个Kubernetes集群,具备最新的安全修复和功能,例如对cgroups v2的支持,同时支持Kubernetes运营商。

OKD还支持安装程序提供的基础设施。在许多平台上,安装程序控制着安装过程的所有方面。虽然其灵活性不如用户提供的基础设施,但使用起来更为简单,通常应被视为大多数用户的默认选项。

最后,为了帮助开发人员在将代码推送到持续集成(CI)/持续交付(CD)管道之前做好准备,OKD 4允许组织在笔记本电脑或台式电脑上使用CodeReady容器快速设置预配置的本地Kubernetes集群,以便进行开发和测试。这是快速构建OKD(或OpenShift)集群的最佳方法。

通过了解CNCF的生态系统,我们可以发现几乎没有涉及Kubernetes的社区创新。但这些项目和领域应当引起人们在新的一年中的关注。