crd介绍

在 Kubernetes 中,CRD(Custom Resource Definition)和 CR(Custom Resource)是用于扩展 Kubernetes 功能的机制。它们的关系和使用可以用一个完整案例来说明。

定义
CRD(Custom Resource Definition): 自定义资源定义,描述了一种新的资源类型。通过创建 CRD,用户可以向 Kubernetes 集群中添加新资源类型,类似于 Pod、Service 等内置资源。

CR(Custom Resource): 自定义资源,是基于 CRD 创建的资源实例。CR 使用 CRD 定义的规格,可以像管理其他 Kubernetes 资源一样进行管理。

Kubernetes Custom Resource Definitions(CRD)提供了许多好处,使其成为扩展 Kubernetes 平台功能的重要工具:

1.自定义资源类型:CRD 允许你定义和创建自定义资源类型,与 Kubernetes 内置资源一起工作,满足特定业务需求。
2.无缝集成:自定义资源可以与 Kubernetes 的 RBAC、监控和日志工具集成,实现统一管理和监控。
3.原生API交互:通过定义 CRD,你可以使用 Kubernetes API 和 kubectl 命令来管理自定义资源,保持一致的操作体验。
4.可扩展性:CRD 提供了一种无需外部服务即可扩展 Kubernetes 平台的方法,使开发者可以根据需要添加新的功能和特性。
5.自动化和高效:通过自定义控制器和操作器,CRD 可以实现自动化操作流程,提高系统运维的效率和可靠性。
6.复用性和共享:CRD 可以打包成 Helm Chart 等形式,方便分享和复用,促进社区和企业内部的协作和标准化。
7.分层管理:利用 CRD,可以实现应用的分层和模块化管理,清晰定义应用中的每个部分及其配置。
8.综合来看,CRD 提供了一种灵活且强大的方式来定制和扩展 Kubernetes,适应不同场景和需求。

案例:管理自定义“应用程序”资源
假设我们要在 Kubernetes 中管理一个自定义的应用程序资源。

Step 1: 定义 CRD
首先,创建一个 CRD 文件 application-crd.yaml:

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:name: applications.example.com
spec:group: example.comversions:- name: v1served: truestorage: trueschema:openAPIV3Schema:type: objectproperties:spec:type: objectproperties:name:type: stringreplicas:type: integerscope: Namespacednames:plural: applicationssingular: applicationkind: ApplicationshortNames:- app

Step 2: 应用 CRD
使用 kubectl 命令应用这个 CRD:

kubectl apply -f application-crd.yaml
这样,你就创建了一个新的资源类型 Application。

Step 3: 创建一个实例 CR
创建一个自定义资源 my-application.yaml:

apiVersion: example.com/v1
kind: Application
metadata:name: my-app
spec:name: "My Custom App"replicas: 3

Step 4: 应用实例 CR
使用 kubectl 命令创建这个自定义资源实例:

kubectl apply -f my-application.yaml
Step 5: 验证创建
你可以使用以下命令查看自定义资源实例:

kubectl get applications
或者查看详细信息:

kubectl describe application my-app
总结
CRD 定义了一个新的资源类型,它告诉 Kubernetes 如何解释和管理这种新的资源。
CR 是这种新类型的资源实例,遵循 CRD 的定义进行配置。
通过 CRD 和 CR 的结合,Kubernetes 可以支持多种不同的自定义资源,为应用的部署和管理提供了强大的扩展能力。

查看相关CRD

列出所有的 CRDs:
kubectl get crds
查看某个 CRD 类型的资源:kubectl get myresources.example.com
查看所有命名空间中的某个类型的 CR: kubectl get myresources.example.com --all-namespaces
查看详细信息:
kubectl describe myresources.example.com
kubectl get myresources.example.com -o yaml

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/450337.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中后台 B 端产品设计

中后台 B 端产品设计 一、设计目标二、设计流程三、设计要点四、相关模块 叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧! 中后台B端产品设计: 是指针对企业内部业务人员和管理…

python+appium+雷电模拟器安卓自动化及踩坑

一、环境安装 环境:window11 1.1 安装Android SDK AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载 这里面任选一个就可以,最终下载完主要要安装操作安卓的工具adb,安装这个步骤的前提是要…

Linux驱动开发——设备树

文章目录 1 什么是设备树?2 DTS、DTB和DTC3 DTS语法3.1 dtsi头文件3.2 设备节点3.3 标准属性3.4 根节点compatible属性3.5 向节点追加或修改内容 4 创建小型模板设备树5 设备树在系统中的体现6 绑定信息文档7 设备树常用OF操作函数7.1 查找节点的OF函数7.2 查找父/子…

【工具变量】上市公司当年是否发生财务重述指标整理Stata代码(2000-2023年)

计算说明:使用财务重述公告中所更正年报对应的年度作为财务重述的年度,若企业年报中发生财务重述取1,否则取0。本示例的财务重述是指上市公司对以前年度财务报表中的会计差错进行更正和披露,不包括股票拆分、股票红利、终止经营、…

Java 类和对象详解(上 )

个人主页: 鲤鱼王打挺-CSDN博客 Java专栏:https://blog.csdn.net/2401_83779763/category_12801101.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12801101&sharereferPC&sharesource2401_83779763&sharefromfrom_link &…

SwiftUI 如何取得 @Environment 中 @Observable 对象的绑定?

概述 从 SwiftUI 5.0(iOS 17)开始,苹果推出了全新的 Observation 框架。它作为下一代内容改变响应者全面参与到数据流和事件流的系统中。 有了 Observation 框架的加持,原本需要多种状态类型的 SwiftUI 视图现在只需要 3 种即可大…

R语言详解predict函数

