如何调试 hashcorpVault 超时?

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

每天晚上我都会运行大型ansible playbook(30-40分钟),其中我使用hashi_vault插件从vault中获取一些变量,有时(并非每天)我会收到错误

Error was a <class 'ansible.errors.AnsibleError'>, original message: An unhandled exception occurred while running the lookup plugin 'hashi_vault'. Error was a <class 'requests.exceptions.ConnectTimeout'>, original message: HTTPSConnectionPool(host='vault.totalbattle.tech', port=443): Max retries exceeded with url: /v1/auth/approle/login (Caused by ConnectTimeoutError(<urllib3.connection.VerifiedHTTPSConnection object at 0x7f0707e26dc0>, 'Connection to xxx timed out. (connect timeout=30)')). HTTPSConnectionPool(host='xxx', port=443): Max retries exceeded with url: /v1/auth/approle/login (Caused by ConnectTimeoutError(<urllib3.connection.VerifiedHTTPSConnection object at 0x7f0707e26dc0>, 'Connection to xxx timed out. (connect timeout=30)'))"}

如果我运行 hashi_vault 插件使用几次的小型剧本 - 一切都很好

我的hashicorp使用外部google LB并部署在后面的5台主机上

我尝试检查谷歌LB日志,但没有找到任何有趣的信息 我不明白到底问题出在哪里,是在 LB 还是在金库

hashicorp-vault google-cloud-load-balancer
2个回答
0
投票

您的一个选择是调整 ansible 任务的超时设置,也许您运行剧本的地方会出现一些网络延迟。 根据官方文档,超时是可定制的。

另一个选项将运行:

curl -I -vvv <your_vault_url>

跟踪http连接行为。无论哪种方式,超时都会发生在您的 ansible 客户端和负载均衡器之间。


0
投票

这很难调试,在 Stackoverflow 上更难。但您标记了 Google Cloud,所以也许您正在 Kubernetes 中运行实例?

我会查看您的 Vault 节点的

livenessProbe
。也许 Vault 运行得很好,但监控其运行状况的某些东西失败并声明实例已死亡。您可以将此建议转化为用于运行 Vault 的平台上的等效概念。您的负载均衡器可能会执行类似的活跃度测试,但我会从实例级别开始。

发生这种情况时,实例将重新启动,如果在集群陷入选举循环时收到请求(或者每个节点恰好同时关闭),您将遇到超时。

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