쿠버네티스(Kubernetes)는 컨테이너 오케스트레이션 플랫폼으로, 대규모의 컨테이너화된 애플리케이션을 관리하기 위해 사용됩니다. 쿠버네티스에서 가장 중요한 개념 중 두 가지는 노드(Node)와 파드(Pod)입니다. 이 둘은 쿠버네티스 클러스터의 기본 구성 요소로 사용되며, 각각 다른 역할을 수행합니다.
노드(Node):
노드는 클러스터 내에서 애플리케이션이 실행되는 물리적인 또는 가상의 서버입니다. 노드는 클러스터의 작업자(Worker)로서 역할하며, 컨테이너화된 애플리케이션을 실행하고 관리하는 주체입니다. 각 노드에는 컨테이너 런타임(예: Docker)과 쿠버네티스 에이전트(Kubelet)가 설치되어 있어야 합니다. 노드는 클러스터 내에서 컨테이너를 실행할 수 있는 물리적인 자원(예: CPU, 메모리, 디스크)을 제공하며, 클러스터 내에서 일련의 작업을 수행합니다.
파드(Pod):
파드는 쿠버네티스의 가장 작은 배포 단위입니다. 파드는 하나 이상의 컨테이너 그룹을 묶어서 관리하며, 공유된 네트워크(Namespace)와 스토리지(Volume)를 사용하는 애플리케이션의 실행 단위입니다. 파드 내의 컨테이너는 동일한 호스트에서 실행되며, 같은 네트워크 인터페이스와 IP 주소를 공유합니다. 또한, 파드는 컨테이너의 생명 주기를 관리하고 컨테이너 간 통신을 가능하게 하는 네트워킹 모델을 제공합니다.
파드는 다수의 컨테이너를 함께 실행할 수 있으며, 이러한 컨테이너는 동일한 논리적인 그룹으로 구성됩니다. 예를 들어, 웹 서버 컨테이너와 데이터베이스 컨테이너를 하나의 파드로 묶어서 실행할 수 있습니다. 파드 내의 컨테이너는 동일한 호스트에서 실행되므로, 서로 간에 로컬 네트워크를 통해 효율적으로 통신할 수 있습니다. 또한, 파드는 동일한 IP 주소와 포트 범위를 공유하므로, 다른 파드와 통신하기 위해 내부 IP를 사용할 수 있습니다.
노드와 파드는 쿠버네티스 클러스터의 중요한 구성 요소로서 상호작용하며, 애플리케이션의 배포와 관리를 담당합니다. 노드는 컴퓨팅 리소스를 제공하고 파드를 실행하는 역할을 수행하며, 파드는 컨테이너 그룹의 실행과 관리를 담당합니다. 이러한 구성 요소들은 쿠버네티스의 확장성과 유연성을 제공하여 애플리케이션을 효과적으로 실행하고 관리할 수 있게 도와줍니다.
'Technology' 카테고리의 다른 글
[AWS] Elastic Beanstalk - Linux 플랫폼 확장 (0) | 2023.05.05 |
---|---|
[Django] Gunicorn - Threads (0) | 2023.05.04 |
[Ubuntu] pip2와 pip3 모두 설치하기 (0) | 2023.05.04 |
[RabbitMQ] EC2에 RabbitMQ 서버 만들기 (0) | 2023.05.04 |
[Ubuntu] apt update && apt upgrade (0) | 2023.05.04 |