如何使用Terraform在EKS上创建Kubernetes集群

时间:2019-02-14 20:13:47

标签: amazon-web-services kubernetes terraform amazon-eks

我正在尝试使用Terraform在Amazon EKS上创建K8s集群。所有代码都在github上:https://github.com/amorfis/aws-eks-terraform

为具有必需策略的用户配置

access_key和secret,如README.md中所示。

我先运行terraform init,然后运行terraform apply,但失败并出现以下错误: module.eks.null_resource.update_config_map_aws_auth (local-exec): error: unable to recognize "aws_auth_configmap.yaml": Unauthorized

我还签入了模块,看起来它应该创建2个文件:aws_auth_configmap.yamlkube_config.yaml,但是我可以看到创建了2个不同的文件:kubeconfig_eks-cluster-created-with-tf和{{ 1}}。

1 个答案:

答案 0 :(得分:2)

这里的问题似乎是您尝试使用AssumedRole,但随后模块尝试执行本地exec,这就是它失败的原因。

您需要的是添加以下内容  “ kubeconfig_aws_authenticator_env_variables”到以下官方示例中的模块-

module "my-cluster" {
  source       = "terraform-aws-modules/eks/aws"
  cluster_name = "my-cluster"
  kubeconfig_aws_authenticator_env_variables = {
             AWS_PROFILE = "NameOfProfile"
  }
  subnets      = ["subnet-abcde012", "subnet-bcde012a", "subnet-fghi345a"]
  vpc_id       = "vpc-1234556abcdef"

  worker_groups = [
    {
      instance_type = "m4.large"
      asg_max_size  = 5
    }
  ]

  tags = {
    environment = "test"
  }
}

注意:已添加以下内容-

 kubeconfig_aws_authenticator_env_variables = {
    AWS_PROFILE = "NameOfProfile"
  }

使用〜/ .aws / config中提供的名称替换配置文件的值。