Kubernetes 自定义对象的大负载

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

虽然我可以很好地创建自定义对象,但我想知道如何处理对象的大有效负载(千兆字节)

CRs主要用于与Kubernetes中的垃圾收集/引用计数接口

但是,通过YAML添加有效负载不起作用(对于大型有效负载,内存不足):

可以将有效负载添加到PV,并在CR中引用该路径。 然后我有一个问题,似乎我无法清理负载文件,如果CR被最终确定(找不到任何关于自定义终结器的信息)


不清楚如何将这样一个概念集成到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_...