我们正在运行一个 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"}