在同一网络中的Compute Engine和GKE群集上运行着一个Web服务应用。
集群中的Pod是否可以使用Web服务应用程序的内部IP地址来调用Web服务应用程序?
您的回答将不胜感激。
谢谢。
答案 0 :(得分:0)
TL; DR
是的。
假设您正在谈论VM
的内部IP地址,则需要创建一条规则,允许从pod address range
到VM
的流量。
假设:
Compute Engine
的{{1}}实例,它被配置为在端口nginx
上运行。80
实例在同一网络中有一个Kubernetes Engine
。您将需要检查GCE
集群的pod ip地址范围。您可以通过以下任一方式来做到这一点:
GKE
(网络用户界面)Cloud Console
可以通过以下任一方式创建防火墙规则:
$ gcloud container clusters describe CLUSTER-NAME --zone=ZONE | grep -i "clusterIpv4Cidr"
(网络用户界面)Cloud Console
命令,如下所示:gcloud
免责声明!
- 在上一个命令(描述集群)中输入值
gcloud compute --project=PROJECT-ID firewall-rules create pod-to-vm \ --direction=INGRESS --priority=1000 --network=default \ --action=ALLOW --rules=tcp:80 --source-ranges=clusterIpv4Cidr \ --target-tags=pod-traffic
- 您需要将
clusterIpv4Cidr
添加到您的pod-traffic
网络标签中!
之后,您可以生成一个Pod,并检查是否可以与VM's
通信:
VM
$ kubectl run -it ubuntu --image=ubuntu -- /bin/bash
您可以通过以下任一方式与$ apt update && apt install -y curl dnsutils
的{{1}}窗格进行通信:
VM
的IP地址:GKE
VM
(root@ubuntu:/# curl IP_ADDRESS
REDACTED
<p><em>Thank you for using nginx.</em></p>
REDACTED
)的名称:VM
您还可以通过运行以下命令来检查名称是否正确解析:
nginx
其他资源: