gpt4 book ai didi

kubernetes - 'watch=true' 在kube-apiserver 上是如何实现的?

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

在观察 kubernetes 资源的变化时,幕后到底发生了什么? http 是否突然更改为 wss 连接?

为了解决对 kube-apiserver 请求过多的问题,我将一些代码重写为我认为更像是运算符模式的代码。

在我们的 Multi-Tenancy 微服务架构中,所有服务都使用相同的库来查找特定于租户的数据库的连接详细信息。连接详细信息保存在与应用程序相同的命名空间内的 secret 中。每个租户数据库都有自己的 secret 。

因此,在每次调用时,都会读取并解析所有具有正确标签的 secret ,以获取必要的数据库连接详细信息。我们有大约 400 个服务/pod...

我的想法:与其在每次调用时读取所有 secret ,不如创建一个缓存并在每次通过观察者更改相关 secret 时更新缓存。

我的顾虑:我只是用同样昂贵的 websockets 替换 http 请求吗?据我所知,我现在将为每个服务/pod 提供一个开放的 websocket 连接,这仍然是 400 个开放连接。

有一个代理服务来监视 secret (kube-apiserver 请求)然后所有服务查询该服务以获取连接详细信息(Intranet 请求,kube-apiserver unreleated)会更​​好吗?

最佳答案

来自 the sources :

// ServeHTTP serves a series of encoded events via HTTP with Transfer-Encoding: chunked
// or over a websocket connection.

这在很大程度上取决于客户端使用哪种协议(protocol)(分块 http 或 ws),它们都有其成本,您必须将其与当前请求频率进行比较。

使用定期监视或轮询的代理缓存可能会更好,但这在很大程度上取决于您的应用程序。

关于kubernetes - 'watch=true' 在kube-apiserver 上是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59736003/

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