노드 생명주기 퀴즈

관련 문서: 노드 수명주기

객관식 문제

1. NodePool에서 노드를 주기적으로 교체하기 위한 설정 필드 이름은 무엇인가요?

  • A) nodeLifetime

  • B) maxAge

  • C) expireAfter

  • D) rotationPeriod

chevron-right정답 보기hashtag

정답: C) expireAfter

설명: expireAfter 필드를 사용하면 노드의 최대 수명을 설정하여 보안 패치나 AMI 업데이트를 위해 노드를 주기적으로 교체할 수 있습니다.

spec:
  template:
    spec:
      # 노드 최대 수명 설정
      expireAfter: 168h  # 7일 후 자동 교체

일반적인 설정값:

  • 개발 환경: 336h (14일)

  • 스테이징: 168h (7일)

  • 프로덕션: 72h ~ 168h (3-7일)

  • 보안 중요 환경: 24h ~ 48h (1-2일)

2. expireAfter가 설정된 노드가 만료되면 어떤 일이 발생하나요?

  • A) 노드가 즉시 삭제됨

  • B) 노드가 cordon되고 drain 후 삭제됨

  • C) 관리자에게 알림만 전송됨

  • D) 노드가 자동으로 재부팅됨

chevron-right정답 보기hashtag

정답: B) 노드가 cordon되고 drain 후 삭제됨

설명: 노드가 만료되면 Karpenter가 graceful한 프로세스를 실행합니다:

  1. Cordon: 새 Pod 스케줄링 차단

  2. Drain: 기존 Pod를 다른 노드로 이동

  3. Delete: EC2 인스턴스 종료

이 과정에서 PodDisruptionBudget과 Disruption Budget이 존중됩니다.

3. AL2023과 Bottlerocket AMI 중 더 빠른 부팅 시간을 제공하는 것은?

  • A) AL2023

  • B) Bottlerocket

  • C) 동일함

  • D) 인스턴스 타입에 따라 다름

chevron-right정답 보기hashtag

정답: B) Bottlerocket

설명: Bottlerocket은 컨테이너 워크로드에 최적화된 OS로, AL2023보다 빠른 부팅 시간을 제공합니다.

부팅 시간 비교:

AMI
부팅 시간
특징

AL2023

20-40초

범용 패키지, 유연성

Bottlerocket

15-25초

컨테이너 전용, 최소 OS

Bottlerocket 추가 장점:

  • 불변 루트 파일 시스템

  • 자동 보안 업데이트

  • 작은 공격 표면

4. AMI 업데이트가 발생했을 때 기존 노드에서 Drift가 감지되면 어떤 일이 발생하나요?

  • A) 노드가 자동으로 인플레이스 업데이트됨

  • B) 새 AMI로 노드가 순차적으로 교체됨

  • C) 관리자 승인 후 교체됨

  • D) 아무 일도 발생하지 않음

chevron-right정답 보기hashtag

정답: B) 새 AMI로 노드가 순차적으로 교체됨

설명: EKS Auto Mode는 새 AMI가 사용 가능해지면 Drift를 감지하고 노드를 순차적으로 교체합니다.

Drift 감지 조건:

  • 새로운 EKS 최적화 AMI 릴리스

  • NodeClass의 amiFamily 변경

  • 보안 그룹 변경

  • 서브넷 설정 변경

5. 노드 freshness(신선도)를 위해 expireAfter를 짧게 설정하면 발생할 수 있는 trade-off는?

  • A) 비용 절감

  • B) 노드 교체 빈도 증가로 인한 일시적 성능 저하 가능성

  • C) 보안 취약점 증가

  • D) 클러스터 안정성 향상

chevron-right정답 보기hashtag

정답: B) 노드 교체 빈도 증가로 인한 일시적 성능 저하 가능성

설명: 짧은 expireAfter는 보안을 강화하지만 다음과 같은 trade-off가 있습니다:

장점:

  • 최신 보안 패치 적용

  • AMI 업데이트 빠른 적용

  • 노드 드리프트 방지

단점:

  • 노드 교체 중 일시적 용량 감소

  • 더 많은 Pod 재스케줄링

  • 스팟 인스턴스의 경우 추가 인터럽트 가능성

권장 사항:

6. Consolidation과 Expiration이 동시에 트리거되면 어떤 것이 우선인가요?

  • A) Consolidation이 항상 우선

  • B) Expiration이 항상 우선

  • C) 둘 중 노드 교체 조건에 먼저 도달한 것이 실행

  • D) 관리자가 선택해야 함

chevron-right정답 보기hashtag

정답: C) 둘 중 노드 교체 조건에 먼저 도달한 것이 실행

설명: Karpenter는 여러 disruption 이유를 독립적으로 평가하고, 조건에 맞으면 실행합니다.

Disruption 우선순위 (일반적인 평가 순서):

  1. Drift: 설정 변경이나 AMI 업데이트 감지

  2. Expiration: expireAfter 시간 초과

  3. Consolidation: 저사용률 또는 빈 노드

7. 보안 패치 적용을 위해 노드를 즉시 교체해야 할 때 사용하는 방법은?

  • A) expireAfter를 0으로 설정

  • B) 노드에 Drift 어노테이션 추가

  • C) NodeClass 업데이트로 Drift 트리거 또는 노드 drain

  • D) 클러스터 재시작

chevron-right정답 보기hashtag

정답: C) NodeClass 업데이트로 Drift 트리거 또는 노드 drain

설명: 긴급 보안 패치 적용 방법:

방법 1: NodeClass 업데이트 (권장)

방법 2: 수동 drain

방법 3: Rolling 교체

8. expireAfter를 Never로 설정하면 어떤 동작이 되나요?

  • A) 노드가 즉시 만료됨

  • B) 시간 기반 자동 교체가 비활성화됨

  • C) 설정이 무효화되고 기본값 적용

  • D) 에러 발생

chevron-right정답 보기hashtag

정답: B) 시간 기반 자동 교체가 비활성화됨

설명: expireAfter: Never를 설정하면 시간 기반 노드 만료가 비활성화됩니다.

주의사항:

  • Drift와 Consolidation은 여전히 작동

  • 보안 패치 적용이 지연될 수 있음

  • 장기 실행 워크로드에만 권장

권장 사용 사례:

  • 상태 저장 워크로드 (데이터베이스)

  • 매우 긴 실행 작업

  • 수동 유지보수 일정이 있는 환경

마지막 업데이트