본문 바로가기
  • 오늘처럼
소프트웨어 아키텍처/Kubernetes

[Kubernetes] 1-04. Readiness probe 사용해보기

by bluefriday 2022. 5. 2.
반응형

파드의 라이프 사이클 관리를 위해, liveness probe와 readiness probe 를 사용할 수 있다.

여기서는 readiness probe를 사용하여 실제로 파드를 이용할 수 있는지 확인하는 실습을 수행한다.

시나리오는 다음과 같다.

  1. A 파드를 구동하면서 B 파드가 구동되길 기다리게 설정
  2. A 파드 구동후 대기
  3. B 파트 구동
  4. A 파드 Readiness probe적용 확인

 

 먼저 A파드는 아래와 같이 설정한다.

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: pod-a
  name: pod-a
spec:
  containers:
  - image: nginx:latest
    name: container-a
    livenessProbe:
      exec:
        command:
        - 'true'
    readinessProbe:
      exec:
        command:
        - sh
        - -c
        - 'wget -T2 -O- http://service-b:80'
  dnsPolicy: ClusterFirst
  restartPolicy: Always

A 파드를 구동하면 다음과 같이 Ready 상태가 0/1으로 남아있음을 확인할 수 있다.

kubectl apply -f .yaml

kubectl get pod pod-a
NAME    READY   STATUS    RESTARTS   AGE
pod-a   0/1     Running   0          7s

이는 A 파드가 구동되면서 livenessProbe 를 충족하여 Running 상태로 변경되었으나, readinessProbe 의 조건이 충족되지 않아서이다. readniessProbe 의 command가 정상적으로 수행될 수 있도록 B 파드와 서비스를 생성한다. 

*서비스는 이미 생성되어 있다고 가정한다.

파드를 생성하면서 label 을 맞춰서 기존 서비스와 endpoint 를 연결해준다.

kubectl run pod-b --image=nginx:latest --labels="run=pod-b"

 파드b가 생성되면 서비스에서 enpoint를 확인할 수 있으며 A파드의 상태가 변경됨을 확인할 수 있다.

kubectl apply -f .yaml

kubectl get pod pod-a
NAME    READY   STATUS    RESTARTS   AGE
pod-a   1/1     Running   0          60s

댓글