如何为 EKS 配置 Terraform Kubernetes 提供程序



我正在尝试在Terraform中配置kubernetes提供程序,但是到目前为止我无法做到这一点。EKS 使用 heptio 身份验证器,所以我没有可以提供给 Kubernetes 提供商的证书路径。实现这一目标的正确方法是什么?

我已经尝试过这样的事情:

provider "kubernetes" {
config_context_auth_info = "context1"
config_context_cluster   = "kubernetes"
}

结果获得:

Error: Error applying plan:
1 error(s) occurred:
* kubernetes_namespace.example: 1 error(s) occurred:
* kubernetes_namespace.example: Post http://localhost/api/v1/namespaces: dial tcp [::1]:80: getsockopt: connection refused

我有一个~/.kube/config,我可能错过了什么?

这种行为可能是由已知的核心错误引起的: 核心:跨提供程序依赖项 #12393 没有插值。

Terraform Github 上存在一个问题,它描述了具有相同错误的类似情况 - #12869。
这是关于与 GKE 相关的问题,但我想它也可能会影响 EKS。

下面是一个包含使用 kubernetes_provider 示例的要点链接。
它也与 GKE 有关,但我相信只要稍作改动,它就可以应用于 EKS。

还可以考虑在StackOverflow上检查与您的问题相关的另一个好答案。
简而言之,解决方案是在第一阶段创建 Kubernetes 集群,然后在第二阶段创建 Kubernetes 对象。

对于使用 Terraform 的 EKS 提供程序。

data "aws_region" "current" {}
data "aws_availability_zones" "available" {}
provider "kubernetes" {
config_context = "aws-test-terraform"
}

最新更新