EKS-узлы выходят из строя при запуске через шаблон запуска (терраформ)

когда я обычно запускаю узел, все работает нормально, но когда я пытаюсь запустить его с помощью шаблона запуска, у меня возникают проблемы с подключением в кластере.

более конкретно, модуль aws-node завершается с ошибкой:

{"level":"info","caller":"/usr/local/go/src/runtime/proc.go:225","msg":"timeout: failed to connect service \":50051\" within 5s"}

Просматривая другие сообщения здесь, многие люди, кажется, указывают на проблемы с ролью iam, но моя роль iam в порядке, и, кроме того, я использовал ту же роль для запуска многих других узлов, и они успешно запустились.

вот мои файлы терраформирования:

resource "aws_eks_node_group" "eth-staking-nodes" {
  cluster_name    = aws_eks_cluster.staking.name
  node_group_name = "ethstaking-nodes-testnet"
  node_role_arn   = aws_iam_role.nodes.arn

  subnet_ids = [    data.aws_subnet.private-1.id,
    data.aws_subnet.private-2.id
  ]

  scaling_config {
    desired_size = 1
    max_size     = 5
    min_size     = 0
  }

  update_config {
    max_unavailable = 1
  }

  labels = {
    role = "general"
  }

  launch_template {
    version = aws_launch_template.staking.latest_version
    id      = aws_launch_template.staking.id
  }

  depends_on = [
    aws_iam_role_policy_attachment.nodes-AmazonEKSWorkerNodePolicy,
    aws_iam_role_policy_attachment.nodes-AmazonEKS_CNI_Policy,
    aws_iam_role_policy_attachment.nodes-AmazonEC2ContainerRegistryReadOnly,
  ]
}

шаблон запуска:

esource "aws_launch_template" "staking" {
  name          = "${var.stage}-staking-node-launch-template"
  instance_type = "m5.2xlarge"
  image_id      = "ami-08712c7468e314435"

  key_name = "nivpem"
  
  block_device_mappings {
    device_name = "/dev/xvda"

    ebs {
      volume_size = 450
      volume_type = "gp2"
    }
  }

  lifecycle {
    create_before_destroy = false
  }

  vpc_security_group_ids = [aws_security_group.eks-ec2-sg.id]
  user_data = base64encode(templatefile("${path.module}/staking_userdata.sh", {
        password = "********"
      }))

  tags = {
    "eks:cluster-name"   = aws_eks_cluster.staking.name
    "eks:nodegroup-name" = "ethstaking-nodes-testnet"
  }

  tag_specifications {
    resource_type = "instance"

    tags = {
      Name                 = "${var.stage}-staking-node"
      "eks:cluster-name"   = aws_eks_cluster.staking.name
      "eks:nodegroup-name" = "ethstaking-nodes-testnet"
    }
  }
}

группа безопасности:

resource "aws_security_group" "eks-ec2-sg" {
  name        = "eks-ec2-sg-staking-testnet"
  vpc_id      = data.aws_vpc.vpc.id

  ingress {
    from_port        = 0
    to_port          = 0
    protocol         = "-1"
    cidr_blocks      = ["0.0.0.0/0"]
  }

  egress {
    from_port        = 0
    to_port          = 0
    protocol         = "-1"
    cidr_blocks      = ["0.0.0.0/0"]
    ipv6_cidr_blocks = ["::/0"]
  }

  tags = {
    Name = "allow_tls"
  }
}

Настроили ли вы сеть в соответствии с требованиями? Например, находятся ли ваши узлы в частной подсети? Если да, развернут ли шлюз NAT? Подключен ли к VPC соответствующий интернет-шлюз?

Marko E 10.04.2023 15:15

Да, они. если я запускаю узел с той же конфигурацией, но без шаблона запуска, он работает отлично.

Niv Shitrit 11.04.2023 01:21

Тогда ответ, который вы получили, работает на вас?

Marko E 11.04.2023 08:58

Нет, по-прежнему не удается заставить ноду работать при запуске через шаблон запуска. Эта проблема кричит о проблеме группы безопасности, так как я вижу «отказ в соединении» среди ошибок из модуля aws-node. Я проверил созданный узел, и все, от групп безопасности до роли iam, кажется правильным и должно быть достаточным.

Niv Shitrit 12.04.2023 13:42

Не могли бы вы добавить конфигурацию SG к вопросу?

Marko E 12.04.2023 14:43

для всех портов установлено значение 0.0.0.0/0 (для тестирования), я добавлю его к вопросу

Niv Shitrit 13.04.2023 09:38

Вы пытались добавить vpc_config с vpc_config и endpoint_public_access, установленными на true, в свой ресурс aws_eks_cluster?

Mohammad Teimori Pabandi 13.04.2023 16:55

@MohammadTeimoriPabandi, вот оно! хотя в моем случае я использовал частные подсети, поэтому мне пришлось установить значение endpoint_private_access в true. большое спасибо.

Niv Shitrit 24.04.2023 22:21

Я добавлю его как ответ, чтобы вы могли выбрать его как правильный: D.

Mohammad Teimori Pabandi 25.04.2023 13:47
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
9
85
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте добавить vpc_config с vpc_config и endpoint_public_access, установленным на true, в свой ресурс aws_eks_cluster. Это должно заставить его работать, поскольку вы используете частные подсети.

Другие вопросы по теме