1. 쿠버네티스의 구성
우선 파드를 말씀드리기 전에 쿠버네티스의 간단한 구성도 부터 확인하겠습니다.
쿠버네티스 클러스터 라는 가장 큰 단위아래 노드가 있습니다. 노드는 쉽게 VM과 같은 실제 호스트이며 노드 안에 파드가 구성되어있습니다. 파드는 주로 업무단위로 구성되어있고, 그 업무안에 실제 서비스와 같은 작업들을 할 수 있는 애플리케이션이 뜨는 컨테이너가 존재합니다.
노드의 모습을 다시 확대해서 살펴보면, 이처럼 노드안에는 다양한 파드가 존재할 수 있습니다. 이전 아키텍쳐부분에서 말씀드렸던대로 큐블렛이 있어 파드구성정보를 받아 컨테이너런타임과 함께 컨테이너를 동작시킵니다.
쿠버네티스에서 가장 기본 단위요소가 되는 파드입니다. 파드는 쿠버네티스 클러스터에서 애플리케이션을 배포하고 동작하는 프로세스입니다. 파드의 컨테이너는 당연히 같은 노드에서 동작하고, 하나의 파드내의 컨테이너들은 저장소와 네트워크 IP 등을 공유합니다. 그림에서도 하나의 파드안에 볼륨이 여러 개거나 컨테이너가 여러 개인 모습을 볼 수 있는데, 이처럼 파드내에는 여러 리소스와 애플리케이션이 존재할 수 있습니다.
2. 레이블
파드를 포함한 쿠버네티스 오브젝트들을 식별하고 속성을 지정하기위해 레이블을 사용합니다. 이 레이블들은 레이블셀렉터로 검색, 식별하여 배치하거나 변경 등 명령을 내리는데 구분짓기 위해 많이 사용합니다.
위 그림에서 살펴보자면, 먼저 설명드리겠지만 서비스라는 네트워크 관련 오브젝트가 있습니다. 이 서비스는 레이블셀렉터를 nginx 를 가지고있는데, 아래 여러 파드중 nginx 라는 레이블을 가진 파드들만 선택되어 네트워크 서비스를 제공받게 됩니다. 옆 apache 레이블은 위 서비스 1 을 제공받을 수 없습니다.
이와 비슷하지만 셀렉터가 존재하지 않는 어노테이션이 있습니다. (API나 다른 어플리케이션이 참조하여 사용가능함)
3. 프로브
파드는 위와같은 생명주기를 가지고있습니다. 파드가 시작되면 pending 그리고 running 되어 마지막으로 성공 또는 실패 상태로 됩니다. 파드가 실행되어 특정노드에 할당되면 중지되거나 종료될때까지 같은 노드에서 실행됩니다. 즉 파드는 일회용으로 간주되며 이런 파드를 관리하기위해 후에 설명할 컨트롤러 리소스를 이용해 관리합니다.
이런 파드와 그 안에서 실행되는 컨테이너를 헬스체크하기 위한 프로브들이 있는데 우선 위에 보이는 스타트업프로브가 우선 컨테이너의 실행을 확인합니다. 성공시 아래 Yes로 내려와 레디니스 프로브와 라이브니스 프로브가 체크합니다. 컨테이너가 멈추거나 비정상종료되면 라이브니스가 Failure 상태로 체크하여 컨테이너를 재시작합니다. 레디니스 프로브는 요청을 처리할 수 없는 상태가되면 traffic 을 보내지않는 상태, 즉 해당파드로 로드밸런싱을 중단시킵니다. 이 때 파드를 종료하지는 않습니다.
'IT 공부 > PaaS' 카테고리의 다른 글
[K8S] 4. 네트워크 서비스 (0) | 2024.01.16 |
---|---|
[K8S] 3. 컨트롤러 리소스 (0) | 2024.01.12 |
[K8S] 1. 아키텍처 (1) | 2024.01.10 |
[k8s] 쿠버네티스 기초 사용방법 (1) | 2022.12.19 |
[k8s] 쿠버네티스 설치 (0) | 2022.11.02 |