Kubernetes编程—— 使用自定义资源 —— 介绍自定义资源(Custom Resource,CR)

发布时间 2023-06-30 14:33:43作者: 左扬

介绍自定义资源(Custom Resource,CR)

自定义资源(Custom Resource,CR),它是整个 Kubernetes 生态系统中最核心的扩展机制。

定义资源可以用作系统内部使用的对象,仅仅对它进行声明式定义,而不关联控制器逻辑,用不保存少量配置信息。但是自定义资源也可以成为很多复杂 Kubernetes 项目的核心,用于提供原生 Kubernetes API 体验。这类服务的例子有 Istio、Linker2.0 和 AWS App Mesh,它们的核心都是自定义资源。

我理解意思是说: 在Kubernetes中,资源是集群内部使用的对象,可以通过定义和声明式配置的方式来描述。Kubernetes提供了许多内置资源,如Pod、Service、Deployment等。这些内置资源由Kubernetes控制器进行管理和控制。

然而,有时内置资源无法满足特定的需求,而在Kubernetes中引入自定义资源(Custom Resource)就显得非常有用。自定义资源允许用户定义和创建自己的资源类型,扩展Kubernetes API以适应特定的应用程序或领域需求。

自定义资源可以由用户创建和定义,但不一定需要关联控制器逻辑。这意味着用户可以使用自定义资源来进行简单的配置声明,而无需开发额外的控制器来处理其逻辑。这对于一些简单应用或快速原型开发来说非常方便,用户只需定义资源类型和其规范,Kubernetes会自动完成对其的创建和生命周期管理。

另一方面,自定义资源也可以成为复杂项目的核心,并用于提供原生Kubernetes API体验。通过定义与内置资源类似的CRD(Custom Resource Definition),用户可以创建自己的资源类型,并为其编写控制器逻辑。这使得用户可以通过Kubernetes API以相同的方式管理自定义资源和内置资源,享受到Kubernetes的扩展性和强大功能。

自定义资源可以为Kubernetes提供更高级别的抽象,使得用户能够用更符合其业务逻辑的方式描述和管理资源。它们为开发人员提供了一种扩展Kubernetes的方法,以适应各种不同的应用程序和场景需求。