kubernetes - Kubernetes CRD 中的“存储”是什么意思?
问题描述
CRD 中有一个名为“storage”的字段
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
spec:
...
versions:
- name: v1
# Each version can be enabled/disabled by Served flag.
served: true
# One and only one version must be marked as the storage version.
storage: true
...
这是什么意思?
所有文档都说是上面的评论:
One and only one version must be marked as the storage version.
它根本没有帮助。
解决方案
一个 k8s 资源(包括自定义资源)可以同时支持多个 API 版本(例如v1beta1
、v1
等)。它的存在有多种原因,例如 API 稳定性和向后兼容性。
如您所知,在创建资源对象时,k8s 将其存储在持久存储中,例如etcd
. 带有的版本storage: true
表示将资源持久化到存储时应使用此版本。存储一个对象的多个副本很不方便。这就是为什么One and only one version must be marked as the storage version
。应使用带有转换 webhook 的其他版本的按需storage: false
切换,以在具有推荐的架构更改和自定义逻辑的版本之间切换。
参考:
推荐阅读
- arrays - 多维数组列表奇怪的行为
- java - 如何使用模型片段将已处理的工具项定位到右侧
- c# - 将 JSON 数据路由到 Azure 中的事件中心
- sql - Report Builder 3.0 计数参数问题
- angularjs - 如何在没有选择复选框的情况下在 Kendogrid 中选择多行 Angular5
- python-3.x - 增加图像分类器中的类数
- sqlite - 带有偏移量的sqlite3限制在android中不起作用
- html - getElementById innerHTML Runtine 错误 91
- ubuntu-16.04 - fail2ban 无法启动 ubuntu 16.04
- php - 对我的示例代码进行分页