Cloud Architect 꿈꾸기

Cloud Computing/Kubernetes

Kubernetes Object - Pod, Label, Node Schedule

HwanJae 2021. 1. 12. 17:20

1. Pod

출처: kubernetes.io

Pod 안에는 하나의 독립적인 서비스를 구동할 수 있는 컨테이너들이 존재한다.

컨테이너는 각 서비스가 연결될 수 있는 포트를 가지고 있는데,

한 컨테이너에서 여러개의 포트를 가질 수는 있지만, 한 Pod 안에서 컨테이너끼리는 포트가 중복될 수 없다.

Pod가 생성될 때는 고유의 IP 주소가 할당 되는데, 만약 컨트롤러를 통해 Pod가 죽은 후 다시 생성되면 IP 주소가 변경된다. (휘발성)

Pod는 쿠버네티스 클러스터 내에서만 주소에 접근이 가능하며 외부에서는 접근이 불가능하다.


2. Label

출처 : https://www.wecloudpro.com/2020/04/06/kubernetes-nodes-auto-label.html

Label은 Pod 뿐만 아니라 모든 오브젝트에서 사용될 수 있는데, 사용 목적에 따라 오브젝트를 분류하고, 분류된 오브젝트들만 따로 골라 연결하기 위해 존재하는 태깅이다.

Label은 Key:Value 쌍으로 구분되며 한 Pod에는 여러 개의 Label을 부여할 수 있다.

서비스를 작성할 때 Pod의 Label을 붙여주면 해당 Label의 Pod가 전부 연결된다.


3. Node Schedule

Pod는 여러 노드들 중에 한 노드에 올라가야 하는데, 노드를 지정하는 방법은 두 가지가 있다.

1) 노드에 연결한 Label을 Pod를 만들 때 지정하여 직접 선택하는 방법.

2) Kubernetes의 스케줄러가 노드의 자원량과 Pod가 사용할 리소스 사용량을 판단하여 Pod를 자동으로 할당하는 방법.

Pod를 생성할 때 Pod에 사용될 리소스양을 설정할 수 있는데, 이를 참조해 Node Scheduler가 알아서 Pod를 스케줄링해준다.

만약 리소스를 설정하지 않으면 Pod 안에 있는 컨테이너 앱에서 부하가 생길 때 무한으로 노드에 있는 자원을 사용하려 하며, 그 노드안에 있는 다른 Pod들은 사용할 수 있는 자원이 없기 때문에 다 같이 죽는 상황이 발생할 수 있다.

 

'Cloud Computing > Kubernetes' 카테고리의 다른 글

Kubernetes Object - ConfigMap, Secret  (0) 2021.01.13
Kubernetes Object - Volume  (0) 2021.01.12
Kubernetes Object - Service  (0) 2021.01.12
Kubernetes 시작하기  (0) 2021.01.11
Kubernetes 환경 세팅  (0) 2021.01.07