k8s 从集群获取资源需要太长时间。

3

我需要根据标签获取所有资源,我使用了以下代码可以工作,但是它花费了太多时间(约20秒)来获取响应,即使我将其限制为一个命名空间(vrf),你有什么想法吗?我在这里做错了什么吗?

resource.NewBuilder(flags).
   Unstructured().
   ResourceTypes(res...).
   NamespaceParam("vrf").AllNamespaces(false).
   LabelSelectorParam("a=b").SelectAllParam(selector == "").
   Flatten().
   Latest().Do().Object()

https://pkg.go.dev/k8s.io/cli-runtime@v0.26.1/pkg/resource#Builder

由于我已经使用了labelns,所以不确定在这种情况下还需要做什么。

我已经检查了集群连接,似乎一切正常,运行常规的kubectl命令得到的响应非常快,只有这个查询花费了很多时间。


也许你和集群的连接真的很差?我曾经和日本的一个集群通话时有3-5秒的延迟。不过20秒的延迟似乎太多了。 - 4c74356b41
不,连接很好,因为其他请求到集群的速度非常快... - PJEM
1个回答

1

由于查询需要搜索的资源数量庞大,搜索可能会很慢。您是否考虑过这种可能性,并在当前基础上使用一个以上的标签或筛选器进一步减小大小。

同时,在执行操作时,请检查您的Kubernetes API服务器的性能并进行优化。


谢谢,我该如何减小尺寸?我已经使用了 nslabel,你能否提供一个代码示例来说明你的意思? - PJEM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接