
readnessProbe

service 분배시 트래픽을 보통 node 1 , node2 50 : 50 분배 중 node2가 죽으면
node1로 100 유지 하고 node3 재구동시 readness걸려있으면 pod 생성 될 때 까지
node1 100 주고 생성되면 50 : 50 다시 분배
apiVersion: v1
kind: Service
metadata:
name: svc-readiness
spec:
selector:
app: readiness
ports:
- port: 8080
targetPort: 8080
apiVersion: v1
kind: Pod
metadata:
name: pod1
labels:
app: readiness
spec:
containers:
- name: container
image: kubetm/app
ports:
- containerPort: 8080
terminationGracePeriodSeconds: 0
apiVersion: v1
kind: Pod
metadata:
name: pod-readiness-exec1
labels:
app: readiness
spec:
containers:
- name: readiness
image: kubetm/app
ports:
- containerPort: 8080
readinessProbe:
exec:
command: ["cat", "/readiness/ready.txt"]
initialDelaySeconds: 5
periodSeconds: 10
successThreshold: 3
volumeMounts:
- name: host-path
mountPath: /readiness
volumes:
- name : host-path
hostPath:
path: /tmp/readiness
type: DirectoryOrCreate
terminationGracePeriodSeconds: 0
kubectl get events -w | grep pod-readiness-exec1
kubectl describe pod pod-readiness-exec1 | grep -A5 Conditions
kubectl describe endpoints svc-readiness
touch ready.txt
livenessProbe

Pod 구동시 App Error 발생시 pod 는 running 상태지만 app은 error
상태를 재기동시켜줌
apiVersion: v1
kind: Service
metadata:
name: svc-liveness
spec:
selector:
app: liveness
ports:
- port: 8080
targetPort: 8080
apiVersion: v1
kind: Pod
metadata:
name: pod2
labels:
app: liveness
spec:
containers:
- name: container
image: kubetm/app
ports:
- containerPort: 8080
terminationGracePeriodSeconds: 0
apiVersion: v1
kind: Pod
metadata:
name: pod-liveness-httpget1
labels:
app: liveness
spec:
containers:
- name: liveness
image: kubetm/app
ports:
- containerPort: 8080
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
failureThreshold: 3
terminationGracePeriodSeconds: 0
apiVersion: v1
kind: Pod
metadata:
name: pod-probe
labels:
app: probe
spec:
containers:
- name: probe
image: kubetm/app
ports:
- containerPort: 8080
readinessProbe:
exec: # command 내용으로 점검
command: ["cat", "/readiness/ready.txt"]
initialDelaySeconds: 10
periodSeconds: 5
successThreshold: 3 # 3번 성공시 Service와 연결됨
livenessProbe:
httpGet: # HttpGet 메소드로 점검
path: /health # 체크할 경로
port: 8080 # 체크할 Port
initialDelaySeconds: 5 # 최초 5초 후에 LivenessProbe 체크를 시작함
periodSeconds: 10 # 10초마다 LivenessProbe 체크
failureThreshold: 3 # 3번 실패시 Pod Restart
kubectl get events -w | grep pod-readiness-exec1
watch "kubectl describe pod pod-readiness-exec1 | grep -A20 Events"