自定义资源
特性介绍
自定义资源(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进行迁移或升级,以确保兼容性。
操作步骤
-
在自定义资源列表信息右上角单击“创建”,进入“创建自定义资源”界面。
-
编辑YAML。
-
单击“确定”完成创建。
相关操作
-
查看:您可以在列表页面或者单击名称查看自定义资源的信息。
-
创建实例:您可以在详情页切换至“实例”标签页单击“创建”,按需创建自定义资源实例。
-
修改和删除:您可以在列表页面单击操作列
或在详情页面单击右上角的“操作”,按需修改和删除自定义资源。
表 3 操作说明
操作 | 说明 |
---|---|
查看 | 详情页切换至“YAML”标签页,可查看该限制范围的YAML格式信息。支持导出该YAML文件。 选择“实例”可查看该自定义资源的实例信息。 |
修改 | “YAML”标签页单击 |
后续操作
您可以在自定义资源“详情”界面“实例”标签页单击“创建”,按需创建自定义资源实例。