Helm在调用API服务器时没有添加超时参数。

问题描述 投票:0回答:1

当我们使用 helm 创建 Istio VirtualService 或 DestinationRules 时,需要 30 秒以上的时间。所以我们设置了更高的超时时间5m。

使用的命令helm upgrade --install --wait --timeout 5m --v 9 helloworld ./templateDir

但是,我看到舵手在调用APIserver的时候,并没有传递新的超时值,当我们使用kubectl创建同样的超时值的时候,我们设置了 --request-timeout 对应 kubectl 万事大吉

既然是apiserver的超时,那么是否可以对所有从舵机发出的API服务器请求设置一个更高的超时值?对于这个问题,你还有没有其他的变通方法可以建议?

I0528 17:52:57.664992   11148 round_trippers.go:423] curl -k -v -XPOST  -H "Content-Type: application/json" -H "Accept: application/json" 'https://aaaa.sk1.us-east-1.eks.amazonaws.com/apis/networking.istio.io/v1beta1/namespaces/default/destinationrules '
I0528 17:53:27.981691   11148 round_trippers.go:443] POST https://aaaa.sk1.us-east-1.eks.amazonaws.com/apis/networking.istio.io/v1beta1/namespaces/default/destinationrules  504 Gateway Timeout in 30316 milliseconds
I0528 17:53:27.981691   11148 round_trippers.go:449] Response Headers:
I0528 17:53:27.981691   11148 round_trippers.go:452]     Audit-Id: cba23005-b8db-47f7-8801-4c89e6447cd3
I0528 17:53:27.981691   11148 round_trippers.go:452]     Content-Type: application/json
I0528 17:53:27.981691   11148 round_trippers.go:452]     Content-Length: 187
I0528 17:53:27.981691   11148 round_trippers.go:452]     Date: Thu, 28 May 2020 12:23:27 GMT
I0528 17:53:27.981691   11148 request.go:1017] Response Body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"Timeout: request did not complete within requested timeout 30s","reason":"Timeout","details":{},"code":504}
I0528 17:53:27.982759   11148 request.go:1017] Request Body: {"apiVersion":"networking.istio.io/v1beta1","kind":"VirtualService","metadata":{"name":"mbrsvc","namespace":"default"},"spec":{"hosts":["mbrsvc"],"http":[{"route":[{"destination":{"host":"mbrsvc","subset":"1.0.0"},"weight":100}]}]}}
kubernetes kubernetes-helm amazon-eks aws-eks eks
1个回答
0
投票

文档介绍 指出 --timeout 应以秒为单位。

--timeout: 等待Kubernetes命令完成的时间,以秒为单位。5m0s

--wait: 等到所有的花苞都处于准备状态,PVC被绑定,部署有最低限度的()。Desired 减去 maxUnavailable)处于准备状态的花苞和服务都有一个IP地址(如果是Ingress,则有一个IP地址)。LoadBalancer),然后再将发布标记为成功。它将等待,只要 --timeout 值。如果达到超时,释放将被标记为 FAILED. 注:在部署有 replicas 设为1和 maxUnavailable 作为滚动更新战略的一部分,不设为0。--wait 将返回准备好,因为它已经满足最低花苞在准备好的条件。

希望能帮到你。


0
投票

这个超时来自服务器(代码504)而不是客户端(Helm)。提供一个 --timeout 恐怕不会在这里产生影响吧?

© www.soinside.com 2019 - 2024. All rights reserved.