CKA SimB - Q4 Service 접근 가능 여부로 Pod Ready 설정

(Service가 도달 가능할 때 Ready 상태인 Pod에서 넘어옴)

1 개요[ | ]

ReadinessProbe를 통한 서비스 의존성 기반 Pod 상태 관리
  • 서비스가 준비되었을 때만 Pod이 Ready 상태가 되도록 ReadinessProbe를 구성하는 실습
  • ReadinessProbe는 외부 의존 서비스의 정상 동작 여부를 확인하는 데 활용할 수 있음
  • 여기서는 wget 명령을 사용하여 특정 ClusterIP 서비스를 확인함

2 ReadinessProbe 구성 Pod 생성[ | ]

apiVersion: v1
kind: Pod
metadata:
  name: ready-if-service-ready
spec:
  containers:
  - name: ready-if-service-ready
    image: nginx:1-alpine
    livenessProbe:
      exec:
        command: ["true"]
    readinessProbe:
      exec:
        command: ["sh", "-c", "wget -T2 -O- http://service-am-i-ready:80"]
  • 생성 후 Ready 상태가 되지 않음
# k get pod ready-if-service-ready
NAME                     READY   STATUS    RESTARTS   AGE
ready-if-service-ready   0/1     Running   0          10s
  • 이벤트 확인 시 ReadinessProbe 실패 확인 가능
# k describe pod ready-if-service-ready | grep Readiness
Readiness probe failed: command timed out: "sh -c wget -T2 -O- http://service-am-i-ready:80"

3 서비스에 연결될 대상 Pod 추가[ | ]

  • id=cross-server-ready 라벨을 가진 Pod 생성
# k run am-i-ready --image=nginx:1-alpine --labels="id=cross-server-ready"
  • 기존 서비스가 해당 Pod를 endpoint로 자동 연결함
# k get ep service-am-i-ready
NAME                 ENDPOINTS       AGE
service-am-i-ready   10.44.0.30:80   6d

4 Ready 상태 확인[ | ]

  • ReadinessProbe가 통과되면 Pod가 Ready 상태로 변경됨
# k get pod ready-if-service-ready
NAME                     READY   STATUS    RESTARTS   AGE
ready-if-service-ready   1/1     Running   0          2m

5 핵심 요약[ | ]

  • ReadinessProbe는 서비스 준비 여부를 감지하여 트래픽을 받을 준비가 되었는지 판단
  • 의존성이 있는 서비스가 준비되지 않으면 Ready 상태가 되지 않아 부하 분산에서 제외됨
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}