Как создать кластер Kubernetes на EKS с помощью Terraform - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь создать кластер K8s на Amazon EKS с помощью Terraform.Весь код находится на 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.yaml и kube_config.yaml, но вместо этого я вижу созданные 2 разных файла: kubeconfig_eks-cluster-created-with-tf и config-map-aws-auth_eks-cluster-created-with-tf.yaml.

1 Ответ

0 голосов
/ 15 февраля 2019

Проблема здесь в том, что вы пытаетесь использовать 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.

...