问题标签 [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.
google-cloud-platform - 如何将外部流量映射到 GCP Traffic Director 上的内部服务网格?
我已经使用Traffic Director setup with automatic Envoy injection tutorial建立了一个简单的 GKE 集群,该集群连接到 GCP Traffic Director 。
下一步是如何将外部流量映射到仅内部的 Traffic Director 后端服务?
基本上,我的目标是拥有一个带有 IP 地址的外部负载均衡器,该地址接收外部流量并将其路由到 Traffic Director 服务网格,以在不同的网络端点组之间分割流量。
我尝试了以下方法:
- 在网络服务-> 负载平衡--> 中手动创建一个外部负载平衡器,但是后端列表不包括 Traffic Director 后端服务,因此我无法创建一个具有外部 IP 并将其重定向到内部服务网格的服务。
- 安装NGINX 入口控制器图表并通过
.yaml
映射到 k8s 集群服务的入口控制器安装入口控制器 -->这将创建一个外部负载均衡器,但它只是直接进入服务而不是通过 Traffic Director
入口:
服务:
部署:
上面的部署和服务直接取自教程。
官方文档中似乎有一个使用网格边缘的二级网关处理入口流量的概念,但它只是概念性的,并没有提供实际操作的方法。
如何使用外部负载均衡器将外部流量映射到 GCP Traffic Director 管理的服务网格中,以便将高级流量配置到 GKE?
kubernetes - 如何在 Kubernetes 服务中将 Session Affinity 设置为“客户端 IP、端口和协议”
我在 GKE 有一个 Kubernetes 服务。目前它有 Session Affinity:ClientIP。在 GCP 负载均衡器控制台中,它显示为“客户端 IP”
我应该将它设置为什么值,以便在 GCP 负载均衡器控制台中显示为“客户端 IP、端口和协议”?
我看到的所有文档都提到 Session Affinity 可以分配为“ClientIP”或“no”(默认情况下)。他们都没有告诉我有第三个选项,而如果你检查 GCP 负载均衡器,它有多个会话关联选项:无;客户端IP;客户端 IP 和协议;客户端 IP、端口和协议
这是服务文件:
google-app-engine - 为 App Engine 负载平衡器创建后端服务
我们想为我们的 Flex App 引擎创建一个后端服务。
在云日志和我的 GCP 发票中,我可以看到我已经有一个 HTTP 负载均衡器,但是当我转到网络服务 -> 负载均衡时,我没有找到我的负载均衡器。
我认为负载均衡器是由 GCP 自动创建的,一旦你创建了一个 APP 引擎。但是我怎样才能为它创建一个后端服务。目标是自定义负载均衡器以更好地处理 Web 套接字超时。
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 映射、主机和路径规则,但无法找到与地理定位请求相关的任何内容!
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.com
并www.service-1.company.com
指向同一个负载均衡器。并www.service.company.com
指向 L4 和 L7 LB。
google-cloud-platform - 为具有动态主机名的 gcp 实例生成证书 ssl
我们设置了一个 gcp 负载均衡器,它将接收到的请求传输到后端服务。负载均衡器可通过 HTTPS 访问。我们希望其他内部服务可以通过 HTTPS 访问后端。由于该服务是 gcp 实例组的一部分,因此实例名称不固定。它的格式为主机名-<dynamic_suffix>。如何为动态主机名生成 ssl 证书?PS:我们不能拥有带有通配符主机名的证书-*
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 注释
将服务类型从 更改
LoadBalancer
为ClusterIP
。
NGINX 入口路由
我已经独立测试了 NGINX Ingress 到我的 Web 应用程序的基于路径的路由规则。当 NGINX Ingress 配置了 TCP 负载均衡器时,此方法有效。我已经以通常的方式设置了我的应用程序部署和服务配置。
外部 HTTPS 负载均衡器
我使用以下设置创建了一个外部 HTTPS 负载均衡器:
- 后端:添加了命名为后端的区域 NEG
NGINX_NEG
。后端配置为接受端口 80 上的 HTTP 请求。我通过 TCP 协议在服务端口上配置了健康检查。我添加了防火墙规则以允许来自这里的传入流量130.211.0.0/22
,35.191.0.0/16
如此处所述https://cloud.google.com/kubernetes-engine/docs/how-to/standalone-neg#traffic_does_not_reach_the_endpoints
什么不工作
设置外部负载均衡器后不久,我可以看到 GCP 在其中一个区域 NEG 下创建了一个新端点。但这显示为“不健康”。对外部 HTTPS 负载平衡器的请求返回 502 错误。
我不确定在 GCP 日志记录中从哪里开始调试此配置。我已启用运行状况检查的日志记录,但日志中没有显示任何内容。
/healthz
我在 NGINX Ingress 控制器的路径上配置了健康检查。那似乎也不起作用。
任何有关如何使其工作的提示将不胜感激。谢谢!
编辑1:根据要求,我运行了kubectl get svcneg -o yaml --namespace=<namespace>
,这是输出
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 虚拟机。然后我尝试在各个项目中创建实例组,但是当我尝试在项目共享中创建后端服务时看不到实例组。
我希望有一个负载均衡器,这可能吗,或者我必须为每个项目创建一个。
google-cloud-platform - VM 实例 - 配置外部负载均衡器时出现 502 状态错误
我在我的谷歌云项目上配置了一个带有 VM 实例的 HTTP 外部负载均衡器。当我尝试通过外部 HTTP 负载平衡器 IP 地址连接后端 VM 实例时;我收到 502 状态错误。因此,我无法使用外部 HTTP 负载平衡器启动我的 Web 服务器。请建议是否需要任何配置来设置负载均衡器。