Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Failed to create deployment: Post XXXXX i/o timeout

Pessoal, tudo bem?

Conseguir seguir bem o curso até a parte do deploy. Sempre quando tendo subir o deploy recebo a mesma mensagem:

│ Error: Failed to create deployment: Post "https://6C01784B0648F35EDB462DC3F183CBDD.gr7.us-west-2.eks.amazonaws.com/apis/apps/v1/namespaces/default/deployments": dial tcp 10.0.1.115:443: i/o timeout
│ 
│   with module.production.kubernetes_deployment.Django-API,
│   on ../../infra/k8s.tf line 1, in resource "kubernetes_deployment" "Django-API":
│    1: resource "kubernetes_deployment" "Django-API" {

Alguém teve o mesmo erro? Procurei bastante na internet mas não obtive uma solução para esse problema.

Segue meu repositório:

https://github.com/matheusrodacki/IaC-Docker/tree/AWS-EKS

3 respostas
solução!

Tudo bem Matheus?

Aparentemente esse problema é um problema de conexão do Terraform com o cluster do kubernetes, dei uma olhada no seu código e não aparenta ter erros, mas algumas coisas mudaram no modulo do EKS e principalmente na sua conexão com o provedor do kubernetes, como esse pode ser o problema vamos atualizar o provedor que esta em infra/provider.tf, tirando todo o código referente ao kubernetes

data "aws_eks_cluster" "default" {
  name = var.cluster_name
  depends_on = [ module.eks.eks_managed_node_groups ]
}

data "aws_eks_cluster_auth" "default" {
  name = var.cluster_name
}

provider "kubernetes" {
  host                   = data.aws_eks_cluster.default.endpoint
  cluster_ca_certificate = base64decode(data.aws_eks_cluster.default.certificate_authority[0].data)
  token                  = data.aws_eks_cluster_auth.default.token

}

e atualizando ele para a versão mais recente, o que ficaria como

provider "kubernetes" {
  host                   = module.eks.cluster_endpoint
  cluster_ca_certificate = base64decode(module.eks.cluster_certificate_authority_data)

  exec {
    api_version = "client.authentication.k8s.io/v1beta1"
    command     = "aws"
    # This requires the awscli to be installed locally where Terraform is executed
    args = ["eks", "get-token", "--cluster-name", module.eks.cluster_name]
  }
}

Tenta fazer essas atualizações, talvez seja necessário usar o terraform destroy antes da mudança.

Fico no aguardo por um retorno, continue se esforçando e bons estudos

Olá Leonardo!

Tentei realizar a correção no código como você mencionou mas não obtive sucesso. Ainda continuo recebendo o mesmo código de erro.

Valeu Leonardo, funcionou aqui!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software