[Kubernetes] 1일차: 도커 호스트를 묶어주는 쿠버네티스 기초 완벽 정리
1. 쿠버네티스(K8s) 기본 개념
- 정의: 여러 대의 도커 호스트를 하나의 클러스터(여러 개를 하나처럼 관리)로 만들어주는 오케스트레이션 도구입니다.
- 사용 환경:
- 클라우드 플랫폼: AWS(EKS), GCP(GKE) 등 (로드 밸런서, 퍼시스턴트 볼륨 등 클라우드 전용 기능 활용 가능)
- 온프레미스: 자체 보유 서버 환경
2. 핵심 오브젝트(Object) 상세 분석
쿠버네티스는 모든 리소스를 오브젝트 형태로 관리합니다.
| 오브젝트 명 | 핵심 설명 및 특징 | 비고 |
| Pod (파드) | 쿠버네티스에서 생성하고 관리할 수 있는 최소 배포 단위입니다. 하나 이상의 컨테이너를 포함하며 저장소와 네트워크를 공유합니다. | 최소 단위 |
| Service (서비스) | 파드 집합에 접근할 수 있는 **고정된 엔드포인트(IP)**를 제공합니다. 파드가 교체되어 IP가 변해도 서비스 IP는 유지됩니다. | 네트워크 노출 |
| Volume (볼륨) | 컨테이너가 재시작되어도 데이터를 영구적으로 보존하기 위한 저장소입니다. 로컬 디렉터리나 클라우드 스토리지를 연결합니다. | 데이터 영속성 |
| Namespace (네임스페이스) | 클러스터 내의 리소스들을 논리적으로 구분하는 가상 클러스터입니다. 팀별, 환경별(Dev/Prod) 격리에 사용됩니다. | 리소스 격리 |
📌 서비스(Service) 타입 상세
- ClusterIP: 내부에서만 파드들에 접근할 때 사용
- NodePort: 모든 노드의 특정 포트를 개방하여 접근
- LoadBalancer: 클라우드 플랫폼의 로드 밸런서를 동적 프로비저닝하여 연결
3. 컴포넌트(Component) vs 오브젝트(Object)
- 오브젝트: 사용자가 원하는 상태(YAML)로 만드는 결과물 (Pod, Service 등)
- 컴포넌트: 오브젝트가 약속대로 움직이게 뒤에서 일하는 부품(엔진)
- 마스터 노드: 클러스터 관리 (API 서버, 컨트롤러 매니저, 스케줄러, coreDNS 등)
- 워커 노드: 컨테이너 생성 및 실행 (kube-proxy, 네트워크 플러그인 등)
4. YAML 파일 구조 (4대 필수 요소)
쿠버네티스는 선언적 관리를 위해 YAML을 사용합니다.
- apiVersion: 오브젝트의 API 버전
- kind: 오브젝트 종류 (ex: Pod)
- metadata: 이름, 라벨, 주석 등 부가 정보
- spec: 리소스 생성을 위한 상세 정의 (컨테이너, 이미지, 포트 등)
YAML
apiVersion: v1
kind: Pod
metadata:
name: nginx-demo
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
💡 실무 Tip & 용어 정리
- 서버 구성: 기능 활용을 위해 최소 3대(1 마스터, 2~3 워커) 이상 권장
- 네트워크: calico 같은 네트워크 플러그인이 필요하며, 네트워크 네임스페이스가 컨테이너 고유 환경을 제공함
- 사이드카: 기능 확장을 위해 한 파드에 보조 컨테이너를 포함하는 방식
- MSA: 애플리케이션을 잘게 쪼개 관리하는 마이크로서비스 아키텍처
'Cloud Infrastructure > Kubernetes' 카테고리의 다른 글
| [쿠버네티스] $kubectl api-resources 사용법 (오브젝트가 뭔데) (1) | 2026.01.14 |
|---|---|
| [쿠버네티스 도전기] 2일차: 파드(Pod)로 통하는 문, 서비스(Service) 완벽 정리 (1) | 2026.01.14 |