是否可以在 GKE 的区域集群中创建仅区域节点池?

Ran*_*sts 4 kubernetes google-kubernetes-engine terraform

我有一个用于冗余的区域集群。在此集群中,我想在该区域的 1 个区域中创建一个节点池。这个配置可以吗?我尝试这样做的原因是,我想在 1 个区域中运行像 RabbitMQ 这样的服务以避免分裂,并且我的应用程序服务在该区域的所有区域上运行以实现冗余。

我正在使用 terraform 创建集群和节点池,下面是我用于创建区域集群和区域节点池的配置

resource "google_container_cluster" "regional_cluster" {
  provider       = google-beta
  project        = "my-project"
  name           = "my-cluster"
  location       = "us-central1"
  node_locations = ["us-central1-a", "us-central1-b", "us-central1-c"]

  master_auth {
    username = ""
    password = ""

    client_certificate_config {
      issue_client_certificate = false
    }
  }
}

resource "google_container_node_pool" "one_zone" {
  project            = google_container_cluster.regional_cluster.project
  name               = "zone-pool"
  location           = "us-central1-b"
  cluster            = google_container_cluster.regional_cluster.name

  node_config {
    machine_type    = var.machine_type
    image_type      = var.image_type
    disk_size_gb    = 100
    disk_type       = "pd-standard"
  }
}

Run Code Online (Sandbox Code Playgroud)

这会引发错误消息

error creating NodePool: googleapi: Error 404: Not found: projects/my-project/zones/us-central1-b/clusters/my-cluster., notFound

Run Code Online (Sandbox Code Playgroud)

Ran*_*sts 7

发现location应该google_container_node_pool指定集群主机的区域/区域。node_locations要实际指定应使用的节点池位置。下面是有效的配置

resource "google_container_cluster" "regional_cluster" {
  provider       = google-beta
  project        = "my-project"
  name           = "my-cluster"
  location       = "us-central1"
  node_locations = ["us-central1-a", "us-central1-b", "us-central1-c"]

  master_auth {
    username = ""
    password = ""

    client_certificate_config {
      issue_client_certificate = false
    }
  }
}

resource "google_container_node_pool" "one_zone" {
  project            = google_container_cluster.regional_cluster.project
  name               = "zone-pool"
  location           = google_container_cluster.regional_cluster.location
  node_locations     = ["us-central1-b"]
  cluster            = google_container_cluster.regional_cluster.name

  node_config {
    machine_type    = var.machine_type
    image_type      = var.image_type
    disk_size_gb    = 100
    disk_type       = "pd-standard"
  }
}
Run Code Online (Sandbox Code Playgroud)