You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform部署Rancher启用集群监控报422错误求助

问题背景

在AWS ap-south-1区域使用Terraform 1.1.9版本部署Rancher环境,所用组件版本如下:

  • Rancher版本:Rocky-8.5-rancher-2.6.3
  • Kubernetes版本:v1.21.7-rancher1-1
  • Kubernetes provider:2.11.0
  • Helm provider:2.5.1
  • Rancher2 provider:1.24.0
  • rancher/rke:1.3.0
  • cert-manager:1.5.0

执行terraform apply操作时抛出错误,已尝试0.1.0、0.1.4、0.3.1、0.3.2多个cluster monitoring版本,问题仍未解决。

报错信息
╷
│ Error: Bad response statusCode [422]. Status [422 Unprocessable Entity]. Body: [baseType=error, code=InvalidBodyContent, message=cluster [c-xxgkz] status version is not available yet. Cannot validate kube version for template [system-library-rancher-monitoring-0.3.2]] from [https://ec2-13-232-176-25.ap-south-1.compute.amazonaws.com/v3/clusters/c-xxgkz?action=enableMonitoring]
│
│   with module.rke_custom_cluster.rancher2_cluster.rancher2-custom-cluster,
│   on .terraform/modules/rke_custom_cluster/rancher2_custom_cluster.tf line 20, in resource "rancher2_cluster" "rancher2-custom-cluster":
│   20: resource "rancher2_cluster" "rancher2-custom-cluster" {
│
╵
关联Terraform配置片段
resource "rancher2_cluster" "rancher2-custom-cluster" {
  name = var.rancher2_custom_cluster_name
  cluster_template_id = var.rke_template_id
  cluster_template_revision_id = var.rke_template_revisions_id
  enable_cluster_monitoring = var.enable_cluster_monitoring
  cluster_monitoring_input {
    answers = {
      "exporter-kubelets.https" = var.exporter_kubelets_https
      "exporter-node.enabled" = var.exporter_node_enabled
      "exporter-node.ports.metrics.port" = var.exporter_node_ports_metrics_port
      "exporter-node.resources.limits.cpu" = var.exporter_node_resources_limits_cpu
      "exporter-node.resources.limits.memory" = var.exporter_node_resources_limits_memory
      "grafana.persistence.enabled" = var.grafana_persistence_enabled
      "grafana.persistence.size" = var.grafana_persistence_size
      "grafana.persistence.storageClass" = var.grafana_persistence_storageClass
      "operator.resources.limits.memory" = var.operator_resources_limits_memory
      "prometheus.persistence.enabled" = var.prometheus_persistence_enabled
      "prometheus.persistence.size" = var.prometheus_persistence_size
      "prometheus.persistence.storageClass" = var.prometheus_persistence_storageClass
      "prometheus.persistent.useReleaseName" = var.prometheus_persistent_useReleaseName
      "prometheus.resources.core.limits.cpu" = var.prometheus_resources_core_limits_cpu,
      "prometheus.resources.core.limits.memory" = var.prometheus_resources_core_limits_memory
      "prometheus.resources.core.requests.cpu" = var.prometheus_resources_core_requests_cpu
      "prometheus.resources.core.requests.memory" = var.prometheus_resources_core_requests_memory
      "prometheus.retention" = var.prometheus_retention
      "grafana.nodeSelectors[0]" = var.node_selector
      "operator.nodeSelectors[0]" = var.node_selector
      "prometheus.nodeSelectors[0]" = var.node_selector
      "exporter-kube-state.nodeSelectors[0]" = var.node_selector
    }
    version = var.cluster_monitoring_version
  }

 #depends_on = [ null_resource.rke_custom_cluster_dependency_getter ]
  depends_on = [ null_resource.wait_for_rancher2 ]

}
故障根因

报错核心原因是资源依赖顺序配置错误:当前配置仅依赖Rancher服务本身启动完成,没有等待下游RKE集群完全初始化、状态切换为active、Kubernetes版本信息同步到Rancher后端,就提前调用了enableMonitoring接口。此时监控模板无法完成Kubernetes版本兼容性校验,直接返回422参数错误。
另外配置中存在语法瑕疵:"prometheus.resources.core.limits.cpu" = var.prometheus_resources_core_limits_cpu,行尾多了冗余逗号,部分Terraform版本会出现map解析异常。

解决方案
  1. 先删除配置中answers块里prometheus.resources.core.limits.cpu赋值行末尾的冗余逗号。
  2. 不要在rancher2_cluster资源块中直接内嵌cluster_monitoring_input配置,将集群监控部署逻辑拆分为独立资源,避免集群创建过程中提前触发监控安装接口。
  3. 新增集群状态校验逻辑,确保下游RKE集群状态为active、集群版本信息已成功上报Rancher后,再执行监控组件安装。如果不想拆分资源,需要将depends_on的依赖对象从仅等待Rancher启动的wait_for_rancher2,替换为等待所有集群节点就绪、Kubernetes组件全部启动完成的后置空资源,保证集群完全可用后再触发监控配置。
  4. 若集群初始化速度较慢,可增加3-5分钟的固定等待时间缓冲,避免Rancher后端状态同步延迟导致的接口校验失败。

内容的提问来源于stack exchange,提问作者sethu ram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 17:25:04