当前位置: 首页 > 知识库问答 >
问题:

Kubernetes CRD版本控制

松琦
2023-03-14

Kuberentes有一个支持CRDS版本控制的机制。请参见https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resources-definition/versioning/。我不清楚的是,当您不能总是从v1<->v2转换时,您实际上如何支持CRD v1到CRD v2的演化。假设我们在v2中引入了一个不能通过web钩子转换填充的新字段,那么我们所能做的也许就是将该字段保留为NULL?此外,当您请求api版本N时,您总是以版本N返回一个对象,即使它不是以版本N编写的,那么您的控制器如何知道如何处理该对象呢?

共有1个答案

姜良哲
2023-03-14

正如您可以读写、读取和更新版本化的CustomResourceDefinition对象一样

如果更新现有对象,则会以当前存储版本重写该对象。这是对象可以从一个版本更改为另一个版本的唯一方法

Kubernetes以请求的版本向您返回对象,但是持久化的对象在服务请求时既不会在磁盘上更改,也不会以任何方式进行转换(除了更改apiVersion字符串)。

API服务器还支持在需要转换时调用外部服务的webhook转换。webhook处理API服务器发送的ConversionReview请求,并发回包装在ConversionResponse中的转换结果。你可以在这里阅读有关网络书籍。

Webhook转换是在Kubernetes V1.13中作为alpha特性引入的。当webhook服务器作为服务部署到Kubernetes集群中时,它必须通过端口443上的服务公开。当不推荐版本和放弃支持时,设计一个存储升级过程

 类似资料:
  • 本章提供了网络 API 的版本控制指南。由于一个 API 服务可能提供多个 API 接口),因此 API 版本控制策略适用于API 接口级别,而不适用于 API 服务)级别。 为了方便起见,术语 API 指的是以下各节中的 API 接口。 网络API应该使用语义化的版本。比如给定版本号 MAJOR.MINOR.PATCH: 当做出不兼容修改的时候,修改 MAJOR 版本号 当以向后兼容的方式添加功

  • 你要为项目做版本控制,学会为项目做版本控制,是开发者的必备技能。用的工具叫 git。 git git 是一种版本控制工具,工具的使用只是一个熟练过程。 https://git-scm.com/ 安装 可以在 git 官网下载适合自己操作系统上用的 git 。也可以使用系统包管理去安装 git,Windows 如果下载了完整版的 cmder ,里面已经包含了 git 。 Windows Window

  • 版本控制 版本管理涉及团队协作,产品质量,和产品上线。使用版本控制工具可使我们自由的做的一些几点: 回退到任意版本 查看历史版本 对比两个版本差异 版本控制系统 版本控制系统(Version Control System)是一种记录若干文件修订记录的系统,它可以帮助开发者查阅或回档至某个历史版本。 手动版本控制 LVCS 本地 CVCS 集中式(例如 SVN) DVCS 分布式(例如 Git) 手

  • 版本控制 软件配置管理, 版本控制的一个组成部分, 也称为校正控制或源码控制, 用于管理文档, 计算机程序, 大型网站和其它信息集合的变化. 变化通常被定义为一串数字或字母代码, 被称为 "版本编号", "版本标识", 或简称"版本". 举个例子, 初始的文件集合是"版本1", 当第一个改变文件时, 就变成了"版本2"等等. 每一个版本都和一个时间戳和做出改变的人联系在一起. 版本可以被比较, 恢

  • 一个版本控制系统(或修订控制系统)是跟踪和控制项目文件变更的技术与实践的组合,包括源代码、文档和网页。如果你以前从来没有使用过版本控制,那你最好赶快找一个有经验的人加入。现今,所有的人都希望你的项目源代码存放在版本控制下,如果不使用版本控制,人们将会轻视项目。 版本控制如此广泛的原因是因为它实际上能帮助运营一个项目的所有方面:内部开发者交流、发布管理、Bug管理、代码稳定性和试验开发投入,以及对某

  • Webstorm 内置多种版本控制工具支持,下面以最常用的 git 为例,讲解下在 Webstorm 中的版本控制工具的使用。 当 Webstorm 初始化工程时会自动查找与关联项目的版本库。 git的使用 哪里查看当前所处的git分支? 留意界面右下角: 上图表明工程工作目录处于”kf1.3″分支下。 如何新建/查看/切换分支? 从图中可以看到本地分支/远程分支的情况,点击即可切换。 可以点击“

  • https://progit.org/ http://think-like-a-git.net/

  • 目前支持CVS、SVN、Git、Mercurial等主流的版本控制系统。在Android Studio中使用版本控制系统要先确保你电脑上已经配置好了相应的工作环境。 版本控制系统 假设我们打开的是一个没有使用版本控制的项目,首先启用Git作为项目的版本控制系统: 菜单栏: VCS —> Enable Version Control Integration —> 选择Git。 然后项目根目录下就多了