내용으로 건너뛰기

eks내 karpenter, node termination handler 동시 동작 문의

0

terraform으로 eks addon설정시

module "eks_addons" {
  source  = "aws-ia/eks-blueprints-addons/aws"
  version = "1.16.2"
  
  ...
   
  enable_aws_load_balancer_controller   = true
  enable_external_dns                   = true
  enable_cert_manager                   = true
  enable_karpenter                      = true
  enable_aws_node_termination_handler = true
}

이렇게 설정되어 있을 때 karpenter와 node_termination_handler가 둘다 enabled라면 스팟 노드 종료 알림 이벤트 발생시 어떻게 동작하나요?

질문됨 10달 전111회 조회
1개 답변
0

Karpenter와 AWS Node Termination Handler가 동시에 활성화된 경우, 스팟 인스턴스 종료 알림 이벤트 발생 시 두 컴포넌트는 서로 다른 역할을 수행하며 협력하여 작동합니다.

AWS Node Termination Handler는 EC2 인스턴스 종료 이벤트를 감지하고 Kubernetes API 서버에 노드를 정상적으로 드레인(drain)하도록 요청합니다. 이는 스팟 인스턴스뿐만 아니라 모든 유형의 EC2 인스턴스 종료에 대응합니다.

Karpenter는 클러스터의 전반적인 용량 관리를 담당합니다. 노드 종료 이벤트가 발생하면, Karpenter는 종료되는 노드를 대체하기 위해 새로운 노드를 프로비저닝합니다. Karpenter는 워크로드 요구사항, 가용성, 비용 등을 고려하여 최적의 인스턴스 유형을 선택합니다.

두 컴포넌트가 함께 작동하는 과정은 다음과 같습니다:

  1. AWS Node Termination Handler가 스팟 인스턴스 종료 알림을 감지합니다.
  2. Node Termination Handler는 해당 노드를 드레인하여 워크로드를 안전하게 다른 노드로 이동시킵니다.
  3. Karpenter는 클러스터의 용량 변화를 감지하고, 필요에 따라 새로운 노드를 프로비저닝합니다.
  4. 새로운 노드가 준비되면, 이전 노드에서 드레인된 워크로드가 새 노드로 스케줄링됩니다.

이러한 방식으로 Karpenter와 AWS Node Termination Handler는 서로 보완적으로 작동하여 클러스터의 안정성과 효율성을 유지합니다. Karpenter는 전체적인 클러스터 스케일링을 관리하고, Node Termination Handler는 개별 노드의 안전한 종료를 처리합니다.
Sources
Automate security scans on Amazon EKS with Kubescape, AWS CodeBuild, and AWS CodePipeline | Integration & Automation
Node problem detection and recovery for AWS Neuron nodes within Amazon EKS clusters | AWS Machine Learning Blog
CreateCluster - Amazon EKS

답변함 10달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.