【问题标题】:Use Kubernetes API and increase rate limit value使用 Kubernetes API 并增加速率限制值
【发布时间】:2021-12-02 07:16:39
【问题描述】:

我使用下面的代码

kubeconfig = resolveKubeconfig(kubeconfig)
    if kubeconfig == "" {
        return nil, fmt.Errorf("%s: %w", msgCouldNotCreateClientConfig, ErrLocatingKubeconfig)
    }
    config, err := clientcmd.BuildConfigFromFlags("", kubeconfig)

现在我使用 unstruct 将资源应用到集群(5 个简单部署)

而且我看到申请需要时间,就像开始限制一样,

当我更改配置以使用 like 时

config.QPS = 250

效果更好,而且我没有遇到任何问题。

我了解这与k8s api与api服务器的速率限制有关。

两个问题:

  1. 如果我没有应用太多资源,为什么会发生这种情况
  2. 我增加了价值,可以吗?还是可以解决一些问题?

我应该也使用 Burst 吗?

我没有找到很多关于 QPS 和 Burst 的文档...

【问题讨论】:

    标签: go kubernetes


    【解决方案1】:

    client-go 默认情况下,Burst 为 10,QPS 为 5 所以如果你只是申请了几个请求,它不应该阻止你。

    增加BurstOPS 对您的应用程序没有影响,但可能会对api-server 造成沉重的负载。

    【讨论】:

    • 它是否只为我的程序进行加载,我的意思是如果我提高 QPS 并且当我的程序完成时它会停止加载,则给予它优先级?
    • QPSBurst 设置在您的应用程序端client-go,而不是api-server
    • 但是它会影响 K8S API 服务器吗?还是只是客户端?
    • 只影响你的应用程序(和你的应用程序中的client-go),对于api-server,如果它没有对某些客户端设置限制,带宽将由客户端承担。
    猜你喜欢
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多