헬스 체크
apiVersion: v1
kind: Pod
metadata:
name: webapl
spec:
containers:
- name: webapl
image: maho/webapl:0.1 # (1)핸드러를 구현한 애플리케이션
livenessProbe: # (2)애플리케이션이 살아있는지 확인
httpGet:
path: /healthz # 확인 경로
port: 3000
initialDelaySeconds: 3 # 검사 개시 대기 시간
periodSeconds: 5 # 검사 간격
readinessProbe: # (3) 애플리케이션이 준비되었는지 확인
httpGet:
path: /ready # 확인 경로
port: 3000
initialDelaySeconds: 15
periodSeconds: 6
livenessProbe - 컨테이너가 살아있는지 확인
기본 설정으로 활성 프로브가 연속해서 3번 실패하면 kubelet이 컨테이너를 강제 종료하고 재기동한다.
헬스 체크는 파드가 스케줄된 노드에 있는 kubelet이 수행한다. 노드의 하드웨어 장애 시에는 kubelet도 정지되기 때문에 노드의 장애 대책으로는 적합하지 않다. 따라서 노드의 장애 대책은 헬스 체크가 아닌 컨트롤러를 사용해야 한다.
사이드카 패턴
하나의 파드 안에 여러개의 컨테이너를 담아서 동시에 실행시키는 패턴
## 사이드카 파드 예제
#
apiVersion: v1
kind: Pod
metadata:
name: webserver
spec:
containers: ## 메인 컨테이너
- name: nginx
image: nginx
volumeMounts:
- mountPath: /usr/share/nginx/html
name: contents-vol
readOnly: true
- name: cloner ## 사이드카 컨테이너
image: maho/c-cloner:0.1
env:
- name: CONTENTS_SOURCE_URL
value: "https://github.com/takara9/web-contents"
volumeMounts:
- mountPath: /data
name: contents-vol
volumes: ## 공유 볼륨
- name: contents-vol
emptyDir: {}
pod안의 메인 컨테이너를 확장하고 향상시키며 개선시키는 역할을 하는 컨테이너를
Sidecar Container
라고 하며, 해당 패턴을 Sidecar Pattern
이라고 합니다.
Loading Comments...