반응형
라이브니스 프로브(liveness probe)란?
쿠버네티스에서 컨테이너가 살아 있는지, 죽어있는지 확인 할 수 있게 해준다.
라이브니스 프로브에는 3가지 메커니즘이 존재합니다.
- HTTP GET 프로브, 지정한 IP 주소, 포트, 경로에 HTTP GET 요청을 통해 컨테이너의 상황을 확인 합니다.
- TCP 소켓 프로브, 컨테이너의 지정된 포트에 TCP 연결을 시도하여 컨테이너의 상황을 확인 합니다.
- Exec 프로브, 컨테이너 내의 임의의 명령을 실행하고 명령의 종료 상태 코드를 확인 하여 컨테이너의 상황을 확인 합니다.
ex) HTTP GET 프로브 방식
apiVersion: v1
kind: Pod
metadata:
name: kubia-liveness
spec:
containers:
- image: luksa/kubia-unhealthy
name: kubia
livenessProbe: <= 컨테이너 안에 정의.
httpGet:
path: /
port: 8080
위의 yaml 코드처럼 path와 포트를 지정하여 컨테이너의 상황을 확인 할 수 있습니다.
다만, livenessProbe를 설정할 때, 초기 지연 값을 넣어주지 않으면 컨테이너 시작되자마자 프로브가 확인을 하기 때문에 애플리케이션이 요청을 받을 준비가 되지 않아 프로브가 실패할 경우가 많습니다.
ex) 초기 지연 시간 추가
livenessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 15 <= 이렇게 해두면, 컨테이너가 시작되고 15초 이후에 프로브가 HTTP GET 요청을 보냅니다.
라이브니스 프로브를 설정해두면, 컨테이너가 비정상 일 때, 감지하여 자동으로 컨테이너를 재시작 시켜줍니다.
다만, 해당 작업은 Control-Plane에서 실행을 하는 것이 아닌 해당 Worker Node의 kubelet에서 실행을 해줍니다.
데몬셋(DaemonSet) 이란?
쿠버네티스에서 원하는 노드에 원하는 파드가 생성할 수 있게 해줍니다.
파드가 원하는 노드에서 생성되기 위해선 데몬셋에서 정의하는 nodeSelector에 적어둔 레이블이 해당 노드에도 있어야 합니다.
ex)

apiVersion: apps/v1
kind: DaemonSet
metadata:
name: ssd-monitor
spec:
selector:
matchLabels:
app: ssd-monitor
template:
metadata:
labels:
app: ssd-monitor
spec:
nodeSelector:
disk: ssd <= 노드에 해당 레이블이 있어야 합니다.
containers:
- name: main
image: luksa/ssd-monitor

반응형
'쿠버네티스 > 이론' 카테고리의 다른 글
쿠버네티스 Ingress 란? (0) | 2024.11.04 |
---|---|
쿠버네티스 Service 란? (0) | 2024.11.01 |
쿠버네티스 Job 리소스 란? (0) | 2024.10.31 |
쿠버네티스 클러스터 구조 알아보기 (0) | 2024.04.10 |
Kubernetes란? (0) | 2024.01.07 |