У меня есть кластер Kubernetes в GCP (GKE), который не может подключиться к Memorystore (Redis).
Все ресурсы, связанные с проектом, находятся в выделенной сети.
сетевой модуль:
resource "google_compute_network" "my_project" {
name = "my_project"
auto_create_subnetworks = true
}
output "my_project_network_self_link" {
value = google_compute_network.my_project_network.self_link
}
Я использую сеть в кластере GKE (network = "${var.network_link}"
):
resource "google_container_cluster" "my_project" {
name = "my_project-cluster"
location = "us-central1"
node_locations = ["us-central1-a", "us-central1-b"]
network = "${var.network_link}"
# We can't create a cluster with no node pool defined, but we want to only use
# separately managed node pools. So we create the smallest possible default
# node pool and immediately delete it.
remove_default_node_pool = true
initial_node_count = 1
master_auth {
username = ""
password = ""
client_certificate_config {
issue_client_certificate = false
}
}
}
Пулы узлов опущены.
и я установил сеть как authorized_network
в конфигурации хранилища памяти:
resource "google_redis_instance" "cache" {
name = "my_project-redis"
tier = "STANDARD_HA"
memory_size_gb = 1
authorized_network = "${var.network_link}"
# location_id = "us-central1-a"
redis_version = "REDIS_4_0"
display_name = "my_project Redis cache"
}
variable "network_link" {
description = "The link of the network instance is in"
type = string
}
Я предполагаю, что проблема связана с сетью, потому что ранее при использовании сети по умолчанию это работало нормально.
В настоящее время узлы GKE находятся в us-central1-a
и us-central1-b
(указано в сценарии TF), а хранилище памяти находится в us-central1-c
. Таким образом, кластер и Redis находятся в одном VP C, но в разных подсетях. Не в этом ли проблема?