워밍업 클럽 4기 DevOps - 미션 2

워밍업 클럽 4기 DevOps - 미션 2

응용 과제 1번

  • startupProbe 가 실패 되도록 설정해서 Pod 가 무한 재기동 상태가 되도록 설정해 보세요.

startupProbe 의 경우 pod 가 실행된 이후 k8s 에서 지속적으로 요청을 보내게 되는데 이때 pod 의 애플리케이션이 구동되지 않았더라도 요청을 보내게된다. 애플리케이션이 구동되지 않았을때 요청을 보내면 당연하게도 실패 응답이 오기 때문에
startupProbe 의 failureThreshold 를 너무 낮게 설정하면 pod 가 무한 재기동 상태에 빠질 수 있다.

image(failureThreshold 를 1로 설정 시 위와 같은 event 발생)

startupProbe 요청 -> 실패 응답 -> failureThreshold 수 확인 -> pod 재기동 -> startupProbe 요청 -> ... 반복

 


응용과제 2번

  • 일시적 장애 상황(App 내부 부하 증가)가 시작 된 후, 30초 뒤에 트래픽이 중단되고, 3분 뒤에는 App 이 재기동 되도록 설정해 보세요.

livenessProbe 의 설정 수정

  • failureThreshold: 3 -> 18

  • periodSeconds: 10 -> 10


    설정 중 failureThreshold 의 값을 3 에서 18로 변경하여 30초 후 애플리케이션이 재 기동 되는것이 아니라 180초 뒤 애플리케이션이 재 기동 되도록 변경

     

    load 시작
    image애플리케이션 재 기동


    image


    응용과제 3번

  • Secret 파일(/usr/src/myapp/datasource/postgresql-info.yaml)이 존재하는지 체크하는 readinessProbe를 만들어 보세요.


    readinessProbe 의 설정을 기존에 httpGet 에서 exec 를 통핸 command 를 보내도록 수정

  • command: ["cat", "/usr/src/myapp/datasource/nofile.yaml"]


    image위와 같은 이벤드가 발생하면서, pod 가 정상 구동되지 않는 모습을 볼 수 있다.
    postgresql-info.yaml 해당 파일은 존재하고 있어서 해당 파일을 체크하는 명령어를 넣었을때는 잘 동작된다.

     

댓글을 작성해보세요.

채널톡 아이콘