gpt4 book ai didi

google-compute-engine - 从计算引擎实例连接到容器服务 clusterip

转载 作者:行者123 更新时间:2023-12-02 17:36:10 26 4
gpt4 key购买 nike

我有一些在常规 Compute Engine 节点上运行的应用程序。此外,我还有一个要将应用程序迁移到的容器集群。迟早所有应用程序都应该位于容器引擎中,以便服务发现变得简单。但目前,Compute Engine 上的应用程序需要能够与容器引擎应用程序进行通信。容器引擎应用程序都注册为服务。为了进行测试,我使用了“echoheaders”图像:

$ kubectl describe svc echoheaders
Name: echoheaders
Namespace: default
Labels: app=echoheaders
Selector: app=echoheaders
Type: ClusterIP
IP: 10.115.249.140
Port: http 80/TCP
Endpoints: 10.112.1.3:8080
Session Affinity: None
No events.

现在的问题是,我只能通过 10.112.1.3:8080 直接从 Compute Engine 节点访问 pod 服务,而不能通过其 clusterip 10.115.249.140:80 访问。这只适用于实际的 Compute Engine 节点。

我已经尝试创建一条指向容器引擎节点之一的堡垒路由,但它仍然不起作用:

$ gcloud compute routes describe gke-cluster-1-services 
creationTimestamp: '2016-04-05T05:39:55.275-07:00'
description: Route to Cluster-1 service IP range
destRange: 10.115.240.0/20
id: '926323215677918452'
kind: compute#route
name: gke-cluster-1-services
network: https://www.googleapis.com/compute/v1/projects/infrastructure-1173/global/networks/infra
nextHopInstance: https://www.googleapis.com/compute/v1/projects/infrastructure-1173/zones/europe-west1-d/instances/gke-cluster-1-5679a61a-node-f7iu
priority: 500
selfLink: https://www.googleapis.com/compute/v1/projects/infrastructure-1173/global/routes/gke-cluster-1-services

在防火墙上,计算节点可以连接到任何节点。

是否有人碰巧拥有可能缺少的指针,以允许计算引擎节点通过其 ClusterIP 访问计算节点服务?

谢谢

最佳答案

Kubernetes 希望集群中的任何东西都能够与其他东西进行通信。 GKE 通过 advanced routing 实现了这一目标。默认情况下,这允许同一网络上的 GKE 容器和 GCE 节点进行通信。这就是为什么你可以直接击中你的容器。

ClusterIP 只能在 Kubernetes 集群内访问。这些 IP 仅由 Kubernetes 节点上的 iptables 管理。这就是为什么您无法从 GCE 节点访问服务,但可以从容器访问它。

堡垒路由将集群子网的所有流量发送到集群节点。然后该节点正确路由流。以相同的优先级创建到多个节点的多条堡垒路由,以避免单个节点成为热点。

尝试使用集群的完整/14,您可以在容器引擎 UI 中的集群描述下找到它。

关于google-compute-engine - 从计算引擎实例连接到容器服务 clusterip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36428764/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com