Kubernetes

[Kubernetes] probe 에 대한 비교 및 설명

IT-PAPA 2024. 1. 10. 06:43
반응형

Kubernetes에서는 "Probe"라는 개념을 통해 애플리케이션의 상태를 주기적으로 확인하고 관리합니다. 세 가지 유형의 프로브가 있습니다: livenessProbe, readinessProbe, 그리고 startupProbe.

  1. Liveness Probe (프로세스 생존 여부 확인)
    • 목적: 애플리케이션 프로세스가 실행 중인지 확인.
    • 동작: 정의된 조건을 충족하지 못하면 컨테이너를 다시 시작.
  2. Readiness Probe (애플리케이션 서비스 가능 여부 확인)
    • 목적: 애플리케이션이 요청을 처리할 수 있는지 확인.
    • 동작: 정의된 조건을 충족하지 못하면 서비스 엔드포인트에서 제거하여 트래픽을 방지.
  3. Startup Probe (애플리케이션 초기화 상태 확인)
    • 목적: 애플리케이션이 초기화되고 실행 가능한 상태인지 확인.
    • 동작: 설정된 시간 동안 초기화가 완료되지 않으면 컨테이너를 다시 시작.
Probe 유형 Liveness Probe Readiness Probe Startup Probe
목적 프로세스 생존 여부 확인 서비스 가능 여부 확인 초기화 상태 확인
동작 조건 불만족 시 컨테이너 재시작 조건 불만족 시 트래픽 차단 초기화 완료에 시간 제한, 재시작 가능
주요 사용 사례 애플리케이션 중단 시 자동 복구 트래픽 로드 밸런싱 전에 애플리케이션 준비 애플리케이션 초기화 전에 특정 조건 확인

Liveness Probe YAML 파일

apiVersion: v1
kind: Pod
metadata:
  name: liveness-pod
spec:
  containers:
  - name: my-container
    image: my-image
    livenessProbe:
      httpGet:
        path: /healthz  # 애플리케이션의 상태를 확인할 엔드포인트
        port: 8080      # 사용할 포트
      initialDelaySeconds: 3  # 컨테이너 시작 후 대기 시간
      periodSeconds: 5         # 주기적으로 Probe 수행 간격

Readiness Probe YAML 파일

apiVersion: v1
kind: Pod
metadata:
  name: readiness-pod
spec:
  containers:
  - name: my-container
    image: my-image
    readinessProbe:
      httpGet:
        path: /ready   # 애플리케이션의 서비스 가능 여부 확인 엔드포인트
        port: 8080      # 사용할 포트
      initialDelaySeconds: 5  # 컨테이너 시작 후 대기 시간
      periodSeconds: 10        # 주기적으로 Probe 수행 간격

Startup Probe YAML 파일

apiVersion: v1
kind: Pod
metadata:
  name: startup-pod
spec:
  containers:
  - name: my-container
    image: my-image
    startupProbe:
      httpGet:
        path: /startup  # 초기화 상태 확인 엔드포인트
        port: 8080       # 사용할 포트
      initialDelaySeconds: 10  # 컨테이너 시작 후 대기 시간
      periodSeconds: 5          # 주기적으로 Probe 수행 간격
      failureThreshold: 30      # 초기화가 지연된 경우 재시도 횟수 제한
728x90
반응형
LIST