본문 바로가기

Kubernetes

(3)
[kubernetes] liveness, readiness probe에 관하여(feat. period, timeout seconds) liveness는 health 체크 후에 특정 threshold에 도달하면 pod을 restart 시킨다. readiness는 health 체크 후에 특정 threshold에 도달하면 pod을 서비스에서 제외시켜버린다. 성능테스트를 하다가 hpa 동작 과정에서 latency가 급격히 증가하는 케이스가 있는데, 이것은 readiness probe 설정을 안해주었기 때문이다. period, timeout seconds 라는 옵션이 있다. 일반적인 동작 방식은 아래 표와 같다. (표 삽입) 위 표를 예시를 통해 알아보자. initialDelay: 60초 timeoutSeconds: 3초 periodSeconds: 10초 응답을 1초만에 주는 서버가 있다고 가정하자. (실패를 리턴) 1. request를 보낸다..
[Docker] Dockerfile cache 및 작성 Tip Kubernetes에서 보통 컨테이너 런타임으로 Docker를 사용한다. 그 말은 즉, 이미지를 빌드 하는 영역은 Docker를 통해 진행이 되는데 이 때 사용되는 Dockerfile 작성 Tip을 알아본다. 1. Cache에 관하여 기본적으로 Docker를 사용하는 사람들이 Dockerfile 각 명령어 한 줄 마다 layer가 쌓이고 캐싱이 된다라는 것 까지만 알고 있고, Dockerfile best practice 공식 Document에 보면 정확히 어떤 기준으로 캐싱을 사용하는지 아는 것이 중요하다고 나와있음에도 불구하고 이를 잘 모르는 경우가 많다. Dockerfile 명령어 마다 캐싱을 사용하는 기준이 다른데, 핵심은 ADD와 COPY 명령어를 제외한 모든 명령어는 Dockerfile에 기재된..
[Kubernetes] ConfigMap 사용 이유 컨테이너에 사용되는 이미지는 dev부터 prd까지 동일한 형상을 가져야하며 이를 위해 컨테이너에서 필요한 환경 설정 내용을 컨테이너와 분리하여 사용해야 한다. 위 설명은 configmap을 사용하는 이유에 대해 검색하면 나오는 가장 흔한 답변인데, 내용 자체는 틀리지 않았지만 configmap을 사용하는 이유에 대한 답변은 될 수 없다. configmap을 사용하는 가장 핵심 이유는 의존성 제거이다. configmap을 사용하지 않을 경우 도커파일안에 설정파일을 COPY하는 과정이 필요하다. COPY를 하더라도 서비스가 동작하는데 아무런 문제가 없고, 무엇보다 dev에서부터 prd까지 하나의 컨테이너 형상으로 동작하는 것이 가능하다.(deployment에서 cmd 동작 값을 변경시켜주면서 실행) 그런데 ..