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

使用Terraform Kubernetes Provider添加Sidecar容器的问题及示例请求

Terraform Kubernetes Provider 支持添加Sidecar容器吗?附示例及错误修复

问题场景

需要在Kubernetes Deployment中添加2个Sidecar容器,使用Terraform Kubernetes Provider时运行代码报错:

错误:属性重定义 │ │ 在deployment\deployment.tf第84行:参数"image"已在deployment\deployment.tf第28行11-16位置设置。每个参数只能设置一次。

核心结论

Terraform Kubernetes Provider 完全支持添加Sidecar容器,你遇到的错误是因为在同一个container块内重复定义了image、name这类专属属性——每个容器(包括主容器和Sidecar)都需要独立的container代码块声明。

正确示例代码

resource "kubernetes_deployment" "test_deployment" {
  metadata {
    name      = "test_nginx"
    namespace = "test"
    labels = {
      app = "test_nginx"
    }
  }

  spec {
    replicas = 2

    selector {
      match_labels = {
        app = "test_nginx"
      }
    }

    template {
      metadata {
        labels = {
          app = "test_nginx"
        }
      }
      spec {
        # 主容器:Nginx
        container {
          image = "nginx"
          name  = "local_nginx"
          # 可添加主容器专属配置,比如端口、资源限制
          port {
            container_port = 80
          }
        }

        # Sidecar容器:Logrotate
        container {
          image = "logrotate"
          name  = "local_logrotate"
          # 可添加Sidecar专属配置,比如挂载共享日志目录
          volume_mount {
            name       = "nginx-logs"
            mount_path = "/var/log/nginx"
          }
        }

        # 共享卷定义(按需添加)
        volume {
          name = "nginx-logs"
          empty_dir {}
        }
      }
    }
  }
}

关键修复要点

  • 每个容器必须拥有独立的container代码块,不能在同一个块内重复声明image、name等属性
  • 可根据不同容器的职责,分别配置端口、挂载卷、资源配额、环境变量等专属参数

内容的提问来源于stack exchange,提问作者Nishant Kansal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 21:45:33