在完全私有的集群中无法运行kubectl和eks命令

0

【以下的问题经过翻译处理】 我已经创建了一个完全私有的 VPC(无法直接访问互联网),我们称之为 VPC-A。这个 vpc 是对等连接到另一个 VPC,我们称之为 VPC-B。此 VPC-B 具有互联网连接,并用作 VPC-A 的网关。

我使用 指南 在 VPC-A 的私有子网中仅部署了一个完全私有的集群(没有任何节点)。问题是我无法像 指南 中提到的那样运行任何 kubectl 和 eks 命令。在互联网上搜索了很多信息后,我发现了一些访问集群的方法。其中一种方法是在私有VPC中创建一个机器,然后尝试从那里访问集群。我还在GitHub上创建了许多问题,但没有得到适当的答案。以下是一些专家的答案:

您可以通过在该 VPC 内部署 EC2 实例并将 EKS K8s API 定义到您的 kubectl 来与 K8s API 通信。

好吧,我已经在集群的 vpc 中部署了一个实例,但每当我在私有VPC内部的实例上运行kubectl命令时,我都会收到以下错误消息:Unable to connect to the server: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

此外,在 EKS 完全私有集群指南 中提到

如果您的设置可以通过其私有地址到达 EKS API 服务器端点,并且具有出站互联网访问权限(对于 EKS:DescribeCluster),则所有 eksctl 命令都应该有效。

是否有人可以正确指导我如何创建这样的设置?

我运行了一些命令来检查访问服务器地址是否有问题。

nmap -p 443 1E9057EC8C316E£D"@JY$J&G%1C94A.gr7.eu-west-*.eks.amazonaws.com

Starting Nmap 7.80 ( https://nmap.org ) at 2022-09-09 11:11 UTC
Nmap scan report for 1E9057EC8C316E£D"@JY$J&G%1C94A.gr7.eu-west-.eks.amazonaws.com (192.168..)
Host is up (0.00031s latency).
Other addresses for 1E9057EC8C316E£D"@JY$J&G%1C94A.gr7.eu-west-.eks.amazonaws.com (not scanned): 192.168..
rDNS record for 192.168..: ip-192-168--.eu-west-*.compute.internal

PORT STATE SERVICE
443/tcp open https

Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds

另一个命令是

nslookup 1E9057EC8C316E£D"@JY$J&G%1C94A.gr7.eu-west-*.eks.amazonaws.com
Server: 127.0.0.53
Address: 127.0.0.53#53

Non-authoritative answer:

Name: 1E9057EC8C316E£D"@JY$J&G%1C94A.gr7.eu-west-.eks.amazonaws.com
Address: 192.168..*
Name: 1E9057EC8C316E£D"@JY$J&G%1C94A.gr7.eu-west-.eks.amazonaws.com
Address: 192.168..*

还有一个是

telnet 1E9057EC8C316E£D"@JY$J&G%1C94A.gr7.eu-west-.eks.amazonaws.com 443
Trying 192.168.....
Connected to 1E9057EC8C316E£D"@JY$J&G%1C94A.gr7.eu-west-.eks.amazonaws.com
Escape character is '^]'.
^CConnection closed by foreign hos

很明显,我可以从与API服务器相同的VPC中的机器访问API服务器端点。但是,当我运行kubectl命令时,仍然会收到此输出:

Unable to connect to the server: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

当我运行以下命令时

kubectl cluster-info dump

我收到以下错误消息

Unable to connect to the server: proxyconnect tcp: dial tcp: lookup socks5h on 127.0.0.53:53: server misbehaving

谢谢

1 Antwort
0

【以下的回答经过翻译处理】 最后一条错误消息似乎是指某种代理设置。通常情况下,当您的EKS API服务器端点仅具有私有访问权限时,您需要确保附加到EKS集群的安全组允许您从源机器进行连接。您还需要正确配置kubectl身份验证。如果您正在使用IAM访问权限,那么可以使用AWS CLI生成kubeconfig,具体命令如下:aws eks update-kubeconfig --name <cluster name> 在删除公共访问之前,请确保已将RBAC访问权限委派给Bastion主机内的IAM用户。

有关如何连接到仅具有私有访问权限的API服务器的更多信息:https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html#private-access

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen