我在GKE集群上遇到了缩减问题,发现只要配置得当,我就能解决这个问题。
作为地形文档,我可以使用参数autoscaling_profile
并将其设置为OPTIMIZE_UTILIZATION
像这样:
resource "google_container_cluster" "k8s_cluster" {
[...]
cluster_autoscaling {
enabled = true
autoscaling_profile = "OPTIMIZE_UTILIZATION"
resource_limits {
resource_type = "cpu"
minimum = 1
maximum = 4
}
resource_limits {
resource_type = "memory"
minimum = 4
maximum = 16
}
}
}
但我得到了这个错误:
错误:模块/gke/main.tf第70行的参数不受支持,位于资源"中;google_container_cluster"quot;k8s_cluster":70:自动缩放_文件=";OPTIMIZE_;
一个名为";autoscaling_profile";此处不应出现。
我不明白吗?
TL;DR
将以下参数添加到资源的定义中(顶部(:
provider = google-beta
更多解释:
文档中显示的autoscaling_profile
是测试版功能。这意味着它将需要使用不同的提供程序:google-beta
。
您可以通过以下官方文档了解更多信息:
- Terraform.io:使用谷歌测试版提供商
关注上述文档中最重要的部分:
如何使用:
要使用谷歌测试版提供程序,只需在每个资源上设置要使用谷歌试用版的提供程序字段。
resource "google_compute_instance" "beta-instance" { provider = google-beta # ... }
关于google
和google-beta
:使用的免责声明
如果省略provider字段,Terraform将默认隐式使用谷歌提供程序,即使您只定义了谷歌测试版提供程序块。
添加到整个解释中,GKE
集群定义应该如下所示:
resource "google_container_cluster" "k8s_cluster" {
[...]
provider = google-beta # <- HERE IT IS
cluster_autoscaling {
enabled = true
autoscaling_profile = "OPTIMIZE_UTILIZATION"
resource_limits {
resource_type = "cpu"
minimum = 1
maximum = 4
}
resource_limits {
resource_type = "memory"
minimum = 4
maximum = 16
}
}
}
您还需要运行:
$ terraform init