쿠버네티스 란?
쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이다. 쿠버네티스는 선언적 구성과 자동화를 모두 용이하게 해준다.
출처 : 쿠버네티스 공식 페이지
저 말만 들으면 무슨 의미인지 잘 모르겠다.
더 풀어서 설명해 보겠다.
일단 공식 홈페이지에 나와있는 것을 참고하여 어떻게 쿠버네티스가 나타나게 됐는 지를 살펴보자
- 과거 물리 서버를 사용하던 시절, 전통적인 배포 시대
- 애플리케이션을 물리 서버에서 실행함.
- 여러개의 애플리케이션을 한 물리서버에서 실행하고 싶지만,
여러 애플리케이션의 리소스를 할당에 대한 정의가 없었음
- 따라서 리소스를 전부 차지하는 애플리케이션이 있을 수도 있고,
결과적으로 다른 애플리케이션의 성능 저하 문제 발생
- 여러 물리 서버를 두는 해결책 ➡️ 리소스가 충분히 활용되지 않는다는 점에서 확장 가능하지 않음
➡️ 조직이 많은 물리 서버를 유지하는 데에 높은 비용이 듦 - VM(Virtual Machine의 도입) 배포 시대
VM 이란? 가상화된 하드웨어 상에서 자체 운영체제를 포함한 모든 구성 요소를 실행하는 하나의 완전한 머신
- 단일 물리 서버의 CPU에서 여러 가상 시스템 (VM)을 실행하는 방식.
- 가상화를 사용하면 VM간에 애플리케이션을 격리함
➡️ 애플리케이션의 정보를 다른 애플리케이션에서 자유롭게 액세스
할 수 없으므로, 일정 수준의 보안성을 제공
- 물리 서버에서 리소스를 보다 효율적으로 활용 가능
- 쉬운 업데이트와 추가, 하드웨어 비용을 절감할 수 있어 더 나은 확장성을 제공 가능
- 컨테이너 개발 시대
- VM의 격리 속성을 완화하여 애플리케이션 간에 운영체제(OS)를 공유
➡️ VM처럼 각각의 컨테이너가 완전한 운영체제를 가지지 않아도 됨.
- 클라우드나 OS 배포본에 모두 이식 가능
- 지속적인 개발, 통합 및 배포 : 안정적이고 주기적으로 컨테이너 이미지를 빌드해서
배포 가능하고 효율적으로 롤백 가능
- 배포 시점이 아닌 빌드/릴리스 시점에 애플리케이션 컨테이너 이미지를 만듦, ➡️ 애플리케이션이 인프라스트럭처에서 분리
- VM은 각각이 독립된 운영체제를 실행하므로, 일부 중복된 자원 사용이 발생함
➡️ 컨테이너는 호스트 OS의 리소스를 효율적으로 공유하며,
여러 컨테이너를 더 적은 자원으로 실행 가능함.
즉, VM 보다 더 가벼우면서도 확장성이 뛰어나고 이식성이 높은 가상화 기술을 제공한다.
- 컨테이너 개발 시대
이런 배경으로 컨테이너가 등장하였다.
우리가 알고 있는 컨테이너 중에 가장 유명한 것이 바로 '도커' 이다.
도커는 즉, 컨테이너화 플랫폼 혹은 런타임인 것이다.
도커 란?
Docker는 개발자가 컨테이너를 빌드, 배포 및 실행하도록 지원하는 상용 컨테이너화 플랫폼 및 런타임. 단일 API를 통한 간단한 명령과 자동화를 갖춘 클라이언트-서버 아키텍처를 사용한다.
그렇다면 도커와 쿠버네티스의 차이는 무엇일까?
위에서 말한 Docker는 컨테이너화된 애플리케이션을 패키징하고 배포하는 효율적인 방법을 제공하지만, Docker만으로는 대규모로 컨테이너를 실행하고 관리하기는 어렵다. 왜냐면 한 도커는 하나의 애플리케이션 스택 혹은 서비스를 정의하기 때문이다.
여러개의 애플리케이션을 각각의 컨테이너를 통해 배포할 수 있지만, 이 여러 애플리케이션이 배포된 각각의 컨테이너를 총 관리하는 역할을 도커가 하기엔 어렵기 때문이다.
이렇게 수많은 서버에 분산된 컨테이너를 유지하기 위해 여러 컨테이너를 조정하고 예약하는 방법, 컨테이너 간 통신을 가능하게 하는 방법 및 컨테이너 인스턴스를 확장하는 것을 해결해 주기 위해 Kubernetes가 탄생한 것이다.
쿠버네티스는 컨테이너를 오케스트레이션하는 솔루션.
쿠버네티스 클러스터 란?
쿠버네티스는 여러개의 컨테이너를 실행하고 관리할 수 있는 환경을 제공한다고 했다. 이 여러개의 컨테이너를 담고 있는 곳을 노드(Node) 라고 한다. 클러스터는 이러한 여러 노드를 구성하고 있는 집합이다.
쿠버네티스 클러스터의 구성 요소
- 마스터 노드 (Master Node)
- 워커 노드 (Worker Node)
쿠버네티스의 자세한 개념 용어들에 대해서는 나중에 알아보도록 하겠다..