无法使用 kubectl 连接到 GKE 集群。超时
Cant connect to GKE cluster with kubectl. getting timeout
我执行了以下命令
gcloud container clusters get-credentials my-noice-cluter --region=asia-south2
并且该命令成功运行。我可以通过 kubectl config view
查看相关配置
但是当我尝试 kubectl 时,我超时了
kubectl 配置视图
❯ kubectl get pods -A -o wide
Unable to connect to the server: dial tcp <some noice ip>:443: i/o timeout
如果我在 gcp 中创建一个 VM 并在那里使用 kubectl 或使用 gcp 的云 shell,它可以工作,但它不能在我们本地的笔记本电脑和 PC 上工作。
关于我们集群的一些网络信息:-
Private cluster Disabled
Network default
Subnet default
VPC-native traffic routing Enabled
Pod address range 10.122.128.0/17
Service address range 10.123.0.0/22
Intranode visibility Enabled
NodeLocal DNSCache Enabled
HTTP Load Balancing Enabled
Subsetting for L4 Internal Load Balancers Disabled
Control plane authorized networks
office (192.169.1.0/24)
Network policy Disabled
Dataplane V2 Disabled
我也有防火墙规则允许 http/s
❯ gcloud compute firewall-rules list
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED
default-allow-http default INGRESS 1000 tcp:80 False
default-allow-https default INGRESS 1000 tcp:443 False
....
如果它在 GCP VM 上工作,但在您的本地不起作用,这意味着它要么与 GCP 防火墙有关,要么您的 GKE 没有 public IP。
首先检查您的集群 IP 是否为 public,如果是,则需要添加允许通过 HTTPS(443 端口)的流量的防火墙规则。您可以在 gcloud
工具中或通过 GCP 控制台“防火墙 -> 创建防火墙规则”执行此操作。
如果它是从您的 VPC 而不是从外部工作的,那是因为您创建了一个 private GKE cluster。 master 只能通过私有 IP 或自动网络访问。
说到 authorized network,您有一个授权人 office (192.169.1.0/24)
。遗憾的是,您在办公室网络中注册了一个私有 IP 范围,而不是用于访问互联网的 public IP。
要解决这个问题,请转到为您提供 public IP 的站点。然后使用 IP/32 更新集群的授权网络,然后重试。
我执行了以下命令
gcloud container clusters get-credentials my-noice-cluter --region=asia-south2
并且该命令成功运行。我可以通过 kubectl config view
但是当我尝试 kubectl 时,我超时了
kubectl 配置视图
❯ kubectl get pods -A -o wide
Unable to connect to the server: dial tcp <some noice ip>:443: i/o timeout
如果我在 gcp 中创建一个 VM 并在那里使用 kubectl 或使用 gcp 的云 shell,它可以工作,但它不能在我们本地的笔记本电脑和 PC 上工作。
关于我们集群的一些网络信息:-
Private cluster Disabled
Network default
Subnet default
VPC-native traffic routing Enabled
Pod address range 10.122.128.0/17
Service address range 10.123.0.0/22
Intranode visibility Enabled
NodeLocal DNSCache Enabled
HTTP Load Balancing Enabled
Subsetting for L4 Internal Load Balancers Disabled
Control plane authorized networks
office (192.169.1.0/24)
Network policy Disabled
Dataplane V2 Disabled
我也有防火墙规则允许 http/s
❯ gcloud compute firewall-rules list
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED
default-allow-http default INGRESS 1000 tcp:80 False
default-allow-https default INGRESS 1000 tcp:443 False
....
如果它在 GCP VM 上工作,但在您的本地不起作用,这意味着它要么与 GCP 防火墙有关,要么您的 GKE 没有 public IP。
首先检查您的集群 IP 是否为 public,如果是,则需要添加允许通过 HTTPS(443 端口)的流量的防火墙规则。您可以在 gcloud
工具中或通过 GCP 控制台“防火墙 -> 创建防火墙规则”执行此操作。
如果它是从您的 VPC 而不是从外部工作的,那是因为您创建了一个 private GKE cluster。 master 只能通过私有 IP 或自动网络访问。
说到 authorized network,您有一个授权人 office (192.169.1.0/24)
。遗憾的是,您在办公室网络中注册了一个私有 IP 范围,而不是用于访问互联网的 public IP。
要解决这个问题,请转到为您提供 public IP 的站点。然后使用 IP/32 更新集群的授权网络,然后重试。