쿠버네티스는 그리스어로 '항해사' 또는 '조종사'를 의미하며, 이름처럼 수많은 컨테이너들을 마치 한 척의 배처럼 조율하고 관리하는 역할
구글이 내부적으로 사용하던 보그(Borg) 시스템을 기반으로 개발하여 2014년에 오픈소스로 공개했으며, 현재는 클라우드 네이티브 컴퓨팅 재단(CNCF)에서 관리하고 있음
컨테이너 기술(예: 도커) -> 애플리케이션을 환경에 구애받지 않고 실행할 수 있도록 격리된 패키지로 만드는 것
쿠버네티스 -> 이러한 컨테이너들을 대규모 프로덕션 환경에서 안정적으로 운영할 수 있도록 관리하고 조율하는 시스템
쿠버네티스는 주로 kubectl이라는 커맨드 라인 인터페이스(CLI)와 YAML형식의 설정 파일을 통해 관리
< 활용과정 >
kubectl apply -f <파일명.yaml> 명령어를 사용하여 쿠버네티스 클러스터에 적용하면, 쿠버네티스는 정의된 내용에 따라 컨테이너를 실행하고 관리하기 시작apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3 # 3개의 Nginx 파드를 실행
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer # 외부에서 접근 가능하도록 로드 밸런서 타입으로 서비스 노출
| 구분 | 쿠버네티스 (Kubernetes) | 도커 스웜 (Docker Swarm) | 아마존 ECS (Amazon ECS) | 해시코프 노마드 (HashiCorp Nomad) |
|---|---|---|---|---|
| 한 줄 요약 | 기능의 끝판왕, 컨테이너 세상의 표준 | 가장 빠르고 심플한 기본 관리 도구 | AWS 사용자에게 가장 편한 관리형 서비스 | 컨테이너 외 모든 것을 관리하는 만능 스케줄러 |
| 비유 | 풀옵션 대도시 | 조립식 주택 단지 | 아마존이 지은 신도시 | 만능 캠핑카 |
| 특징 | 기능이 매우 많고 자유도가 높아, 컨테이너 관리의 사실상 표준으로 쓰임. | 도커에 내장되어 있어, 도커만 쓸 줄 알면 가장 쉽게 시작할 수 있음. | AWS에서 모든 것을 관리해주는 서비스. AWS 환경에 최적화되어 있음. | 컨테이너뿐 아니라 다양한 종류의 프로그램을 함께 관리할 수 있음. |
| 장점 | - 압도적인 생태계 (필요한 기능은 다 있음) - 원하는 대로 모든 설정 가능 - 어떤 클라우드든 설치 가능 | - 배우기 매우 쉬움 - 원래 쓰던 docker 명령어와 거의 똑같음- 설치가 매우 간단함 | - 다른 AWS 서비스와 연동이 완벽함 - 서버 관리가 필요 없는 서버리스(Fargate) 가능 - AWS가 알아서 관리해줘서 편함 | - 설치가 매우 쉬움 (파일 하나로 끝) - 컨테이너 외 다른 프로그램도 관리 가능 - 대규모 환경에서도 가볍고 빠름 |
| 단점 | - 처음 배울 때 너무 복잡하고 어려움 - 직접 운영하려면 관리 포인트가 많음 | - 기능이 너무 단순함 - 더 복잡한 기능을 추가하기 어려움 - 정보나 자료가 상대적으로 적음 | - 오직 AWS에서만 사용 가능 - 다른 클라우드와 함께 쓰기 어려움 | - 쿠버네티스만큼 기능이 다양하지 않음 - 네트워킹, 스토리지 등은 직접 설정할 부분이 많음 |
| 추천 대상 | 복잡한 대규모 서비스를 운영하거나, 여러 클라우드를 함께 사용해야 하는 기업 | 소규모 프로젝트나 개발 환경에서 빠르게 컨테이너를 묶어서 관리하고 싶을 때 | 인프라가 대부분 AWS에 있고, 안정적인 관리형 서비스를 쓰고 싶을 때 | 컨테이너와 다른 프로그램을 하나로 통합 관리하고 싶거나, 단순/빠른 것을 선호할 때 |
참고
https://kubernetes.io/ko/docs/tutorials/kubernetes-basics/
https://jdcyber.tistory.com/46
https://databoom.tistory.com/entry/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4Kubernetes-%EA%B8%B0%EB%B3%B8%EC%A0%81%EC%9D%B8-%EC%82%AC%EC%9A%A9-%EB%B0%A9%EB%B2%95
https://brunch.co.kr/@sokoban/81
https://csj000714.tistory.com/739