5.5. Signaling when a pod is ready to accept connections
Introducing readiness probes
container의 readiness probe가 성공하면 해당 컨테이너는 request를 받을 준비가 된 것
liveness probe와는 다르게 readiness가 실패해도 pod가 제거되거나 다시 시작되지는 않는다.
Adding a readiness probe to a pod
$ kubectl edit rc kubia
Add spec.template.spec.containers.
in kubia-rc-readnessprobe.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: kubia
spec:
replicas: 3
selector:
app: kubia
template:
metadata:
labels:
app: kubia
spec:
containers:
- name: kubia
image: luksa/kubia
ports:
- name: http
containerPort: 8080
readinessProbe:
exec:
command:
- ls
- /var/ready
$ kubectl get po
NAME READY STATUS RESTARTS AGE
kubia-b2dgr 0/1 Running 0 32s
kubia-m7cff 0/1 Running 0 32s
kubia-nj6vj 0/1 Running 0 32s
준비될 때까지 READY
가 활성화 되지 않는 것을 볼 수 있음
이제 kubia-b2dgr
에만 /var/ready
파일을 만들어보자.
$ kubectl exec kubia-b2dgr -- touch /var/ready
$ kubectl get po
NAME READY STATUS RESTARTS AGE
kubia-b2dgr 1/1 Running 0 82s
kubia-m7cff 0/1 Running 0 82s
kubia-nj6vj 0/1 Running 0 82s
Understanding what real-world readiness probes should do
아주 간단한 (HTTP request를 받는 서버) 앱이라도 readniess probe를 두어야 한다.