Kubernetes
컨테이너화된 애플리케이션을 자동으로 배포, 확장, 관리하는 오픈소스 플랫폼
클러스터 형태로 여러 노드에 걸쳐 애플리케이션을 배포/관리
Minikube
로컬 환경에서 쿠버네티스 클러스터를 실행할 수 있는 경량 툴
실습이나 테스트 목적으로 개발된 단일 노드 쿠버네티스 클러스터를 제공
kubectl
쿠버네티스 클러스터와 상호작용할 수 있는 CLI 툴
클러스터 내 리소스를 관리하는 명령어 제공
Minikube는 로컬에서 쿠버네티스 클러스터를 실행하고, kubectl은 그 클러스터를 관리하기 위한 명령어이다. 즉, minikube가 클러스터를 제공하고, kubectl은 그 클러스터를 제어하는 도구임. Minikube를 실행한 후, kubectl을 통해 클러스터의 리소스를 관리
Cluster
쿠버네티스 리소스를 관리하는 전체 시스템
- 여러 노드가 모여 하나의 클러스터를 형성하며, 각 노드에서 파드를 실행
- 여러 서버(노드)를 묶어 애플리케이션을 효율적으로 배포/관리
- 마스터 노드가 클러스터 전체를 관리하며, 노드에 파드를 배치하는 작업을 수행
- 클러스터는 애플리케이션이 항상 안정적이고 확장 가능하도록 보장하는 구조
Node
노드는 클러스터에 속한 VM
- 쿠버네티스 에이전트(예: kubelet)를 실행하며, 파드를 관리하고 모니터링
- 하나의 노드는 여러 개의 Pod을 실행할 수 있는 컴퓨팅 리소스 제공
- 마스터 노드의 명령을 받아 애플리케이션을 담고 있는 파드 실행/상태 보고
- 실제로 컨테이너(파드)를 실행하는 일종의 작업자(worker) 서버
Pod
쿠버네티스에서 가장 작은 배포 단위
- 보통 하나의 파드에는 하나의 컨테이너가 있지만, 여러 컨테이너를 하나의 파드에 묶을 수도 있음
- 파드는 동일한 네트워크 공간(IP 주소)를 공유하며, 컨테이너들 간 통신 가능
- 특정 애플리케이션이나 서비스의 인스턴스를 실행하며, 쿠버네티스가 이를 관리
- 노드에 배포되어 실제로 애플리케이션이 실행되는 작은 단위