无法使用eksctl创建AWS EKS集群

时间:2020-08-08 09:12:36

标签: amazon-web-services amazon-eks aws-eks eksctl

无法从Windows 10 PC使用eksctl创建AWS EKS集群。这是我正在执行的命令

eksctl create cluster --name revit --version 1.17 --region ap-southeast-2 --fargate

eksctl版本:0.25.0

AWS CLI版本:aws-cli / 2.0.38 Python / 3.7.7 Windows / 10 exe / AMD64

执行创建集群命令时出错

2020-08-08T19:05:35+10:00 [ℹ]  eksctl version 0.25.0
2020-08-08T19:05:35+10:00 [ℹ]  using region ap-southeast-2
2020-08-08T19:05:35+10:00 [!]  retryable error (RequestError: send request failed
caused by: Put "http://169.254.169.254/latest/api/token": dial tcp 169.254.169.254:80: connectex: A socket operation was attempted to an unreachable network.) from ec2metadata/GetToken - will retry after delay of 54.121635ms
2020-08-08T19:05:35+10:00 [!]  retryable error (RequestError: send request failed
caused by: Put "http://169.254.169.254/latest/api/token": dial tcp 169.254.169.254:80: connectex: A socket operation was attempted to an unreachable network.) from ec2metadata/GetToken - will retry after delay of 86.006168ms

2 个答案:

答案 0 :(得分:1)

我遇到了同样的错误,我已经摆脱了它来证明我的 AWS 凭证以进行编程访问(AWS 访问密钥 ID、AWS 秘密访问密钥):

$ aws configure

下次我使用 eksctl 时,它只是没有尝试自行进行身份验证并且命令已通过。

答案 1 :(得分:0)

我怀疑这与此有关:https://aws.amazon.com/blogs/security/defense-in-depth-open-firewalls-reverse-proxies-ssrf-vulnerabilities-ec2-instance-metadata-service/

特别是:


针对开放式第3层防火墙和NAT的防护最后,IMDSv2中还有最后一层防御层,旨在保护已误配置为开放式路由器,第3层防火墙,VPN,隧道或NAT设备的EC2实例。使用IMDSv2,默认情况下,包含机密令牌的PUT响应将无法传播到实例之外。这是通过将包含秘密令牌的低级IP数据包的默认生存时间(TTL)设置为“ 1”来实现的,该值比典型值(例如“ 64”)低得多。处理数据包的硬件和软件(包括EC2实例)在每次传递时都会从每个数据包的TTL字段中减去1。如果TTL变为0,则数据包将被丢弃,并将错误消息发送回发送方。因此,TTL为“ 64”的数据包可以在放弃之前在网络中进行64次“跳跃”,而TTL为“ 1”的数据包可以仅存在一个。此功能允许合法流量到达预期的目的地,但旨在阻止数据包在网络出现环路的情况下无休止地绕圈运行。


您是否有可能在以桥接模式启动的容器中运行以上命令?我有一个类似的问题。如果是这种情况,您可以使用--network host或通过将凭据作为系统变量来运行它。