我需要从另一个GCP区域访问运行在Internal Load Balancer上的GKE Nginx Ingress服务上运行的内部应用程序。
我完全知道,无法使用直接的Google联网,这是一个巨大的限制(GCP功能请求)。
可以通过AWS的VPN隧道很好地访问Internal Load Balancer,但是我不确定在同一网络下的GCP区域之间创建这样的隧道是一个好主意。
解决方法受到欢迎!
kubernetes google-kubernetes-engine google-cloud-internal-load-balancer
我尝试使用本文档中提到的以下注释创建内部负载均衡器:
networking.gke.io/internal-load-balancer-allow-global-access: "true"
Run Code Online (Sandbox Code Playgroud)
这是完整的清单:
apiVersion: v1
kind: Service
metadata:
name: ilb-global
annotations:
cloud.google.com/load-balancer-type: "Internal"
networking.gke.io/internal-load-balancer-allow-global-access: "true"
labels:
app: hello
spec:
type: LoadBalancer
selector:
app: hello
ports:
- port: 80
targetPort: 8080
protocol: TCP
Run Code Online (Sandbox Code Playgroud)
我尝试从不同区域的 VM 访问负载均衡器,但该 VM 无法到达端点。
但是,根据本文档,我在创建的转发规则上运行了以下命令(GCP 为所有可以使用gcloud compute forwarding-rules list命令检索的负载均衡器创建了一个带有随机名称的转发规则)以更新全局访问:
gcloud beta compute forwarding-rules update abcrandomnamehehe --region [REGION-NAME] --allow-global-access
Run Code Online (Sandbox Code Playgroud)
运行上述命令并手动更新负载均衡器后,可以从所有区域访问端点。这个运行gcloud命令的手动步骤是必要的吗?
如果是,那么注释的用途是什么?我也使用最新的可用 GKE 版本 ( 1.15.4-gke.22 )进行注释,但如果不使用该gcloud命令进行更新,则该注释不起作用。是我遗漏了什么还是 GCP 中的错误?
load-balancing google-cloud-platform kubernetes google-kubernetes-engine google-cloud-internal-load-balancer