Devops/Kubernetes

[Kubernetes] Kubernetes란?

ellapk 2024. 10. 17. 15:51

1. 쿠버네티스란?

 

컨테이너화 된 애플리케이션을 구동하고, 관리해주는 서비스

docker와 같은 컨테이너 엔진 자체를 대체할 수는 없지만,

컨테이너화된 애플리케이션의 로드밸런싱 & 시크릿 관리 등을 원활히 하도록 돕는다.

 

 

2. 장단점

 

⭕ 장점

  • 서비스 디스커버리, 로드밸런싱
  • 컨테이너화 된 애플리케이션 구동
  • 스토리지 오케스트레이션
  • 자동화된 롤아웃과 롤백
  • 시크릿 관리

❌ 단점

  • 소스 코드 배포 및 빌드 X
  • 애플리케이션 레벨 서비스 X
  • 로깅, 모니터링 X

 

3.구성요소

 

 

클러스터

쿠버네티스 내 가장 큰 단위로, 가상 서버들이 속한 클라우드를 뜻한다.

쿠버네티스에서 서버는 노드라는 단위로 불리므로, 클러스터 = 마스터노드 + 워커노드 라고 볼 수 있다.

 

 

노드

 

클러스터 내 가상 서버, 즉 컴퓨팅 엔진 단위

클러스터 다음으로 가장 큰 단위이며, 마스터 노드와 워커 노드로 분리되어 있음

  • 마스터 노드 : 전체 쿠버네티스 시스템을 관리 및 통제함 (설정정보, API, 사용자 관리..)
  • 워커 노드 : 배포하고자 하는 어플리케이션의 실제 실행을 수행

마스터 노드가 죽으면 클러스터를 관리할 노드가 없기에, 일반적으로 3개 정도의 마스터 노드를 띄워 관리하는 것으로 알려져있으며, 워커노드도 물론 여러개 띄울 수 있다.

 

 

파드

쿠버네티스에서 생성하고 관리할 수 있는 배포 가능한 가장 작은 컴퓨팅 단위이다.

그리고 이와 동시에, 하나 이상의 컨테이너 그룹을 뜻한다.

 

 

컨테이너

애플리케이션을 뜻하는데, 완전한 애플리케이션 자체거나, 일부 기능만 뜻할 수도 있다.

즉, 클러스터>노드>파드>컨테이너 가 크게 쿠버네티스의 크기 단위라고 볼 수 있다.