1. 쿠버네티스는 왜 쓰는건가?
컨테이너를 하나만 띄우면 docker run으로 충분하지만,
- 서버 수십~수백 대
- 컨테이너 수백~수천 개
- 자동 복구, 부하 분산, 롤링 업데이트 필요
이런 상황이 되면 사람이 직접 관리 불가능하다.
Kubernetes가 대신 해준다.
하는 일
- 컨테이너 배포 자동화
- 컨테이너 상태 모니터링 및 장애 시 재시작
- 부하에 따라 컨테이너 수 자동 조절 (오토스케일링)
- 서비스 디스커버리(컨테이너 주소 관리)
- 롤링 업데이트와 롤백
2. 쿠버네티스는 서비스인가? 프로젝트인가? 판매 소프트웨어인가? 정체가 뭔가?
Kubernetes(K8s)는 개인이나 특정 회사가 만든 상용 서비스가 아니라 오픈소스 소프트웨어 프로젝트다.
1. 처음 만든 곳
- Google이 내부에서 쓰던 Borg라는 시스템을 기반으로 개발
- 2014년에 오픈소스로 공개
2. 지금 관리하는 곳
- 현재는 CNCF(Cloud Native Computing Foundation)라는 비영리 단체가 관리
- CNCF는 리눅스 재단(Linux Foundation) 산하 조직이라, 특정 기업의 소유가 아니라 여러 회사와 커뮤니티가 함께 유지·보수
3. 서비스 vs. 소프트웨어 차이
- GitHub → Microsoft가 소유한 상용 웹 서비스
- Kubernetes → 누구나 설치하고 운영할 수 있는 무료 오픈소스 소프트웨어
- 단, Google Cloud, AWS, Azure 같은 클라우드 업체가 "관리형 Kubernetes 서비스"를 유료로 제공하긴 함
(예: GKE, EKS, AKS)
즉, K8s 자체는 서비스가 아니라 도구이고,
누구나 내려받아 서버에 깔아서 쓸 수 있다.
3. 그럼 어떻게 k8s를 설치할 수 있는가?
1. kubectl 설치 (K8s 관리 툴)
kubectl은 Kubernetes 클러스터를 조작하는 CLI 도구다.
Windows (PowerShell 예시)
powershellcurl.exe -LO "https://dl.k8s.io/release/v1.30.0/bin/windows/amd64/kubectl.exe"
그리고 kubectl.exe를 PATH에 추가
그럼 클러스터는 어떻게 만드는가
1. Minikube
설치:
powershell
choco install minikube
실행:
powershell
minikube start
2. Kind 설치 (Docker 기반)
설치:
powershell
choco install kind
실행:
powershell
kind create cluster
도구 | 역할 | 비유 |
kubectl | Kubernetes CLI 도구. 이미 존재하는 K8s 클러스터에 명령을 보내고 상태를 확인함. | 항만 관리 시스템의 무전기 |
Minikube | 로컬 PC에 K8s 클러스터를 만들어주는 도구 (VM 또는 Docker 사용) | 집 앞에 작은 항구를 설치하는 기계 |
Kind | Docker 컨테이너로 K8s 클러스터를 만드는 도구 | Docker 컨테이너로 만든 모형 항구 |
- Minikube나 Kind가 → Kubernetes 클러스터를 생성
- kubectl이 → 그 클러스터에 명령을 보냄
- 명령에 따라 Pod, Service, Deployment 같은 Kubernetes 리소스가 생성·삭제됨
4. 그렇다면 클러스터는 뭔가?
비유
- 컨테이너 = 배에 실린 개별 화물
- Docker = 화물 하나를 포장하고 출발시키는 트럭
- Kubernetes = 수백 개 트럭과 배를 운영하는 항만 물류 관리 시스템
'【 개발 이야기 】' 카테고리의 다른 글
프록시 pac 파일 (0) | 2025.08.06 |
---|---|
Connection Timeout, Socket Timeout, Read Timeout의 차이점은 무엇인가요? (1) | 2025.08.01 |
스프링 생명주기와 @Bean (4) | 2025.07.30 |
[RxJava] Observable<T>와 MaybeSource<T> (0) | 2025.07.22 |
HTTP method (6) | 2025.07.21 |