gpt4 book ai didi

kubernetes - 从另一个区域访问 GCP 内部负载均衡器

转载 作者:行者123 更新时间:2023-12-03 08:29:57 24 4
gpt4 key购买 nike

我需要从另一个 GCP 区域访问在内部负载均衡器上运行的 GKE Nginx Ingress 服务上运行的内部应用程序。

我完全意识到无法使用直接的 Google 网络,这是一个巨大的限制( GCP Feature Request )。

通过来自 AWS 的 VPN 隧道可以很好地访问内部负载均衡器,但我不确定在同一网络下的 GCP 区域之间创建这样的隧道是个好主意。

欢迎使用变通方法!

最佳答案

在 GCP 的发行说明中,指出:

Global access is an optional parameter for internal LoadBalancer Services that allows clients from any region in your VPC to access the internal TCP/UDP Load Balancer IP address.

Global access is enabled per-Service using the following annotation:
networking.gke.io/internal-load-balancer-allow-global-access: "true".


更新:以下服务适用于 GKE v1.16.x 和更新版本:
apiVersion: v1
kind: Service
metadata:
name: ilb-global
annotations:
# Required to assign internal IP address
cloud.google.com/load-balancer-type: "Internal"

# Required to enable global access
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

对于 GKE v1.15.x 及更早版本:
从位于不同区域的 VM 访问内部负载平衡器 IP 将不起作用。但是 this帮助我使内部负载均衡器成为全局性的。
正如我们所知,内部负载均衡器只不过是一个 forwarding rule ,我们可以使用 gcloud命令以启用全局访问。
  • 首先使用 kubectl 获取负载均衡器的内部 IP 地址并保存其 IP 如下:
    # COMMAND:
    kubectl get services/ilb-global

    # OUTPUT:
    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    ilb-global LoadBalancer 10.0.12.12 10.123.4.5 80:32400/TCP 18m
    请注意“EXTERNAL-IP”的值,或者只需运行以下命令以使其更简单:
    # COMMAND:
    kubectl get service/ilb-global \
    -o jsonpath='{.status.loadBalancer.ingress[].ip}'

    # OUTPUT:
    10.123.4.5
  • GCP 为为此负载均衡器创建的转发规则提供一个随机生成的 ID。如果您有多个转发规则,请使用以下命令找出您刚刚创建的内部负载均衡器:
    # COMMAND:
    gcloud compute forwarding-rules list | grep 10.123.4.5

    # OUTPUT
    NAME REGION IP_ADDRESS IP_PROTOCOL TARGET
    a26cmodifiedb3f8252484ed9d0192 asia-south1 10.123.4.5 TCP asia-south1/backendServices/a26cmodified44904b3f8252484ed9d019
    注意:如果您不在 Linux 上工作或未安装 grep,只需运行 gcloud compute forwarding-rules list并手动查找具有我们正在寻找的 IP 地址的转发规则。
  • 请注意转发规则的名称并运行以下命令以使用 --allow-global-access 更新转发规则(请记住添加测试版,因为它仍然是测试版功能):
    # COMMAND:
    gcloud beta compute forwarding-rules update a26cmodified904b3f8252484ed9d0192 \
    --region asia-south1 --allow-global-access

    # OUTPUT:
    Updated [https://www.googleapis.com/compute/beta/projects/PROJECT/regions/REGION/forwardingRules/a26hehemodifiedhehe490252484ed9d0192].

  • 它已经完成了。现在,您可以从任何区域的任何实例(但相同的 VPC network )访问此内部 IP ( 10.123.4.5 )。

    关于kubernetes - 从另一个区域访问 GCP 内部负载均衡器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55777939/

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