错误:Kubernetes 集群无法访问:服务器已要求客户端提供凭据

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

当我在包含 kubernetes/helm 提供程序的某个单独文件夹中执行

terraform destroy 
时出错,我面临错误:
Error: Kubernetes cluster unreachable: the server has asked for the client to provide credentials

执行 terraform apply/refresh terraform destroy 后效果很好。 这发生在 Terraform 更新之后 (
0.13.7
=>
0.14.11
)。在 Terraform v0.13.7 中
terraform destroy
工作正常。
EKS 版本:
1.25
,kubectl:
1.25.15
,Terraform:
0.14.11

versions.tf 配置:

terraform {
  required_version = "0.14.11"
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "4.60.0"
    }
    helm = {
      source  = "hashicorp/helm"
      version = "2.9.0"
    }
    null = {
      source  = "hashicorp/null"
      version = "3.2.1"
    }
  }
  backend "s3" { ...}
}

provider "helm" {
  kubernetes {
    host                   = data.aws_eks_cluster.eks.endpoint
    token                  = data.aws_eks_cluster_auth.eks.token
    cluster_ca_certificate = base64decode(data.aws_eks_cluster.eks.certificate_authority.0.data)
  }
}

此修复没有帮助(导出 KUBE_CONFIG_PATH=)。此外,此修复不是合适的解决方案,因为 Teraform 也将从 AWS CodePipeline 执行。
怎么解决?

terraform kubernetes-helm amazon-eks
1个回答
0
投票

我尝试过不同的解决方案:

  • 更新 kubernetes/helm 提供程序;
  • 设置环境变量KUBE_CONFIG_PATH;
  • 更改 kubernetes/helm 提供商的连接类型 但没有什么对我有帮助。 真正解决问题的唯一解决方案是更新到 Terraform 版本
    0.15.5
    。 我希望,它会对某人有所帮助。
© www.soinside.com 2019 - 2024. All rights reserved.