Kubernetes 自定义对象的大负载
虽然我可以很好地创建自定义对象,但我想知道如何处理对象的大有效负载(千兆字节) CRs主要用于与Kubernetes中的垃圾收集/引用计数接口 但是,通过YAML添加有效负载不起作用(对于大型有效负载,内存不足): 可以将有效负载添加到PV,并在CR中引用该路径。 然后我有一个问题,似乎我无法清理负载文件,如果CR被最终确定(找不到任何关于自定义终结器的信息)Kubernetes 自定义对象的大负载,kubernetes,openshift,custom-object,kubernetes-custom-resources,Kubernetes,Openshift,Custom Object,Kubernetes Custom Resources,虽然我可以很好地创建自定义对象,但我想知道如何处理对象的大有效负载(千兆字节) CRs主要用于与Kubernetes中的垃圾收集/引用计数接口 但是,通过YAML添加有效负载不起作用(对于大型有效负载,内存不足): 可以将有效负载添加到PV,并在CR中引用该路径。 然后我有一个问题,似乎我无法清理负载文件,如果CR被最终确定(找不到任何关于自定义终结器的信息) 不清楚如何将这样一个概念集成到Kubernetes的生命周期中。一般来说,由于etcd的限制,任何Kube API对象的大小限制都是~1
不清楚如何将这样一个概念集成到Kubernetes的生命周期中。一般来说,由于etcd的限制,任何Kube API对象的大小限制都是~1M,但是在一个对象中放入超过20-30k的内容是一个坏主意,访问成本也会很高(垃圾收集也会很高)
我建议将数据存储在对象存储桶中,并使用RBAC代理来访问桶内容(使用代理的URL作为对象的引用)。这为您提供了在api中跟踪数据的所有好处,但使对象大小保持较小。如果您想要更复杂的集成,您可以实现聚合API并重用核心Kubernetes库来处理您的API,将数据存储在对象存储中。我们仍然使用CO。此外,我们还创建了Kubernetes控制器,用于处理PV中的生命周期。对于我们来说,这很好,因为控制器可以是PV的单个写入程序,而实际服务只需要对PV进行读取访问。
结合
ownerReference
,这有助于很好地集成到Kubernetes生命周期中。您能否澄清对象存储桶的含义?
apiVersion: "data.foo.bar/v1"
kind: Dump
metadata:
name: my-data
ownerReferences:
- apiVersion: apps/v1
kind: Deploy
name: my-deploy
uid: d9607a69-f88f-11e7-a518-42010a800195
spec:
payload: dfewfawfjr345434hdg4rh4ut34gfgr_and_so_on_...