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)
发现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)
| 归档时间: |
|
| 查看次数: |
1105 次 |
| 最近记录: |