kubernetes - 使用 Terraform 管理 GCP Composer Kubernetes 集群
问题描述
我使用 Terraform创建了一个 GCP Composer 环境:
terraform {
required_providers {
google = {
source = "hashicorp/google"
version = "3.5.0"
}
}
}
provider "google" {
credentials = file("my_key.json")
project = "my_project_id"
region = "us-east1"
zone = "us-east1-b"
}
resource "google_composer_environment" "my_composer_id" {
name = "my_composer_name"
region = "us-east1"
config {
node_count = 3
node_config {
zone = "us-east1-b"
machine_type = "n1-standard-1"
}
}
}
Composer 还会自动创建一个 Kubernetes Engine 集群。这样的集群有一个名为default-pool的单节点池。我想在 Composer 创建的集群内创建一个新的节点池。像这样的东西:
resource "google_container_node_pool" "my_node_pool_id" {
name = "my_node_pool_name"
location = "us-east1"
cluster = ????
node_count = 0
node_config {
preemptible = true
machine_type = "n1-standard-1"
}
autoscaling {
min_node_count = 0
max_node_count = 3
}
}
但是,由于我没有在 Terraform 文件中创建集群(因为它是由 Composer 自动创建的),所以我没有对它的引用。
解决方案
可以通过Cloud Composer 环境部分中gke_cluster
可用的密钥访问集群名称:config
resource "google_container_node_pool" "my_node_pool_id" {
name = "my_node_pool_name"
location = "us-east1-b"
cluster = element(
split("/",
lookup(
google_composer_environment.my_composer_id.config[0],
"gke_cluster"
)
),
5
)
// ...
}
第 5 个元素对应于 GKE 集群的名称。
推荐阅读
- python - Python:从附加到单个列表的三个单独列表中获取唯一组合?
- layout - 如何摆脱弹出菜单中的空白?
- xcode - UIPicker 未在 Mac Catalyst 中显示
- python - 如何在 PyQt5 Python 中自动换行 QTableWidget 的标题内容
- php - Phpspreadsheet:未捕获的 InvalidArgumentException 文件“filename.xlsx”不存在
- javascript - 如何在 Django 中动态使用 Bootstrap 4 弹出框?
- mysql - TypeError: require(...) is not a function while Using sequalize with node js
- python - 如何使用 for 循环正确编写 jinja2 模板,
- python - 计算 Pandas 数据框中的值 -Python
- python - pandas - 绘制列的分布