问题标签 [gcp-load-balancer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
371 浏览

google-cloud-platform - 如何将外部流量映射到 GCP Traffic Director 上的内部服务网格?

我已经使用Traffic Director setup with automatic Envoy injection tutorial建立了一个简单的 GKE 集群,该集群连接到 GCP Traffic Director 。

下一步是如何将外部流量映射到仅内部的 Traffic Director 后端服务?

基本上,我的目标是拥有一个带有 IP 地址的外部负载均衡器,该地址接收外部流量并将其路由到 Traffic Director 服务网格,以在不同的网络端点组之间分割流量。

我尝试了以下方法:

  1. 在网络服务-> 负载平衡--> 中手动创建一个外部负载平衡器,但是后端列表不包括 Traffic Director 后端服务,因此我无法创建一个具有外部 IP 并将其重定向到内部服务网格的服务。

缺少后端服务

  1. 安装NGINX 入口控制器图表并通过.yaml映射到 k8s 集群服务的入口控制器安装入口控制器 -->这将创建一个外部负载均衡器,但它只是直接进入服务而不是通过 Traffic Director

入口:

服务:

部署:

上面的部署和服务直接取自教程。

官方文档中似乎有一个使用网格边缘的二级网关处理入口流量的概念,但它只是概念性的,并没有提供实际操作的方法。

如何使用外部负载均衡器将外部流量映射到 GCP Traffic Director 管理的服务网格中,以便将高级流量配置到 GKE?

0 投票
1 回答
521 浏览

kubernetes - 如何在 Kubernetes 服务中将 Session Affinity 设置为“客户端 IP、端口和协议”

我在 GKE 有一个 Kubernetes 服务。目前它有 Session Affinity:ClientIP。在 GCP 负载均衡器控制台中,它显示为“客户端 IP”

我应该将它设置为什么值,以便在 GCP 负载均衡器控制台中显示为“客户端 IP、端口和协议”?

我看到的所有文档都提到 Session Affinity 可以分配为“ClientIP”或“no”(默认情况下)。他们都没有告诉我有第三个选项,而如果你检查 GCP 负载均衡器,它有多个会话关联选项:无;客户端IP;客户端 IP 和协议;客户端 IP、端口和协议

这是服务文件:

0 投票
0 回答
172 浏览

google-app-engine - GCP Cloud http负载均衡器上的websocket_handshake_failed,响应为403

websocket_handshake_failed我们在 GCP 负载均衡器上获得了数千个。我们的环境是:具有自动缩放功能的 App Engine Flex 环境 + Postgress 云 SQL 我们有一个聊天 SaaS 应用程序,因此我们使用套接字。在日志记录中,我看到websocket_handshake_failed每小时 +1000,

在此处输入图像描述

以下是单个错误的日志示例:

在前端,我得到一个样本connection: close error,不确定是否相关: 在此处输入图像描述

0 投票
1 回答
79 浏览

google-app-engine - 为 App Engine 负载平衡器创建后端服务

我们想为我们的 Flex App 引擎创建一个后端服务

在云日志和我的 GCP 发票中,我可以看到我已经有一个 HTTP 负载均衡器,但是当我转到网络服务 -> 负载均衡时,我没有找到我的负载均衡器。

在此处输入图像描述

我认为负载均衡器是由 GCP 自动创建的,一旦你创建了一个 APP 引擎。但是我怎样才能为它创建一个后端服务。目标是自定义负载均衡器以更好地处理 Web 套接字超时。

0 投票
3 回答
61 浏览

google-cloud-platform - 我们可以使用基于用户地理位置的 GCP 的 L7 HTTPS 负载均衡器对后端进行地理定位吗?

我有三个不同的 GKE 集群,分布在三个不同的区域。所有三个集群都位于三个不同的 L7 HTTPS 负载均衡器后面。所有三个集群中的服务都可以通过三个不同的 URL 访问:

所有三个集群都有一些特定于区域的服务。例如:来自美国的用户无法完全满足来自欧盟或亚洲服务的某些特定请求。

我们当前的要求是www.someservice.com为所有三个区域集群只使用一个 L7 HTTPS LB 和一个域。

但是,我们希望对传入的请求进行地理定位。假设来自美国的用户点击www.someservice.com,那么他们的请求应该被路由到美国地区的 GKE 集群,我们希望为来自不同地区的所有其他用户提供这种模式(如下图所示)。

在此处输入图像描述

有没有办法在 GCP 的 L7 HTTPS LB 中实现这种路由?我正在查看 URL 映射、主机和路径规则,但无法找到与地理定位请求相关的任何内容!

0 投票
1 回答
235 浏览

dns - 我们可以将多个域名指向同一个 IP 地址吗?

我有两个 GKE 集群(GKE-OLD 和 GKE-NEW)在两个单独的负载均衡器后面运行。

GKE-OLD 集群在 L4 全局负载均衡器之后运行,而 GKE-NEW 集群在 L7 负载均衡器之后运行。

集群的服务可以通过两个单独的域名访问。

www.service.company.com指向运行 GKE-OLD 集群的 L4 负载均衡器。

www.service-1.company.com指向运行 GKE-NEW 集群的 L7 负载均衡器。

在此处输入图像描述

我想最终摆脱旧的集群和与之相关的 LB。但是,我想保留(www.service.company.com)旧集群中的www.service-1.company.com域名,并最终停用与新集群关联的域名。

在我停用旧集群之前,我想要的当前设置应该如下所示: 在此处输入图像描述

我的问题是:

我们是否可以同时拥有多个指向同一个 IP 地址 (LB) 的域和指向多个 IP 地址 (LB) 的同一个域? www.service.company.comwww.service-1.company.com指向同一个负载均衡器。并www.service.company.com指向 L4 和 L7 LB。

0 投票
2 回答
242 浏览

google-cloud-platform - 为具有动态主机名的 gcp 实例生成证书 ssl

我们设置了一个 gcp 负载均衡器,它将接收到的请求传输到后端服务。负载均衡器可通过 HTTPS 访问。我们希望其他内部服务可以通过 HTTPS 访问后端。由于该服务是 gcp 实例组的一部分,因此实例名称不固定。它的格式为主机名-<dynamic_suffix>。如何为动态主机名生成 ssl 证书?PS:我们不能拥有带有通配符主机名的证书-*

0 投票
1 回答
645 浏览

nginx - 将外部 HTTPS 负载均衡器与公开为区域 NEG 的 NGINX 入口连接

我想要完成的

我正在尝试将外部 HTTPS (L7) 负载均衡器与暴露为区域网络端点组 (NEG) 的 NGINX 入口连接。我的 Kubernetes 集群(在 GKE 中)包含几个我已公开为 ClusterIP 服务的 Web 应用程序部署。

我知道 NGINX Ingress 对象可以直接暴露为 TCP 负载均衡器。但是,这不是我想要的。相反,在我的架构中,我想使用外部 HTTPS 负载平衡器对 HTTPS 请求进行负载平衡。我希望这个外部负载均衡器提供 SSL/TLS 终止并将 HTTP 请求转发到我的 Ingress 资源。

理想的架构应该是这样的:

HTTPS 请求 --> 外部 HTTPS 负载均衡器 --> HTTP 请求 --> NGINX 入口区域 NEG --> 适当的 Web 应用程序

我想将来自 NGINX Ingress 的区域 NEG 添加为 HTTPS 负载均衡器的后端。这就是事情分崩离析的地方。

我做了什么

NGINX 入口配置

我正在使用来自官方 kubernetes/ingress-nginx 项目的默认 NGINX Ingress 配置。具体来说,这个 YAML 文件https://github.com/kubernetes/ingress-nginx/blob/master/deploy/static/provider/cloud/deploy.yaml。请注意,我已将 NGINX 控制器服务部分更改如下:

  • 添加了 NEG 注释

  • 将服务类型从 更改LoadBalancerClusterIP

NGINX 入口路由

我已经独立测试了 NGINX Ingress 到我的 Web 应用程序的基于路径的路由规则。当 NGINX Ingress 配置了 TCP 负载均衡器时,此方法有效。我已经以通常的方式设置了我的应用程序部署和服务配置。

外部 HTTPS 负载均衡器

我使用以下设置创建了一个外部 HTTPS 负载均衡器:

什么不工作

设置外部负载均衡器后不久,我可以看到 GCP 在其中一个区域 NEG 下创建了一个新端点。但这显示为“不健康”。对外部 HTTPS 负载平衡器的请求返回 502 错误。

  • 我不确定在 GCP 日志记录中从哪里开始调试此配置。我已启用运行状况检查的日志记录,但日志中没有显示任何内容。

  • /healthz我在 NGINX Ingress 控制器的路径上配置了健康检查。那似乎也不起作用。

任何有关如何使其工作的提示将不胜感激。谢谢!

编辑1:根据要求,我运行了kubectl get svcneg -o yaml --namespace=<namespace>,这是输出

0 投票
2 回答
291 浏览

google-cloud-platform - 使用共享 VPC 的单个 GCP 外部负载均衡器

我在 GCP 中使用共享 VPC 的项目很少。例如

project-shared 具有由 project1 / project2 使用的托管服务,例如数据库等。Project1 和 Project2 具有公开 API 的 VM。

我想在 project-shared 中创建一个负载均衡器,可用于使用不同路径路由到 project1-api 或 project2-api vms。我尝试在项目共享中创建实例组,但看不到列出的 project1/2-api 虚拟机。然后我尝试在各个项目中创建实例组,但是当我尝试在项目共享中创建后端服务时看不到实例组。

我希望有一个负载均衡器,这可能吗,或者我必须为每个项目创建一个。

0 投票
1 回答
77 浏览

google-cloud-platform - VM 实例 - 配置外部负载均衡器时出现 502 状态错误

我在我的谷歌云项目上配置了一个带有 VM 实例的 HTTP 外部负载均衡器。当我尝试通过外部 HTTP 负载平衡器 IP 地址连接后端 VM 实例时;我收到 502 状态错误。因此,我无法使用外部 HTTP 负载平衡器启动我的 Web 服务器。请建议是否需要任何配置来设置负载均衡器。