k8s自定义资源你会创建吗

创建自定义资源定义 CustomResourceDefinition

当你创建新的 CustomResourceDefinition(CRD)时,Kubernetes API 服务器会为你所 指定的每一个版本生成一个 RESTful 的 资源路径。CRD 可以是名字空间作用域的,也可以是集群作用域的,取决于 CRD 的 scope 字段设置。和其他现有的内置对象一样,删除 一个名字空间时,该名字空间下的所有定制对象也会被删除。CustomResourceDefinition 本身是不受名字空间限制的,对所有名字空间可用。

总结:
自定义资源会有不同的作用域,当创建时会有不同的rest资源路径

  • 集群
  • 命名空间

自定义资源 yaml详细格式

# apiextensions.k8s.io/v1 是 Kubernetes API 的一个组和版本,它与自定义资源定义(Custom Resource Definitions, CRDs)相关。CRDs 允许用户在 Kubernetes 集群中定义和使用他们自己的资源类型,这是 Kubernetes 扩展性的一个关键特性。
# apiextensions.k8s.io 是 API 组(API group),它标识了一组相关的 API 对象。v1 表示这个组内的 API 版本。在 Kubernetes 中,API 版本控制非常重要,它确保了向后兼容性或明确了不兼容的更改。
# 从 Kubernetes 的某个版本开始(通常是较新版本,比如 v1.16 之后),apiextensions.k8s.io/v1beta1 被 apiextensions.k8s.io/v1 所取代,后者成为稳定版本的 API。这意味着在创建或更新 CRDs 时,应使用 v1 版本以确保与新版本 Kubernetes 的兼容性。
# 总之,当你看到 apiextensions.k8s.io/v1,这通常意味着你正在处理与 Kubernetes 自定义资源定义相关的API调用或配置。
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
   # 名字必需与下面的 spec 字段匹配,并且格式为 '<名称的复数形式>.<组名>'
  name: packages.transport.io
spec:
  group: transport.io
  # 可以是 Namespaced 或 Cluster,该API的生效范围,可选项为Namespaced(由Namespace限定)和Cluster(在集群范围全局生效,不局限于任何Namespace),默认值为Namespaced
  scope: Namespaced
  names: 
    # kind 通常是单数形式的驼峰编码(CamelCased)形式。你的资源清单会使用这一形式
    kind: Package
    #CRD列表,默认被设置为<kind>List格式
    listKind: PackageList
    # 名称的复数形式,用于 URL:/apis/<组>/<版本>/<名称的复数形式>要求全部小写
    plural: packages
    # 名称的单数形式,作为命令行使用时和显示时的别名,要求全部小写
    singular: package
    # shortNames 允许你在命令行使用较短的字符串来匹配资源,要求全部小写
    shortNames:
      - pkg
    # CRD所属的资源组列表。例如,Package属于 test-io组和test-network-io组,用户通过查询test-network-io组和test-io组,也可以查询到该CRD实例
    categories:
      - test-io
      - test-network-io
  versions:
   # 固定格式 
   #  - name: v1
   #    served: true
   #    storage: true
   #    schema:
   #      openAPIV3Schema:
   #        description: Package Think of these as function-level images.
   #        properties:
    - name: v1
      # 必填项 每个版本都可以通过 served 标志来独立启用或禁止
      served: true
      #必填项 其中一个且只有一个版本必需被标记为存储版本
      storage: true
      schema:
         openAPIV3Schema:
           description: Package Think of these as function-level images.
           properties:
             # 属性名
             name: 
               description: 描述
               type: string 
           # 上面的属性必填项
           required:
            - name  
           type: object   

yaml 创建资源

apiVersion: transport.io/v1
kind: Package
spec: 
  name: '123'

这样报错了 error: error validating “b.yaml”: error validating data: [ValidationError(Package): unknown field “spec” in io.transport.v1.Package, ValidationError(Package): missing required field “name” in io.transport.v1.Package]; if you choose to ignore these errors, turn validation off with --validate=false
这个意思是说 我的name属性 是必须的 但是没发现name属性 ,这个由于我没有声明spec属性(这个貌似是k8s的自己的命名规范),所以修改一下

