🐳 쿠버네티스 설치 환경, 어떻게 고를까?
쿠버네티스(Kubernetes)는 컨테이너 애플리케이션을 관리하고 배포하기 위해 꼭 필요한 시스템이다. 그런데 이걸 어떻게 설치하고 운영할지는 생각보다 선택지가 많다. 목적과 상황에 따라 설치 방법이 달라지니, 간단하게 정리해본다.
개발용? 운영용?
일단 쿠버네티스를 어디에 쓸 건지부터 생각해야 한다.
✅ 개발·학습용
- 목표: 쿠버네티스가 뭔지 배우고, 어떻게 돌아가는지 기본적인 개념을 익히는 게 목적일 때
- 특징: 간단하게 설치하고, 빠르게 테스트해보는 게 중요
- 환경: 로컬 PC에서 가볍게 돌릴 수 있음
✅ 서비스 테스트나 운영용
- 목표: 실제 서비스 환경에서 쿠버네티스를 써야 할 때
- 특징: 안정성, 확장성, 보안 다 챙겨야 함
- 환경: 물리 서버든 클라우드든, 제대로 된 클러스터 구성 필요
개발·학습용 쿠버네티스 설치 방법
1) Minikube
가장 기본적인 선택지다.
혼자서도 로컬에서 바로 쿠버네티스를 돌려볼 수 있다.
- 어디서? 내 컴퓨터 (Mac/Windows/Linux 다 됨)
- 어떻게? 가상머신이나 Docker 위에서 단일 노드 클러스터를 실행
- 장점
- 설치 쉽고, 가볍게 테스트 가능
- 쿠버네티스 기본 개념 익히기 딱 좋다
- 단점
- 단일 노드라서 실제 서비스 테스트에는 적합하지 않음
- 📚 Minikube 공식 문서
2) Docker Desktop (내장 쿠버네티스 기능)
Docker Desktop을 깔면 쿠버네티스를 옵션으로 켤 수 있다.
특히 Windows나 Mac에서 개발할 때 편하게 쓸 수 있다.
- 장점
- 따로 클러스터 설치할 필요 없음
- 로컬에서 바로 쿠버네티스 환경 테스트 가능
- 단점
- 리소스가 제한적이어서 대규모 테스트에는 무리
- 📚 Docker Desktop Kubernetes
✔️ 요약하면, 이 둘은 혼자서 쿠버네티스를 익히고 싶다!라는 목적에 제일 잘 맞는다.
다만, 운영 환경에서는 절대 부족하다.
테스트나 운영 환경에서 쓰는 쿠버네티스
운영 환경에선 이야기가 완전 달라진다. 클러스터 확장, 노드 추가, 장애 복구까지 생각해야 하니까 말 그대로 ‘제대로’ 구축하는 게 중요하다.
1) Kubeadm
쿠버네티스를 설치하고 초기 설정을 할 때 가장 많이 쓰이는 공식 도구다.
- 어디서? 온프레미스 서버든, 클라우드든 내가 직접 인프라를 준비한 경우
- 특징
- 간단하게 클러스터 생성 가능
- 설치 이후 관리(업데이트, 모니터링 등)는 직접 해야 한다
- 장점
- 커스터마이징 자유롭다
- 클러스터 내부 구조를 잘 이해할 수 있다
- 📚 Kubeadm 공식 문서
2) Kuberspray
Ansible을 기반으로 한 자동화 툴이다.
클러스터 규모가 크거나 여러 서버에 동시에 설치할 땐 이게 편하다.
- 특징
- Ansible 플레이북으로 구성
- 고가용성(HA) 클러스터도 손쉽게 구축 가능
- 장점
- 자동화가 잘 되어 있어서 일일이 명령어 입력할 필요 없다
- 클라우드, 온프레미스 가리지 않고 쓸 수 있다
- 📚 Kuberspray GitHub
✔️ kubeadm과 kubespray 둘 다 내가 직접 서버를 관리하는 환경에서 많이 쓰인다.
클라우드에서 쓰는 매니지드 쿠버네티스 서비스
직접 서버 깔고 관리하는 게 귀찮거나, 시간이 없으면 클라우드 매니지드 서비스를 쓰는 것도 방법이다.
✅ AWS EKS (Elastic Kubernetes Service)
AWS가 제공하는 쿠버네티스 클러스터다.
- 특징
- AWS가 제어 플레인 관리 다 해줌
- 노드만 관리하면 되니까 편하다
- 장점
- IAM, VPC 등 AWS 기능과 자연스럽게 연동
- 안정적이고 확장성 좋다
- 📚 AWS EKS 공식 문서
✅ GKE (Google Kubernetes Engine)
구글이 제공하는 서비스라서 쿠버네티스랑 궁합이 좋다.
- 특징
- 구글이 클러스터 전체 관리
- GCP와 연동성도 뛰어남
- 장점
- 자동 업그레이드, 자동 복구 등 기본 제공
- Anthos 같은 하이브리드 클라우드 플랫폼과 연동 가능
- 📚 GKE 공식 문서
✔️ 이런 서비스들은 운영 복잡도 거의 없고, 바로 프로덕션에 투입 가능하다.
서버 관리하고 싶지 않은 사람들한테 강추된다.
쿠버네티스 클러스터 기본 구조는?
운영 환경에서는 이런 구성을 기본으로 가져간다.
| 구성 요소 | 역할 |
|---|---|
| 마스터 노드 | 클러스터 제어(컨트롤 플레인), 스케줄링, 상태 관리 |
| 워커 노드 | 실제 애플리케이션 컨테이너가 돌아가는 곳 |
| 노드 추가 | 필요할 때마다 자유롭게 스케일 아웃(확장) 가능 |
- 최소 1개의 마스터와 2개 이상의 워커 노드가 기본
- 각 노드는 물리 서버일 수도, 가상 서버일 수도 있다
- 네트워크는 CNI 플러그인을 통해 관리한다
- 📚 Kubernetes 아키텍처
정리하자면!
쿠버네티스를 설치하고 운영하는 방법은 다양하다.
일단 작은 거부터 시작하고, 점점 확장하는 것이 바람직한 것으로 보인다.
목적에 따라... ⤵️
- 로컬에서 배우고 싶다면 Minikube, Docker Desktop
- 서버에 직접 구축하고 싶다면 Kubeadm, Kubespray
- 클라우드 서비스로 바로 가고 싶다면 EKS/GKE
🔗링크
'BEYOND SW [4] DevOps' 카테고리의 다른 글
| [k8s] 실습 ② 클러스터 구성 master server, woker server 준비하기 (0) | 2025.03.19 |
|---|---|
| [k8s] 쿠버네티스의 기본 구성 요소 / 쿠버네티스 클러스터 구조 (0) | 2025.03.19 |
| [아카이브] Windows11에서 도커 테스크탑 실행 무한대기 문제 발생 시 필수 의례사항 (0) | 2025.03.18 |
| [k8s] 쿠버네티스(Kubernetes)란 무엇인가? (2) | 2025.03.14 |
| [k8s] 실습 ① ubuntu서버에 containerd 준비하기 (3) | 2025.03.14 |