【发布时间】:2022-01-18 16:59:54
【问题描述】:
我已经花了 4 天时间测试了 kubernetes terraform gcp 模块的所有配置,但我看不到我的工作负载指标,它从来没有显示 CPU 和内存(甚至在 GUI 中创建的标准默认 kubernetes 也已激活此功能。
这是我的代码:
resource "google_container_cluster" "default" {
provider = google-beta
name = var.name
project = var.project_id
description = "Vectux GKE Cluster"
location = var.zonal_region
remove_default_node_pool = true
initial_node_count = var.gke_num_nodes
master_auth {
#username = ""
#password = ""
client_certificate_config {
issue_client_certificate = false
}
}
timeouts {
create = "30m"
update = "40m"
}
logging_config {
enable_components = ["SYSTEM_COMPONENTS", "WORKLOADS"]
}
monitoring_config {
enable_components = ["SYSTEM_COMPONENTS", "WORKLOADS"]
}
}
resource "google_container_node_pool" "default" {
name = "${var.name}-node-pool"
project = var.project_id
location = var.zonal_region
node_locations = [var.zonal_region]
cluster = google_container_cluster.default.name
node_count = var.gke_num_nodes
node_config {
preemptible = true
machine_type = var.machine_type
disk_size_gb = var.disk_size_gb
service_account = google_service_account.default3.email
oauth_scopes = [
"https://www.googleapis.com/auth/logging.write",
"https://www.googleapis.com/auth/monitoring",
"https://www.googleapis.com/auth/cloud-platform",
"compute-ro",
"storage-ro",
"service-management",
"service-control",
]
metadata = {
disable-legacy-endpoints = "true"
}
}
management {
auto_repair = true
auto_upgrade = true
}
}
resource "google_service_account" "default3" {
project = var.project_id
account_id = "terraform-vectux-33"
display_name = "tfvectux2"
provider = google-beta
}
【问题讨论】:
-
您使用的是什么 Terraform 版本以及 google-beta 的提供者注册表版本?这是你的完整代码吗?我已经复制了这个(通常创建了 GKE 集群和您的 terraform 脚本)并使用 UI 显示的工作负载创建并形成您的代码没有。但是,我使用您的
Service Account使用 UI 创建了另一个集群,但我无法获得任何工作负载指标。您是否尝试添加 IAM policy for service account 以提供例如默认的Compute Engine权限? -
我在没有使用 SA 的情况下尝试了您的代码,所以我想这就是根本原因。您需要这个特定的服务帐户吗?您不能在这种情况下使用默认值吗?
-
非常适合检查并让我知道它对您的工作方式@PjoterS。那我相信你是对的。我可以使用其他服务帐户,是的。我只是想在同一个 terraform 项目中部署一个新的服务帐户。我认为 oauth 会对此有所帮助,但也许我缺少一些范围或其他东西。最后我将使用具有所有访问权限的服务帐户进行一些测试,希望我能够看到指标。再次感谢您的检查,我会尽快回来说明它是否有效。
-
要使其工作,您需要将
google_project_iam_binding与role/owner或2 个角色一起使用:"roles/compute.admin和"roles/logging.logWriter"。我会做一些额外的测试,明天会发布详细的答案。
标签: google-cloud-platform terraform terraform-provider-gcp