Skip to main content
Version: v25.06

自定义资源

特性介绍

自定义资源(Custom Resource Definition,以下简称CRD)是Kubernetes中用户可以自定义的资源类型,它扩展了Kubernetes的能力,使用户可以定义和管理自己的资源。

应用场景

CRD可以用于描述和管理特定领域的资源,例如数据库、消息队列等。用户可以定义自己的自定义资源,并使用Kubernetes的API进行管理。

能力范围

CRD由用户自定义,可以根据需求定义资源的属性、行为和控制逻辑。

亮点特征

CRD可以与Kubernetes的核心资源进行关联和调度,实现与其他资源的协同工作。

实现原理

CRD通过Kubernetes的API服务器进行管理和访问,可以使用自定义控制器进行自定义资源的自动化管理。

与相关特性的关系

CRD是一种扩展机制,允许用户定义自定义资源,并通过Kubernetes API进行管理。用户可以创建CRD的实例,并使用自定义的控制器来对其进行处理。这使得Kubernetes能够更好地适应用户需求和使用场景。

使用自定义资源

在openFuyao平台左侧导航栏“资源管理”中选择“自定义资源”,进入“自定义资源”界面。

创建自定义资源

前提条件

  • 权限要求:用户需要具备“cluster-admin”权限,或具备创建CRD的特定权限。

  • API版本兼容:确保Kubernetes集群的版本支持所需的API版本(如apiextensions,k8s.io/v1),避免版本不兼容导致CRD无法创建。

  • 资源规划:明确需要自定义的资源类型和字段。以确保CRD能够准确描述和管理自定义的工作负载或配置项。

背景信息

CRD是Kubenetes扩展API的一种机制。通过创建CRD,可以在Kubernetes中定义新的资源类型,使集群支持原生资源之外的自定义资源。CRD的应用场景非常广泛,包括配置管理、自定义控制器以及复杂应用的管理等。创建CRD后,用户可以像管理原生资源一样,使用Kubectl命令对CRD进行增删改查操作。

使用限制

  • API稳定性:CRD是Kubernetes的扩展组件,API稳定性不如原生资源,可能会受到Kubernetes版本变化的影响。

  • 资源管理:由于CRD是自定义资源,集群管理员需要定期检查和维护,避免CRD过多导致管理复杂性增加。

  • 权限控制:自定义资源的权限需要单独配置RBAC规则,确保合适的用户角色可以访问和管理自定义资源。

  • 兼容性和迁移:升级Kubernetes版本时,可能需要对现有CRD进行迁移或升级,以确保兼容性。

操作步骤

  1. 在自定义资源列表信息右上角单击“创建”,进入“创建自定义资源”界面。

  2. 编辑YAML。

  3. 单击“确定”完成创建。

相关操作

  • 查看:您可以在列表页面或者单击名称查看自定义资源的信息。

  • 创建实例:您可以在详情页切换至“实例”标签页单击“创建”,按需创建自定义资源实例。

  • 修改和删除:您可以在列表页面单击操作列输入图片说明或在详情页面单击右上角的“操作”,按需修改和删除自定义资源。

表 3 操作说明

操作说明
查看详情页切换至“YAML”标签页,可查看该限制范围的YAML格式信息。支持导出该YAML文件。
选择“实例”可查看该自定义资源的实例信息。
修改“YAML”标签页单击输入图片说明,同样支持修改操作。

后续操作

您可以在自定义资源“详情”界面“实例”标签页单击“创建”,按需创建自定义资源实例。