无法 SSH EKS 工作节点
Not able to SSH EKS Worker Nodes
我已经按照中的说明创建了 EKS 集群
https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html
添加了工作节点
如上文所述 link 第 3 步:启动和配置 Amazon EKS 工作线程节点
在安全组中,我还添加了为工作节点启用 ssh 的规则。
当我尝试使用 'ec2-user' 用户名和有效密钥登录工作节点时,SSH 登录没有发生。
谁能帮我调试这个问题?
据我所知,默认情况下 AWS EKS 工作节点没有 public IP。您可以尝试在与您的工作节点所在的子网中创建一个具有 public IP 的 EC2 实例,然后像堡垒主机一样使用它来通过 ssh 进入工作节点。
我认为您缺少实例安全组的 SSH 规则,或者您使用错误的 SSH 密钥连接到工作节点。
请从控制台检查您的安全组 ID,如果没有,请从入站规则中添加 SSH 规则,如屏幕截图所示。
或者您可以通过 aws cli
添加相同的规则,例如:
aws ec2 authorize-security-group-ingress --group-id <security-group-id> --protocol tcp --port 22 --cidr 0.0.0.0/0
然后,通过指定有效的 SSH 密钥,您可以运行以下命令连接到您的工作节点。
ssh -i "ssh-key.pem" ec2-user@<node-external-ip or node-dns-name>
如果您 lost/miss 您的密钥,您需要使用新的 SSH 密钥对在 cloudformation 中创建新堆栈,如以下教程中所述。
Creating a Key Pair Using Amazon EC2
和
Launch and Configure Amazon EKS Worker Nodes
希望对你有所帮助
我找到了解决方法。我使用工作节点使用的相同 VPC 创建了一个 EC2 实例,也为新创建的 EC2 实例使用了相同的安全组和密钥对。我尝试登录到新创建的 EC2 实例,它像 charm 一样工作(不知道为什么它不适用于工作节点)。登录实例后,我尝试使用按预期工作的专用 IP 从那里通过 SSH 连接到工作节点。
这又是一个解决方法。不知道为什么我无法登录工作节点。
当我们创建 Compute 时,我们需要确保 允许远程访问节点 已启用。如果未选择此项,则我们无法通过 SSH 连接到工作节点。
此外,EKS 本身会创建一个安全组,该安全组附加到工作 EC2 机器上。我相信您可能错过了在第 3 步中启用 Allow remote access to nodes。
解决方法有效,因为堡垒主机和服务器都在同一个 VPC 中。这是安全组默认添加的规则。
我已经按照中的说明创建了 EKS 集群 https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html
添加了工作节点 如上文所述 link 第 3 步:启动和配置 Amazon EKS 工作线程节点
在安全组中,我还添加了为工作节点启用 ssh 的规则。 当我尝试使用 'ec2-user' 用户名和有效密钥登录工作节点时,SSH 登录没有发生。
谁能帮我调试这个问题?
据我所知,默认情况下 AWS EKS 工作节点没有 public IP。您可以尝试在与您的工作节点所在的子网中创建一个具有 public IP 的 EC2 实例,然后像堡垒主机一样使用它来通过 ssh 进入工作节点。
我认为您缺少实例安全组的 SSH 规则,或者您使用错误的 SSH 密钥连接到工作节点。
请从控制台检查您的安全组 ID,如果没有,请从入站规则中添加 SSH 规则,如屏幕截图所示。
或者您可以通过 aws cli
添加相同的规则,例如:
aws ec2 authorize-security-group-ingress --group-id <security-group-id> --protocol tcp --port 22 --cidr 0.0.0.0/0
然后,通过指定有效的 SSH 密钥,您可以运行以下命令连接到您的工作节点。
ssh -i "ssh-key.pem" ec2-user@<node-external-ip or node-dns-name>
如果您 lost/miss 您的密钥,您需要使用新的 SSH 密钥对在 cloudformation 中创建新堆栈,如以下教程中所述。
Creating a Key Pair Using Amazon EC2 和 Launch and Configure Amazon EKS Worker Nodes
希望对你有所帮助
我找到了解决方法。我使用工作节点使用的相同 VPC 创建了一个 EC2 实例,也为新创建的 EC2 实例使用了相同的安全组和密钥对。我尝试登录到新创建的 EC2 实例,它像 charm 一样工作(不知道为什么它不适用于工作节点)。登录实例后,我尝试使用按预期工作的专用 IP 从那里通过 SSH 连接到工作节点。
这又是一个解决方法。不知道为什么我无法登录工作节点。
当我们创建 Compute 时,我们需要确保 允许远程访问节点 已启用。如果未选择此项,则我们无法通过 SSH 连接到工作节点。
此外,EKS 本身会创建一个安全组,该安全组附加到工作 EC2 机器上。我相信您可能错过了在第 3 步中启用 Allow remote access to nodes。
解决方法有效,因为堡垒主机和服务器都在同一个 VPC 中。这是安全组默认添加的规则。