apiVersion: transport.io/v1
kind: Package
name: '123'

这样还是报错了 error: error when retrieving current configuration of:
Resource: “transport.io/v1, Resource=packages”, GroupVersionKind: “transport.io/v1, Kind=Package”
Name: “”, Namespace: “default”
from server for: “b.yaml”: resource name may not be empty
这个意思是说资源名是空的?难道是metadata里面的名字是空的?修改一下

apiVersion: transport.io/v1
kind: Package
metadata:
  name: 'test-package'
name: '123'

创建成功

image.png
自此一个自定义资源就创建成功了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

短剧系统源码:构建互动娱乐的新平台

随着数字媒体的兴起&#xff0c;短剧成为了一种新兴的娱乐形式&#xff0c;它以紧凑的叙事和快速的节奏迎合了现代观众的观看习惯。短剧系统源码的开发&#xff0c;为短剧内容的创作、传播和消费提供了一个全面的技术解决方案。本文将探讨短剧系统源码的关键组成部分及其功能。…

如何让 LightRoom 每次导入照片后不自动弹出 SD 卡 LR

如何让 LightRoom 每次导入照片后不自动弹出 SD 卡 LR 在导入窗口左上角有个选项&#xff1a; 导入后弹出 把这个去掉就可以了

FreeRTOS同步互斥与通信

本章简介&#xff1a; 本章是概述性的内容。可以把多任务系统当做一个团队&#xff0c;里面的每一个任务就相当于团队里的一个人。团队成员之间要协调工作进度(同步)、争用会议室(互斥)、沟通(通信)。多任务系统中所涉及的概念&#xff0c;都可以在现实生活中找到例子。 各类RT…

Transformer从0到1的学习【还有2-10,别想太多】

1.高纬度介绍Transformer 1.分为编码Encoders和解码器Decoders&#xff1a;“我爱你”作为编码器Encoders的输入进行编码得到序列码后&#xff0c;作为解码器的输入得到输出即为&#xff0c;“I Love you”。 2.编码器和译码器的具体拆分&#xff1a; 左边的编码器Encoders的…

