Closed5

[EKS] kubeletに--pod-max-pidsを設定する

mikutasmikutas
locals {
  userdata = <<-USERDATA
#!/bin/bash
set -ex
/etc/eks/bootstrap.sh ${var.cluster_name} \
--kubelet-extra-args '--pod-max-pids=1000' \
  USERDATA
}

data "aws_ssm_parameter" "ami_al2_x86_64" {
  # https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/retrieve-ami-id.html
  name = "/aws/service/eks/optimized-ami/${var.cluster_version}/amazon-linux-2/recommended/release_version"
}

resource "aws_launch_template" "eks_worker_templates" {
  name                   = "hoge"
  image_id               = data.aws_ssm_parameter.ami_al2_x86_64.value
  user_data              = base64encode(local.userdata)
  ...
}
mikutasmikutas

これまでaws_eks_node_grouprelease_versionでAMIのバージョンを指定していた場合、そちらは消す

ノードグループがmust be replacedになるので、名前を変えて、古いグループはdestroyed、新しいグループがcreatedになるようにする

古いノードグループ上のPodのダウンタイム防止が必要な場合、stateを削除してterraform apply時に削除されないようにし、あとでkubectl drainとノードグループ削除を行う
(DeleteNodeGroup API内で実行されるdrainにはタイムアウトがあり、到達すると強制終了されるため)

https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/delete-managed-node-group.html

Before each instance is terminated, Amazon EKS sends a signal to drain the pods from that node and then waits a few minutes. If the pods haven't drained after a few minutes, Amazon EKS lets Auto Scaling continue the termination of the instance.

このスクラップは2022/10/05にクローズされました