Devops/Kubernetes
[Kubernetes] Kubernetes란?
ellapk
2024. 10. 17. 15:51
1. 쿠버네티스란?
컨테이너화 된 애플리케이션을 구동하고, 관리해주는 서비스
docker와 같은 컨테이너 엔진 자체를 대체할 수는 없지만,
컨테이너화된 애플리케이션의 로드밸런싱 & 시크릿 관리 등을 원활히 하도록 돕는다.
2. 장단점
⭕ 장점
- 서비스 디스커버리, 로드밸런싱
- 컨테이너화 된 애플리케이션 구동
- 스토리지 오케스트레이션
- 자동화된 롤아웃과 롤백
- 시크릿 관리
❌ 단점
- 소스 코드 배포 및 빌드 X
- 애플리케이션 레벨 서비스 X
- 로깅, 모니터링 X
3.구성요소
클러스터
쿠버네티스 내 가장 큰 단위로, 가상 서버들이 속한 클라우드를 뜻한다.
쿠버네티스에서 서버는 노드라는 단위로 불리므로, 클러스터 = 마스터노드 + 워커노드 라고 볼 수 있다.
노드
클러스터 내 가상 서버, 즉 컴퓨팅 엔진 단위
클러스터 다음으로 가장 큰 단위이며, 마스터 노드와 워커 노드로 분리되어 있음
- 마스터 노드 : 전체 쿠버네티스 시스템을 관리 및 통제함 (설정정보, API, 사용자 관리..)
- 워커 노드 : 배포하고자 하는 어플리케이션의 실제 실행을 수행
마스터 노드가 죽으면 클러스터를 관리할 노드가 없기에, 일반적으로 3개 정도의 마스터 노드를 띄워 관리하는 것으로 알려져있으며, 워커노드도 물론 여러개 띄울 수 있다.
파드
쿠버네티스에서 생성하고 관리할 수 있는 배포 가능한 가장 작은 컴퓨팅 단위이다.
그리고 이와 동시에, 하나 이상의 컨테이너 그룹을 뜻한다.
컨테이너
애플리케이션을 뜻하는데, 완전한 애플리케이션 자체거나, 일부 기능만 뜻할 수도 있다.
즉, 클러스터>노드>파드>컨테이너 가 크게 쿠버네티스의 크기 단위라고 볼 수 있다.