(函数)判断一句话中最长的单词(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>//声明函数&#xff1b; int aiphabetic(char); int longest(char[]);int main() {//初始化变量值&#xff1b;int i;char line[100] { 0 };//获取用户输入字符…

每天写两道(五)合并两个有序链表、最长回文子串

21.合并两个有序链表 . - 力扣&#xff08;LeetCode&#xff09; 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] (1)迭代法…

牛客网刷题 | BC105 菱形图案

目前主要分为三个专栏&#xff0c;后续还会添加&#xff1a; 专栏如下&#xff1a; C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读&#xff01; 初来乍到&#xff0c;如有错误请指出&#xff0c;感谢&#xff01; 描述 KiKi学习了循环&am…

VMware Workstation中WinXP联网问题

我一直以为我的虚拟机上的XP没有联网 因为 蒙了半天&#xff0c;发现是因为这个网址打不开&#xff0c;不是没有网 太傻了 不如在cmd命令行中通过ping baidu.com来判断是否联网

Vue插槽与作用域插槽

title: Vue插槽与作用域插槽 date: 2024/6/1 下午9:07:52 updated: 2024/6/1 下午9:07:52 categories: 前端开发 tags:VueSlotScopeSlot组件通信Vue2/3插槽作用域API动态插槽插槽优化 第1章&#xff1a;插槽的概念与原理 插槽的定义 在Vue.js中&#xff0c;插槽&#xff08;…

【多目标跟踪】《FlowMOT: 3D Multi-Object Tracking by Scene Flow Association》论文阅读笔记

0.论文 论文地址链接:https://arxiv.org/pdf/2012.07541v1 通过流的方式跟踪是一个比较新颖的点,所以这里比较关注运动跟踪,是如果做到流的跟踪来预测目标的位置以及ID绑定的。 FlowMOT的框架结构如下所示,本中会主要关注下运动跟踪、数据关联、ID分配、新生/消亡…

cmd窗口输出内容乱码问题

出现这样的问题是因为编码格式和解码格式不一样导致的&#xff0c;cmd窗口的默认解码格式为GBK&#xff0c;如想修改cmd默认编码格式可以按照下面步骤操作&#xff1a;打开cmd窗口输入&#xff1a;chcp 65001 65001指的是utf-8编码如果不清楚编码对应的 页面编码是是多少&#…

基于51单片机和NRF24L01的无线温度监控设计

一、设计功能 由单片机、温度传感器、无线模块NRF24L01以及液晶显示器等构成高精度远 程无线温度监测系统。 温度显示精确到小数点后一位。 按键设定过温值&#xff0c;过温在液晶屏提示。 系统设计 三、器件选择3.1温度信号采集模块 传统的温度检测大多以热敏电阻为传感器&a…

4K高刷显示器 - 蚂蚁电竞ANT27VU

可以毫不夸张地说&#xff0c;每一局游戏最终能够取得胜利&#xff0c;实际上都与一套极为优秀的电竞 PC 有着紧密的关联&#xff0c;因为其能够提供强大的性能支持与流畅的体验。同样的道理&#xff0c;一套优秀的电竞 PC 若想发挥出最佳的效果&#xff0c;那也都离不开一台能…

14.Ollydbg的基本使用

上一个内容&#xff1a;13.优化界面化的游戏辅助 Ollydbg是一个调试工具&#xff0c;它可以一步一步的运行一个程序并且还能很直观的看到被调试程序的寄存器状态、栈状态。Ollydbg需要以管理员方式运行&#xff01; 下图附加程序是调试一个正在运行的进程&#xff1a; 点击了…

适合学生写作业的台灯有哪些?台灯怎么选详细攻略!

在数字化飞速发展的今天&#xff0c;孩子们的学习和生活越来越离不开电子屏幕。然而&#xff0c;长时间盯着屏幕&#xff0c;不仅容易让眼睛感到疲劳&#xff0c;更是近视问题日益严重的元凶之一。每一位家长都希望孩子能拥有健康的视力&#xff0c;因此会为孩子挑选一台护眼灯…

【UML用户指南】-04-从代码到UML的关键抽象

1、关键抽象 声明了一个名为paint的操作&#xff0c;它的实现调用名为drawString的另一个操作&#xff0c;drawString操作负责在指定的位置上打印“Hello,World!”。在通常的面向对象的方式下&#xff0c;drawString是一个名称为g的参数上的一个操作&#xff0c;g的类型是类Gr…

写字静不下心?不如试试这些“笨方法”

夏天悄悄热起来啦&#xff5e;有人说&#xff0c;想踏踏实实写一会儿&#xff0c;但又静不下心&#xff0c;耐不住性子&#xff0c;快收下这四个小锦囊&#xff0c;与古人一起笨拙精进吧&#xff01;    1、不论输赢      每次课前&#xff0c;暄桐林曦老师总会强调&am…

VS(visual studio)搭建QT开发环境插件安装

优先安装QT Qt6 官网QtCreator 下载与安装方法win10_qt6下载-CSDN博客 如果安装vs2019,打开installer,安装c环境 选择c 下载vsix后&#xff0c;双击安装即可。 插件下载&#xff1a; Index of /qtproject/official_releases/vsaddin/ 创建QT项目&#xff1a; 创建完成&…

教你搞一个比较简单的计时和进度条装饰器

教你搞一个比较简单的计时和进度条装饰器 什么是装饰器为啥要用装饰器呢&#xff1f;上代码&#xff01;如何使用装饰器效果 什么是装饰器 装饰器的英文是&#xff1a;Decorator。装修的英文是&#xff1a;Decoration。顾名思义就是我们要用装饰器在函数func()上搞点儿事儿&am…

「Django秘境探险:揭开Web开发的神秘面纱」

大家好&#xff0c;我是阿佑&#xff0c;今天将和大家一块学习到如何利用Django框架的高级特性&#xff0c;构建出既快速又安全的Web应用。我们将一起破解Django的内部机制&#xff0c;掌握从数据模型到模板设计的每一个环节。准备好了吗&#xff1f;Let’s go &#xff01; 文…