23-05-22 Presentation

업데이트:     Updated:

카테고리:

태그:

[Q1.] 애플리케이션에 HTTP 500과 같은 에러가 발생한 경우, 컨테이너를 다시 실행해야 할 것입니다. HTTP 에러가 발생했다는 것을 어떻게 알 수 있을까요? 어떻게 해야 쿠버네티스가 에러가 발생한 컨테이너를 자동으로 재시작하게 만들 수 있을까요? (힌트: liveness probe 키워드를 검색하세요)


쿠버네티스에서는 liveness probe를 사용하여 컨테이너의 상태를 확인하고, 컨테이너가 응답하지 않을 경우 컨테이너를 재시작할 수 있습니다. 예를 들어, liveness probe는 애플리케이션이 데드락 상태에 빠져있는지 확인하는데 사용될 수 있습니다.

liveness probe는 컨테이너에서 kubelet에 의해 주기적으로 수행됩니다. 이를 통해 쿠버네티스가 에러가 발생한 컨테이너를 자동으로 재시작하게 만들 수 있습니다.

  • liveness probe 설정 방법

  1. HTTP GET probe: 컨테이너의 IP 주소, 포트 및 경로에 HTTP GET 요청을 보냅니다. HTTP 상태 코드가 200보다 크거나 같고 400보다 작으면 성공으로 간주됩니다.
  2. TCP Socket probe: 지정된 포트에서 컨테이너의 IP 주소에 대한 TCP 연결을 설정합니다. 연결이 설정되면 성공으로 간주됩니다.
  3. Exec probe: 컨테이너 내부에서 지정된 명령을 실행합니다. 명령의 종료 상태 코드가 0이면 성공으로 간주됩니다.

[Q2.] 왜 파드와 PV(퍼시스턴스볼륨)를 직접 연결하지 않는 걸까요?

Kubernetes에서 파드와 퍼시스턴스 볼륨(PV)같은 오브젝트를 관리하고 연결하는 것은 매우 중요합니다. 그 중에서도 파드와 PV를 연결할 때 직접 연결하는 것은 권장되지 않습니다.

그 이유는 파드와 PV의 라이프사이클이 다르기 때문입니다. 파드가 생성될 때 새로운 PV를 생성하거나 기존 PV에 바인딩할 수 있습니다. 그러나 파드가 삭제되어도 PV는 자동으로 삭제되지 않습니다. 그렇기 때문에, 파드와 PV를 직접 연결하면 파드가 삭제되어도 PV가 계속해서 존재하게 됩니다.

따라서, 파드와 PV를 직접 연결하지 않고, 파드를 통해 간접적으로 PV를 사용하는 것이 권장됩니다. 이를 위해서는 PV를 요청하는 클레임을 사용합니다. 클레임은 스토리지 용량 및 액세스 모드와 같은 특정 기준과 일치하는 특정 PV를 요청하는 것입니다. 파드가 삭제되면 클레임도 삭제되며, 다른 클레임에서 더 이상 사용되지 않는 경우 PV도 삭제됩니다.

클레임을 사용하여 파드와 PV를 연결하면 스토리지 리소스를 효율적으로 사용할 수 있으며, 더 이상 필요하지 않은 경우에는 리소스 릭과 같은 문제를 방지할 수 있습니다. 이를 통해 Kubernetes 클러스터가 효율적으로 운영될 수 있습니다.


Presentation 카테고리 내 다른 글 보러가기 🤠

댓글남기기