Kubernetes == kube, k8s

정의

컨테이너화된 애플리케이션을 배포, 관리, 확장할 때 수반되는 다수의 수동 프로세스를 자동화하는 오픈소스 컨테이너 오케스트레이션 플랫폼을 말한다.

쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장 가능한 오픈소스 플랫폼이다. k8s는 선언적 구성과 자동화를 모두 용이하게 해준다.

컨테이너

VM과 유사하지만 격리 속성을 완화하여 Application 간에 OS를 공유한다. 그렇기 때문에 VM 보다 가볍다고 여겨진다. 그리고 VM과 동일하게 자체 파일시스템, CPU 점유율, 메모리, 프로세스 공간 등을 가진다. 기본 인프라와의 종속성을 끊었기 때문에, 클라우드나 OS 배포본에 모두 이식할 수 있다.

오케스트레이션(Orchestration)

복잡한 단계를 관리하고 요소들의 유기적인 관계를 미리 정의해 손쉽게 사용하도록 서비스를 제공하는 것을 의미한다. 다수의 컨테이너를 유기적으로 연결, 실행, 종료할 뿐만 아니라 상태를 추적하고 보존하는 등 컨테이너를 안정적으로 사용할 수 있게 만들어주는 것이 컨테이너 오케스트레이션이다.

왜 태어났는가?

대량의 컴퓨팅 시스템을 관리 및 운영하는 것이 힘들어서 VM을 도입했으나, 여러가지 문제점을 가지고 있어서 컨테이너가 태어났고 컨테이너를 사용하다 보니, 이 또한 대량의 컨테이너가 생겼고 이것들을 관리하기 위한 도구가 필요했다. 그래서 쿠버네티스가 태어났고, 우리는 쿠버네티스를 컨테이너 오케스트레이션 도구라고 말한다.

목적

Application의 효율적인 관리

쿠버네티스가 제공할 수 있는 기능들

서비스 디스커버리와 로드 밸런싱

Kubernetes can expose a container using the DNS name or using their own IP address. If traffic to a container is high, Kubernetes is able to load balance and distribute the network traffic so that the deployment is stable.

쿠버네티스는 DNS 이름(maybe Domain?)을 사용하거나 자체 IP주소를 사용하여 컨테이너를 노출할 수 있다.

하나의 컨테이너에 트래픽이 몰리면, 쿠버네티스는 네트워크 트래픽을 로드 밸런싱과 분산할 수 있으며 Deployment가 안정화될 수 있다.

스토리지 오케스트레이션