gpt4 book ai didi

kubernetes - 自定义对象的大负载

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

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

CR 主要用于与 Kubernetes 中的垃圾收集/引用计数进行交互。

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

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_...

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

不清楚如何将这样的概念集成到 Kubernetes 生命周期中。

最佳答案

一般来说,由于 etcd 的限制,任何 Kube API 对象的大小限制约为 1M,但是在一个对象中放置超过 20-30k 是一个坏主意,并且访问成本很高(垃圾收集也会很昂贵)。

我建议将数据存储在对象存储桶中并使用像 https://github.com/brancz/kube-rbac-proxy 这样的 RBAC 代理。访问存储桶内容(使用代理的 URL 作为对象的引用)。这为您提供了跟踪 api 中数据的所有好处,但保持对象大小较小。如果您想要更复杂的集成,您可以实现一个聚合 API 并重用核心 Kubernetes 库来处理您的 API,将数据存储在对象存储中。

关于kubernetes - 自定义对象的大负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52161883/

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