step7. 매니페스트와 파드

생성일
Feb 27, 2022 03:12 AM
태그

헬스 체크

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...