错误:无法创建部署:服务器找不到请求的资源(部署后.apps) - Terraform 和 Kubernetes

问题描述 投票:0回答:1

这是我的第一个问题,所以可能有一些不清楚的地方。我会尽力提供所有信息。

我是 TerraForm 新手。我想使用 Grafana 和 Prometheus 监控我的资源。为此,我在系统上本地使用 Kubernetes (k3s)。我已经创建了 kubernetes 清单,当我使用手动部署时,使用 kubectl apply -f xyz.yml,资源已启动并运行良好。

现在我想使用 IAC,为此我正在使用 TerraForm。我想通过使用 TerraForm 获得相同的结果,但在这样做时遇到了一些错误。

这是我在初始化和计划之后使用“terraform apply -auto-approve”命令时遇到的错误:

错误:无法创建部署:服务器找不到请求的资源(部署后.apps)

   with kubernetes_deployment.grafana, on grafana.tf line 1, in resource "kubernetes_deployment" "grafana": 1: resource "kubernetes_deployment" "grafana" {

错误:无法创建部署:服务器找不到请求的资源(部署后.apps)

   with kubernetes_deployment.prometheus, on prometheus.tf line 1, in resource "kubernetes_deployment" "prometheus": 1: resource "kubernetes_deployment" "prometheus" {

这是我的提供商.tf:

    terraform {
      required_version = ">= 0.13"

      required_providers {
    
        kubernetes = {
         source = "hashicorp/kubernetes"
         version = ">= 2.0.0"
        } 
    }

我将 .tf 中的资源定义为

    resource "kubernetes_deployment" "grafana" {
      metadata {
        name = "grafana"
        labels = {
          app = "grafana"
        }
      }

      spec {
        replicas = 1

        selector {
          match_labels = {
            app = "grafana"
          }
        }
       ... 

我也尝试过与 gavinbunney 的 kubectl 提供程序相同的方法:

    terraform {
      required_version = ">= 0.13"
    
      required_providers {

         kubectl = {
           source  = "gavinbunney/kubectl"
           version = ">= 1.14.0"
         }
      }
    }

但没有运气。正在生成相同的错误。

我假设问题出在provider.tf中的某个地方。

kubernetes terraform prometheus grafana
1个回答
0
投票

您正在查看的有关 Terraform 和 Kubernetes 的网页的要点是:

  • 问题描述:用户在尝试使用 Terraform 和 Kubernetes 部署 Grafana 和 Prometheus 时遇到错误。
  • 错误消息:遇到的具体错误是“无法创建部署:服务器无法找到请求的资源(发布部署.apps)”[^1^][1]。
  • Terraform 配置:用户已共享其
    provider.tf
    配置,该配置指定所需的 Terraform 版本和 Kubernetes 提供程序。
  • 部署尝试:提到了使用
    kubectl apply -f xyz.yml
    的手动部署和使用Terraform的IAC部署,后者会导致错误。

用户似乎怀疑问题可能出在

provider.tf
文件上,并正在寻求帮助来解决部署错误。

部署到 Kubernetes (k3s) 时使用 Terraform 遇到的“无法创建部署”错误可能是由于多种原因造成的。以下是一些可能的原因:

  • API 版本不匹配:确保您的
    apiVersion
    文件中指定的
    .tf
    与您的 k3s 集群支持的版本匹配。
  • 资源定义错误:检查
    grafana.tf
    prometheus.tf
    文件中是否存在语法错误或缺少必填字段。
  • 提供程序配置:验证
    provider.tf
    中的提供程序配置是否正确,并且 Terraform 已通过 Kubernetes 集群正确进行身份验证。
  • Kubernetes 版本:确认您运行的 k3s 版本与 Terraform 配置中指定的 Kubernetes 提供程序版本兼容。

这些是常见问题,可能会导致您看到错误。查看 Terraform 和 Kubernetes 文档以了解任何其他故障排除步骤也是一个很好的做法。如果问题仍然存在,请考虑向 Terraform 社区寻求帮助或检查其他用户报告的类似问题。

© www.soinside.com 2019 - 2024. All rights reserved.