1

我们正在运行一个 EKS 集群,其中的节点是使用基于 AWS 自动缩放组的节点组创建的。

集群是使用 eksctl 创建的。

该节点工作正常,但一段时间后,它无法与 Kubernetes API 通信。

深入研究问题,我们发现了以下问题。aws-iam-authenticator 返回用于访问 API 时失败的令牌。

最后,我们发现了以下情况,我们尝试使用相同的 aws-iam-authenticator 验证令牌,但验证失败并显示令牌已过期的消息。

我们检查运行以下命令的情况:

aws-iam-authenticator verify -i preguntados-dev-v1 -t $( aws-iam-authenticator token -i preguntados-dev-v1 | jq -r '.status.token' )

它请求一个令牌,从返回的 JSON 中提取令牌值,并将其发送以进行验证。

响应是(在有问题的节点中):

could not verify token: sts getCallerIdentity failed: error from AWS (expected 200, got 403). Body: {"Error":{"Code":"ExpiredToken","Message":"The security token included in the request is expired","Type":"Sender"},"RequestId":"477f5292-0e87-4734-bd60-74720a3e13a8"}
aws-iam-authenticator version
{"Version":"v0.5.0","Commit":"1cfe2a90f68381eacd7b6dcfa2bf689e76eb8b4b"}
4

1 回答 1

0

我遇到了类似的问题,这主要是因为系统时间被取消的原因。如果您的本地时间不正确,则更正它将是一个关键,否则,请在 Linux(Ubuntu)上运行此命令:

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

来源:https ://askubuntu.com/a/655528

于 2021-03-09T04:47:49.930 回答