R语言中predict函数在建立模型&#xff0c;研究关系时常用。但是不同type得到的结果常常被混为一谈&#xff0c;接下来&#xff0c;探讨predict得到的不同结果。 #数据 set.seed(123) n<-1000 age<-rnorm(n,mean50,sd10) gender<-rbinom(n,1,0.5) disease<-rbinom…

CDC变更数据捕捉技术是什么?和ETL有什么不同?

一、什么是CDC技术? 变更数据捕获&#xff08;Change Data Capture&#xff0c;简称 CDC&#xff09;是一种用于识别和跟踪数据源中发生变化的数据的技术。 工作原理&#xff1a; 1.监测数据源&#xff1a;CDC 工具会持续监测指定的数据源&#xff0c;如数据库表、文件系统…

【踩坑随笔】Tensorflow-GPU训练踩坑

一个无语的坑&#xff0c;4060单卡训练&#xff0c;8G内存本来就不够&#xff0c;还没开始训练就已经爆内存了&#xff0c;但是居然正常跑完了训练&#xff0c;然后一推理发现结果就是一坨。。。往回翻日志才发现原来中间有异常。 首先解决第一个问题&#xff1a;Could not lo…

k8s部署Kafka集群超详细讲解

准备部署环境 Kubernetes集群信息 NAMEVERSIONk8s-masterv1.29.2k8s-node01v1.29.2k8s-node02v1.29.2 Kafka&#xff1a;3.7.1版本&#xff0c;apche版本 Zookeeper&#xff1a;3.6.3版本 准备StorageClass # kubectl get sc NAME PROVISIONER RECLA…

音频文件处理 m4a 格式转为 wav 格式 - python 实现

在做音频算法开发时&#xff0c;有时获取的样本为 .m4a格式需要将其转为 .wav,方便之后的数据处理。 安装 python 库&#xff1a; pip install AudioSegment 代码实现具体如下&#xff1a; #-*-coding:utf-8-*- # date:2024-10 # Author: DataBall - XIAN # Function: 音频文件…

LIN从节点:波特率测试

文章目录 1、为什么需要测&#xff1f;2、如何实现测试&#xff1f;3、测试结果4、注意事项 1、为什么需要测&#xff1f; 调节波特率的变化&#xff0c;使主节点同步场位速率变化&#xff0c;验证从节点能否通过同步段进行调节自身位速率。对应ISO17987协议。 2、如何实现测…

锥线性规划【分布鲁棒、两阶段鲁棒方向知识点】

1 锥线性对偶理论 本部分看似和分布鲁棒、两阶段鲁棒优化没什么关系&#xff0c;但值得优先学习&#xff0c;原因将在最后揭晓。 二阶锥 二阶锥&#xff08;second-order cone&#xff0c;又称ice-cream/Lorentz cone&#xff09;的形式为&#xff1a; 非负象限锥 半正定锥 …

jmeter出参保存到文件,保存失败解决

1、添加JSON提取 2、添加beanshell FileWriter writer new FileWriter("C:/Users/xxx/Desktop/signUrl.csv", true); writer.write(vars.get("company_name")"\t"vars.get("signUrl")"\n"); writer.close(); 写文件的两个…

python的多线程和多进程

首先需要明确的是&#xff0c;多进程和其他语言的一样&#xff0c;能够利用多核cpu&#xff0c;但是python由于GIL的存在&#xff0c;多线程在执行的时候&#xff0c;实际上&#xff0c;每一时刻只有一个线程在执行。相当于是单线程。然而多线程在某些情况下&#xff0c;还是能…

Go-知识泛型

Go-知识泛型 1. 认识泛型1.1 不使用泛型1.2 使用泛型 2. 泛型的特点2.1 函数泛化2.2 类型泛化 3. 类型约束3.1 类型集合3.2 interface 类型集合3.2.1 内置interface类型集合3.2.2 自定义interface类型集合3.2.2.1 任意类型元素3.2.2.2 近似类型元素3.2.2.3 联合类型元素 3.2.3 …

Windows上安装Go并配置环境变量(图文步骤)

前言 1. 本文主要讲解的是在windows上安装Go语言的环境和配置环境变量&#xff1b; Go语言版本&#xff1a;1.23.2 Windows版本&#xff1a;win11&#xff08;win10通用&#xff09; 下载Go环境 下载go环境&#xff1a;Go下载官网链接(https://golang.google.cn/dl/) 等待…

Windows的一些技巧

一、如何去掉桌面程序图标的小箭头 1、使用WIN + R 快捷键调出运行窗口 2、在运行 窗口输入 regedit,打开注册表编辑器 3、在注册表编辑器 中找到 HKEY_CLASSES_ROOT\lnkfile 4、在右侧窗格中找到 IsShortcut 项,右键 删除 二、WIN10如何打开图片查看器 1、使用WIN + R 快…

kali——hping3的使用

目录 前言 ping测试 端口扫描 ​编辑 源IP伪造 修改TTL值 洪水攻击 ​编辑 前言 hping命令行工具主要用于构造和发送自定义的 TCP/IP 数据包。它是一个非常强大的工具&#xff0c;用于网络测试、安全审计和防火墙测试。 ping测试 hping3 -1 目标IP //此命令…

Node.js基础与应用

目录 1.要求 2.创建第一个Node.js代码 2.1 安装 VSCode 和所需插件 2.2 安装 Node.js 和 Yarn 2.3 创建 Node.js 项目 2.3.1 在 VSCode 中打开一个新文件夹 2.3.2 初始化 Node.js 项目 2.3.3 安装 Express 2.4 编写 Node.js 应用 2.4.1 创建主文件 2.4.2 运行应用 …