我的虚拟机可以直接访问 google 容器引擎中的 "services" 吗?
Can my VM directly access "services" in the google container engine?
我正在尝试使用 Google 云和容器引擎,但我无法让我的 VM 访问我的 kubernetes "service"
我的场景:
我在计算引擎中部署了一个 Jenkins VM(一切都是默认网络)。然后我部署了一个 Container Engine 集群,我启动了一个 docker 注册表(带有一个 pod 文件)并在 pod 前面使用了一个 "service"。我可以从所有集群主机和主机访问 docker 注册表就好了。我还尝试创建一个外部负载平衡器,以便 docker 注册表为 public。一切正常。
但是,我不希望注册表是 public。我只希望我的 Jenkins VM 能够访问容器集群中的 docker 注册表 "service"。但它不起作用。看起来它们在不同的子网上。 Jenkins 的 IP 为 10.240.126.57,Container 集群中的 docker-registry-service 的 IP 为 10.131.249.127。
实现此目标的最佳方法是什么?我玩过 "Routes" 但出于某种原因我无法让它工作。旁注:所有 VM 都可以 ping 通所有容器,反之亦然,但我就是无法访问 "Container engine service IPs"。
尝试:
gcloud compute routes create svc-fwd-1 --destination-range 10.131.240.0/20 --next-hop-instance k8s-<clusterName>-node-1 --next-hop-instance-zone <zone>
(替换为您的集群名称,以及集群所在的区域)
GCE 虚拟机在网络 CIDR 范围内(默认网络为 10.240.0.0/16)被赋予私有 IP。
GKE pods 在集群的容器 CIDR 范围内(在您的情况下为 10.128.0.0/14)被赋予私有 IP。
GKE 服务在集群服务 CIDR 范围内(在您的情况下为 10.131.240.0/20)被赋予私有 IP。
GKE 创建 GCE 路由以获取正确的流量 pods,但不添加任何内容以从集群外部公开服务。
上面的 GCE 路由会将默认网络上的任何流量转发到 10.131.240.0/20 到集群的节点 1。那里的服务代理 运行 将负责将流量获取到实现该服务的 pod。如果愿意,您甚至可以为每个 gke 节点添加一条路由,以平衡每个服务代理之间的流量。
注意:我还没有实际尝试过,如果有效请告诉我! :)
我正在尝试使用 Google 云和容器引擎,但我无法让我的 VM 访问我的 kubernetes "service"
我的场景: 我在计算引擎中部署了一个 Jenkins VM(一切都是默认网络)。然后我部署了一个 Container Engine 集群,我启动了一个 docker 注册表(带有一个 pod 文件)并在 pod 前面使用了一个 "service"。我可以从所有集群主机和主机访问 docker 注册表就好了。我还尝试创建一个外部负载平衡器,以便 docker 注册表为 public。一切正常。
但是,我不希望注册表是 public。我只希望我的 Jenkins VM 能够访问容器集群中的 docker 注册表 "service"。但它不起作用。看起来它们在不同的子网上。 Jenkins 的 IP 为 10.240.126.57,Container 集群中的 docker-registry-service 的 IP 为 10.131.249.127。
实现此目标的最佳方法是什么?我玩过 "Routes" 但出于某种原因我无法让它工作。旁注:所有 VM 都可以 ping 通所有容器,反之亦然,但我就是无法访问 "Container engine service IPs"。
尝试:
gcloud compute routes create svc-fwd-1 --destination-range 10.131.240.0/20 --next-hop-instance k8s-<clusterName>-node-1 --next-hop-instance-zone <zone>
(替换为您的集群名称,以及集群所在的区域)
GCE 虚拟机在网络 CIDR 范围内(默认网络为 10.240.0.0/16)被赋予私有 IP。
GKE pods 在集群的容器 CIDR 范围内(在您的情况下为 10.128.0.0/14)被赋予私有 IP。
GKE 服务在集群服务 CIDR 范围内(在您的情况下为 10.131.240.0/20)被赋予私有 IP。
GKE 创建 GCE 路由以获取正确的流量 pods,但不添加任何内容以从集群外部公开服务。
上面的 GCE 路由会将默认网络上的任何流量转发到 10.131.240.0/20 到集群的节点 1。那里的服务代理 运行 将负责将流量获取到实现该服务的 pod。如果愿意,您甚至可以为每个 gke 节点添加一条路由,以平衡每个服务代理之间的流量。
注意:我还没有实际尝试过,如果有效请告诉我! :)