Я запустил частный кластер GKE с использованием ресурса terraform "google_container_cluster"
с блоком private_cluster_config
.
Я добавил master_authorized_networks_config
к разрешить мой собственный IP-адрес в авторизованных сетях для GKE.
И я добавил k8s пространство имен , используя ресурс terraform "kubernetes_namespace"
.
Я также установил все Google, провайдеры kubernetes, токен k8s, cluster_ca_certificate et c правильно, и пространство имен действительно было предоставлено этой терраформой.
resource "google_container_cluster" "k8s_cluster" {
# .....
# .....
private_cluster_config {
enable_private_nodes = true
enable_private_endpoint = false
master_ipv4_cidr_block = "172.16.0.0/28"
}
ip_allocation_policy { } # enables VPC-native
master_authorized_networks_config {
cidr_blocks {
{
cidr_block = "0.0.0.0/0"
display_name = "World"
}
}
}
# .....
# .....
}
data "google_client_config" "google_client" {}
data "google_container_cluster" "k8s_cluster" {
name = google_container_cluster.k8s_cluster.name
location = var.location
}
provider "kubernetes" {
# following this example https://www.terraform.io/docs/providers/google/d/datasource_client_config.html#example-usage-configure-kubernetes-provider-with-oauth2-access-token
version = "1.11.1"
load_config_file = false
host = google_container_cluster.k8s_cluster.endpoint
token = data.google_client_config.google_client.access_token
cluster_ca_certificate = base64decode(
data.google_container_cluster.k8s_cluster.master_auth.0.cluster_ca_certificate
)
}
resource "kubernetes_namespace" "namespaces" {
depends_on = [google_container_node_pool.node_pool]
for_each = ["my-ns"]
metadata {
name = each.value
}
}
Затем я запустил terraform apply
, и пространство имен было создано отлично ✅✅✅
kubernetes_namespace.namespaces["my-ns"]: Creating...
kubernetes_namespace.namespaces["my-ns"]: Creation complete after 1s [id=my-ns]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Однако, когда я снова запускаю terraform apply
или terraform plan
и terraform пытается обновить sh ресурс пространства имен,
data.google_container_cluster.k8s_cluster: Refreshing state...
kubernetes_namespace.namespaces["my-ns"]: Refreshing state... [id=my-ns]
выдает следующую ошибку периодически . 10 ❌ ❌
Error: Get http://localhost/api/v1/namespaces/my-ns: dial tcp 127.0.0.1:80: connect: connection refused
Иногда оно проходит, а иногда и сбой - с перерывами .
Куда бы вы посоветовали мне обратиться, чтобы исправить эту прерывистую ошибку?