Я пытаюсь создать балансировщик нагрузки HTTP (S), используя terraform на GCP. Я хочу, чтобы он обслуживал клиентов HTTP и HTTPS. Я использую следующие методы для создания интерфейсной части (google_compute_global_forwarding_rule) LB.
// SSL
resource "google_compute_global_forwarding_rule" "default-ssl" {
name = "frontend-https"
target = google_compute_target_https_proxy.default-ssl.self_link
port_range = "443"
}
resource "google_compute_target_https_proxy" "default-ssl" {
provider = google-beta
name = "target-proxy-ssl"
description = "a description"
ssl_certificates = ["mysslcert"]
url_map = google_compute_url_map.default.self_link
}
// non SSL
resource "google_compute_global_forwarding_rule" "default" {
name = "frontend-http"
target = google_compute_target_http_proxy.default.self_link
port_range = "80"
}
resource "google_compute_target_http_proxy" "default" {
project = var.project_id
provider = google-beta
name = "target-proxy"
description = "a description"
url_map = google_compute_url_map.default.self_link
}
проблема в том, что он выделяет два IP-адреса; Один для HTTP и один для HTTPS. Но когда я создаю Loadbalancer на GCP вручную (без терраформирования), я могу создать IP-адрес и выбрать протокол. таким образом я могу использовать тот же IP-адрес при создании следующего правила внешнего интерфейса.
терраформа создана;
руководство создано;
Примите вашу помощь по созданию балансировщика нагрузки, имеющего только один IP-адрес.