使用Kubernetes API并增加速率限制值。

huangapple go评论75阅读模式
英文:

Use Kubernetes API and increase rate limit value

问题

我正在使用以下代码:

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

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

我发现应用过程花费了很长时间,就像开始进行限流一样。

当我将配置更改为以下方式时:

config.QPS = 250

它的表现更好,我没有遇到任何问题。

我理解这与 Kubernetes API 与 API 服务器的速率限制有关。

两个问题:

  1. 如果我没有应用太多资源,为什么会发生这种情况?
  2. 我增加了这个值,这样做是否可以或会引发一些问题?

我应该同时使用 Burst 吗?

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

英文:

Im using the following code

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

Now I use unstruct to apply resource to the cluster (5 simple deployments)

And I saw that the apply is taking time like starting throttling,

when I change the config to use like

config.QPS = 250

it works better, and I dont face any issue.

I understand that its related for the rate limit of k8s api with the api server.

two questions:

  1. why it happen if I dont apply too much resource
  2. I increase the value, is it ok or can make some issue ?

Should I use also Burst?

I didnt find a lot of docs on the QPS and Burst ...

答案1

得分: 1

默认情况下,在client-go中,Burst为10,QPS为5,因此如果您只应用了几个请求,它不会阻塞您。

增加BurstOPS对您的应用程序没有影响,但可能会给api-server带来重负荷。

英文:

By default in client-go the Burst is 10 and QPS is 5
so it should not block you if you just applied several request.

To increase the Burst and OPS no effect to your application but may create heavy load on the api-server.

huangapple
  • 本文由 发表于 2021年10月14日 04:11:19
  • 转载请务必保留本文链接:https://go.coder-hub.com/69561763.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定