
오늘은 쿠버네티스 구축한 내용을 정리해보겠다.
가장 기본적인 쿠버네티스를 이용한 배포 방식을 이론과 함께 실습해보았다.
쿠버네티스는 쉽게 말해 방대한 컨테이너들의 컨트롤러라고 보면 된다.
쿠버네티스를 알기 위해서는 컨테이너를 우선 알아야한다.
1차 : 이론 (컨테이너 ~ 쿠버네티스)
컨테이너란?
컨테이너란 가상화된 운영체제 위에서 어플리케이션을 독립적인 실행에 필요한 파일을 모은 패키지를 말한다.
정의를 쉽게 해석하면 컨테이너는 "프로그램 + 실행에 필요한 모든 것을 한 상자에 담아 놓은 것"으로 아래의 것들이 포함되어 있다.
- 애플리케이션 코드 (Flask, Spring 등)
- 실행 환경 (Java, Python, Node)
- 라이브러리 / 의존성
- 설정값
- 실행 명령

Virtual Machine과 어떤 차이가 있는 걸까?
핵심은 경량화다.
Virtual Machine은 OS까지 가상화 하는 걸 말한다면 Container는 운영체제 위에서 앱만 격리시킨걸 말한다.
그러다보니 Virtual Machine에 비해 가볍고 빠르다는 장점이 있다.
Container Engine
: 컨테이너를 관리하기 위한 API나 CLI 도구를 제공하는 소프트웨어를 말한다.
쉽게 말해 컨테이너를 쓰기 쉽게 만들어주는 도구이다. Docker와 Podman이 그 예시다.
이미지 빌드, 이미지 pull, 컨테이너 실행, 중지를 담당한다.
Contriner Runtime
: 컨테이너를 실제로 실행시키는 핵심 엔진으로 컨테이너 생성 실제 실행하는 역할을 한다.
그러면 Docker는 무엇인가?
컨테이너를 관리 및 운영하는 오픈 소스 가상화 플랫폼이다.

DockerFile
도커 파일은 도커 이미지를 생성하기 위한 설정 파일이다.
Docker Image
도커 이미지는 컨테이너 실행에 필요한 파일과 설정 값 등을 포하고 있으며 도커 파일의 빌드 결과 생성된다.
Docker Container
도커 컨테이너는 격리된 공간에서 어플리케이션을 동작시킨 상태로, 도커 이미지의 Run한 결과 실행된 인스턴스를 말한다.
※ 참고
Podman은 무엇인가?
podman은 리눅스 시스템에서 컨테이너 및 이미지를 실행/관리/배포할 수 있도록 설계된 Daemonless컨테이너 엔진이다.
※ Daemonless인 이유는 도커에서는 Docker daemon기반으로 동작하기 때문이다.

쿠버네티스란?
쿠버네티스란 컨테이너화된 어플리케이션을 자동으로 배포, 스케일링 및 관리해주는 오픈소스 시스템을 말한다.
앞에서도 말했듯 방대한 컨테이너들의 컨트롤러라고 보면 된다.
쿠버네티스의 구성

- Cluster = 컨테이너화된 어플리케이션을 실행하기 위한 일련의 노드 머신의 집합을 말한다.
- Master Node = 클러스터 전체를 컨트롤하며 내부에 있는 모든 노드(워커노드)를 관리하는 가상 머신
- Worker Node = 마스터에 의해 명령을 받고 실제 컨테이너들이 생성되고 일을 하는 가상 머신
- kubectl = 클라이언트가 쿠버네티스에 명령하는 도구(사용자가 쓰는 CLI)
- kube-api-server = 쿠버네티스의 모든 통신은 kube-api-server로 전달/통신 된다.
- kube-controller-manager = 파드들을 관리하는 각각의 컨트롤러를 제어하는 역할
- cloud-controller-manager = 컨트롤러들을 클라우드 서비스와 연결하여 관리
- kube-scheduler = 리소스를 자원 할당이 가능한 노드에 할당하는 역할
- etccd = 클러스터 내의 모든 세부적인 데이터를 저장하는 key-value 저장소.
- kubelet = 각 노드에 설치된 데몬(API server의 지시를 받아 동작하는 역할, 실제 컨테이너를 만지는 주체)
pod안의 컨테이너를 대상으로 지속적인 헬스체크 진행. - kube-proxy = service로 들어온 트래픽을 올바른 pod로 보내주는 네트워크 담당자
쿠버네티스의 리소스


Namespace
네임스페이스는 클러스터를 논리적으로 분리하여 사용하는 것.
네임스페이스 별 사용자의 권한 제어가 가능하다
Deployment
레플리카셋을 관리하면서 실행시켜야 할 파드의 배포 및 관리를 하는 리소스
ReplicaSet
파드의 개수를 유지하고 관리하는 리소스
Pod
컨테이너가 직접 실행되는 장소
컨테이너를 실행하는 최소단위로 하나 이상의 컨테이너를 포함하며 IP를 하나씩 갖는다.
Service
클러스터 외부에서 클러스터 내부 파드에 접근 할 수 있도록 고정 IP를 제공하는 리소스
파드 간 로드 밸런싱 지원
Ingress
클러스터 외부에서 클러스터 내부로 들어오는 네트워크 트래픽을 로드밸런싱 함.
로드 밸런싱 기능 + TLS/SSL 인증서 처리
Volume
외부 저장공간으로 컨테이너가 죽어도 데이터가 남아있도록 하는 역할을 한다.
pod에 붙이는 디스크라고 볼 수 있다.
컨테이너 밖에 있으며 pod안의 여러 컨테이너가 공유할 수도 있다.
PV
클러스터에 미리 준비된 실제 저장공간
PVC
pod가 이만한 저장공간 주세요 요청하는 요청자.
ConfigMap
컨테이너와 분리해서 환경설정 제공
Secret
보안 유지가 필요한 자격증명 및 개인 암호화 키 같은 정보를 저장 관리
※ 참고
지금까지 쿠버네티스가 무엇인지를 알아보았고
이제 실제로 쿠버네티스를 구축해보는 실습을 진행해보겠다.
'Cloud' 카테고리의 다른 글
| [Cloud] - AI Cloud 트랙 2일차 - 쿠버네티스(Kubernetes) 실습편 (0) | 2025.12.24 |
|---|---|
| [Cloud] AI Cloud 트랙 1일차 - overview (1) | 2025.12.23 |