我的 NEG 没有连接到我的云 运行 函数
My NEGs are not connecting to my cloud run functions
我设置了一个 GCE 全局负载均衡器和 NEG。我不清楚 NEG 如何连接到云 运行 应用程序。看起来 NEG 的 Service name
只需要匹配相应的云 运行 应用名称。
我已经这样做了,但它似乎没有连接。我什至无法在文档中找到如何解决此链接问题。
通过 Terraform 创建了一个 neg
resource "google_compute_region_network_endpoint_group" "neg" {
network_endpoint_type = "SERVERLESS"
region = us-east1
cloud_run {
service = "my-cloudrun-app"
}
}
然后部署了一个云运行应用
gcloud run deploy my-cloudrun-app --region us-east1
我的理解是,如果云 运行 应用程序名称与它应该连接的服务名称匹配。我可以看到 NEG 已连接到我的 GCE 负载均衡器并且云 运行 应用已成功部署,但 NEG 似乎没有路由到我的函数。
我不知道你是否这样做了,但你需要更多才能在负载均衡器上部署你的 neg。这里缺少的部分
resource "google_compute_managed_ssl_certificate" "default" {
name = "cert"
managed {
domains = ["${var.domain}"]
}
}
resource "google_compute_backend_service" "default" {
name = "app-backend"
protocol = "HTTP"
port_name = "http"
timeout_sec = 30
backend {
group = google_compute_region_network_endpoint_group.neg.id
}
}
resource "google_compute_url_map" "default" {
name = "app-urlmap"
default_service = google_compute_backend_service.default.id
}
resource "google_compute_target_https_proxy" "default" {
name = "https-proxy"
url_map = google_compute_url_map.default.id
ssl_certificates = [
google_compute_managed_ssl_certificate.default.id
]
}
resource "google_compute_global_forwarding_rule" "default" {
name = "lb"
target = google_compute_target_https_proxy.default.id
port_range = "443"
ip_address = google_compute_global_address.default.address
}
resource "google_compute_global_address" "default" {
name = "address"
}
容易吗??绝对不。如果您需要更多详细信息、指导或解释,请告诉我。
我正在使用这个官方 GCP 模块来连接它(实际上它确实非常简单!)https://github.com/terraform-google-modules/terraform-google-lb-http/tree/v6.0.1/modules/serverless_negs
我发现它确实按照我预期的方式工作,问题只是我在我创建的一个区域 NEG 后面没有云 运行 应用程序(我以为我有)。我实际上创建了几个区域 NEG,弄得一团糟,LB 将我的流量路由到的区域 NEG 没有它指向的相应云 运行 应用程序。
我是如何解决这个问题的:
- 找到负载均衡器配置的后端
- 在 GCP 控制台中,我能够查看后端以及为其配置的所有区域 NEG
- 点击 refresh/curl 多次并在后端页面的 gcp 控制台中看到其中一个区域 NEG 实际上正在接收流量 - 所以我至少能够看到我的流量被路由到哪个 NEG至
- 意识到我没有部署云 运行 应用程序,其名称是为区域 NEG 配置的
我仍然觉得了解所有这些组件如何协同工作可能会更好,但是 Backend service details
页面的流量图是救命稻草!
我设置了一个 GCE 全局负载均衡器和 NEG。我不清楚 NEG 如何连接到云 运行 应用程序。看起来 NEG 的 Service name
只需要匹配相应的云 运行 应用名称。
我已经这样做了,但它似乎没有连接。我什至无法在文档中找到如何解决此链接问题。
通过 Terraform 创建了一个 neg
resource "google_compute_region_network_endpoint_group" "neg" {
network_endpoint_type = "SERVERLESS"
region = us-east1
cloud_run {
service = "my-cloudrun-app"
}
}
然后部署了一个云运行应用
gcloud run deploy my-cloudrun-app --region us-east1
我的理解是,如果云 运行 应用程序名称与它应该连接的服务名称匹配。我可以看到 NEG 已连接到我的 GCE 负载均衡器并且云 运行 应用已成功部署,但 NEG 似乎没有路由到我的函数。
我不知道你是否这样做了,但你需要更多才能在负载均衡器上部署你的 neg。这里缺少的部分
resource "google_compute_managed_ssl_certificate" "default" {
name = "cert"
managed {
domains = ["${var.domain}"]
}
}
resource "google_compute_backend_service" "default" {
name = "app-backend"
protocol = "HTTP"
port_name = "http"
timeout_sec = 30
backend {
group = google_compute_region_network_endpoint_group.neg.id
}
}
resource "google_compute_url_map" "default" {
name = "app-urlmap"
default_service = google_compute_backend_service.default.id
}
resource "google_compute_target_https_proxy" "default" {
name = "https-proxy"
url_map = google_compute_url_map.default.id
ssl_certificates = [
google_compute_managed_ssl_certificate.default.id
]
}
resource "google_compute_global_forwarding_rule" "default" {
name = "lb"
target = google_compute_target_https_proxy.default.id
port_range = "443"
ip_address = google_compute_global_address.default.address
}
resource "google_compute_global_address" "default" {
name = "address"
}
容易吗??绝对不。如果您需要更多详细信息、指导或解释,请告诉我。
我正在使用这个官方 GCP 模块来连接它(实际上它确实非常简单!)https://github.com/terraform-google-modules/terraform-google-lb-http/tree/v6.0.1/modules/serverless_negs
我发现它确实按照我预期的方式工作,问题只是我在我创建的一个区域 NEG 后面没有云 运行 应用程序(我以为我有)。我实际上创建了几个区域 NEG,弄得一团糟,LB 将我的流量路由到的区域 NEG 没有它指向的相应云 运行 应用程序。
我是如何解决这个问题的:
- 找到负载均衡器配置的后端
- 在 GCP 控制台中,我能够查看后端以及为其配置的所有区域 NEG
- 点击 refresh/curl 多次并在后端页面的 gcp 控制台中看到其中一个区域 NEG 实际上正在接收流量 - 所以我至少能够看到我的流量被路由到哪个 NEG至
- 意识到我没有部署云 运行 应用程序,其名称是为区域 NEG 配置的
我仍然觉得了解所有这些组件如何协同工作可能会更好,但是 Backend service details
页面的流量图是救命稻草!