gpt4 book ai didi

Kubernetes CRD 版本控制

转载 作者:行者123 更新时间:2023-12-02 11:33:50 26 4
gpt4 key购买 nike

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

最佳答案

正如您在 Writing, reading, and updating versioned CustomResourceDefinition objects 中所读到的那样

If you update an existing object, it is rewritten at the version that is currently the storage version. This is the only way that objects can change from one version to another.



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

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

您在版本 v1beta1 上阅读了您的对象,然后您再次读取版本 v1 的对象.除了 apiVersion 之外,两个返回的对象都是相同的。场, Upgrade existing objects to a new stored version

API 服务器还支持 Webhook 转换,在需要转换时调用外部服务。
Webhook 处理 API 服务器发送的 ConversionReview 请求,并将转换结果包装在 ConversionResponse 中。您可以阅读有关网络书的信息 here .

Kubernetes v1.13 中引入了 Webhook 转换作为 alpha 功能。
当 webhook 服务器作为服务部署到 Kubernetes 集群时,它必须通过端口 443 上的服务公开。
在弃用版本和放弃支持时,设计存储升级程序。

关于Kubernetes CRD 版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53736747/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com