项目简介
该项目旨在简化 Kubernetes 复杂自定义资源的创建和管理。
Kube Resource Orchestrator ( kro ) 提供了强大的抽象层,允许您将复杂的多资源构造定义为应用程序和系统中的可重用组件。您可以使用 kro 的基本自定义资源ResourceGroup来定义它们。该资源充当创建和管理底层 Kubernetes 资源集合的蓝图。
使用 kro,您可以将自定义资源定义为 Kubernetes 的基本构建块。这些构建块可以包含其他 Kubernetes 资源(本机资源或自定义资源),并且可以指定它们之间的依赖关系。这使您可以定义复杂的自定义资源,并包括其使用的默认配置。kro 控制器将确定资源之间的依赖关系,建立正确的操作顺序来创建和配置它们,然后为您动态创建和管理所有底层资源。
kro is Kubernetes native and integrates seamlessly with existing tools to preserve familiar processes and interfaces.
kro 是 Kubernetes 原生的,可与现有工具无缝集成,以保留熟悉的流程和界面。
FAQ
-
什么是kro?
Kube Resource Orchestrator ( kro ) 是 Kubernetes 的新操作器,可简化复杂 Kubernetes 资源配置的创建。kro 允许您通过将 Kubernetes 资源的自定义组定义为ResourceGroup (项目的基本自定义资源)来创建和管理自定义组。ResourceGroup 规范定义了一组资源以及它们在功能上如何相互关联。定义后,资源组可以应用于运行 kro 控制器的 Kubernetes 集群。经过 kro 验证后,您可以创建资源组的实例。kro 将您的 ResourceGroup 实例及其参数转换为特定的 Kubernetes 资源和配置,然后为您进行管理。
-
kro如何运作?
kro 旨在使用核心 Kubernetes 原语来简化资源分组、定制和依赖管理。当ResourceGroup应用于集群时,kro控制器会验证其规范,然后动态创建新的CRD并将其注册到API服务器。然后,kro 部署专用控制器来响应 CRD 上的实例事件。该微控制器负责管理在 ResourceGroup 中为创建的每个实例定义的资源的生命周期。
-
如何使用kro?
首先,通过创建ResourceGroup规范来定义自定义资源组。它们指定一个或多个 Kubernetes 资源,并且可以包含每个资源的特定配置。
例如,您可以定义一个WebApp资源组,该资源组由预先配置为部署 Web 服务器后端的Deployment和配置为在特定端口上运行的Service组成。您可以通过将现有WebApp资源组与表自定义资源组合来轻松创建更复杂的WebAppWithDB资源组,以配置云托管数据库实例供您的 Web 应用程序使用。
定义 ResourceGroup 后,您可以将其应用到运行 kro 控制器的 Kubernetes 集群。kro 将负责创建 CRD 和部署专用控制器的繁重工作,以便管理新的自定义资源组的实例。
您现在已准备好创建新的自定义资源组的实例,kro 将通过动态创建、配置和管理底层 Kubernetes 资源来为您做出响应。 -
你为什么建立这个项目?
我们希望帮助简化和简化 Kubernetes 的构建。使用 Kubernetes 进行构建意味着要处理需要一起操作和协作的资源,而规模化时的编排可能会变得复杂且困难。通过这个项目,我们在降低资源依赖管理和定制的复杂性方面迈出了第一步,为以简单且可扩展的方式为 Kubernetes 创建复杂的定制资源铺平了道路。
-
我需要有 AWS 账户才能使用它吗?
不,您可以将 kro 与任何 Kubernetes 集群一起使用。
-
我可以在生产中使用它吗?
该项目正在积极开发中,尚未用于生产用途。该项目中使用的ResourceGroup CRD 和其他 API 尚未固化,并且很容易发生变化。
-
这会内置到 Amazon Elastic Kubernetes Service (EKS) 中吗?
该项目是一个公共实验,目前尚未集成到 Amazon EKS 中。我们欢迎您提供反馈,并希望了解哪些内容适用于您的用例,哪些内容不适合您的用例,请告诉我们您的想法。
项目链接
https://github.com/awslabs/kro
扫码加入技术交流群,备注「开发语言-城市-昵称」
(文:GitHubStore)