-
Kubernetes 소개개발/클라우드컴퓨팅 2018. 6. 23. 14:30
Kubernetes
공식 홈페이지에서는 Kubernetes를 이렇게 정의한다.
"Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications"
직역하면 컨테이너화된 앱들의 배치(deployment), 확장(scaling), 관리(management)를 하는 오픈소스 시스템이라는데 이것만 봐서는 왜 kubernetes가 무슨 역할을 하는지 감이 안온다. 어차피 컨테이너는 Docker에서 생성하고 관리 할 수 있는데 왜 kubernetes가 필요한 걸까?
설명에 앞서 docker만 사용할 때의 위험성을 생각해보자. docker는 특정 Host OS 위에서 사용자의 요청을 받아 container app을 만들어주는 소프트웨어다. 그런데 요청 받은 서비스를 운영하는 도중 host OS가 고장나는 경우가 생긴다면? docker가 만들어준 모든 container도 같이 죽는다.
(사실 기본적인 내용이지만) 안정적으로 서비스를 돌리기 위해선 하나의 host에서만 돌리면 안되고 여러 컴퓨터에 서버를 동시에 돌려야 한다. kubernetes는 여러 대의 서버로 갖춰진 하드웨어 환경의 network, computing, storage 요소를 관리해 container 서비스가 안정적으로 돌아갈 수 있도록 관리하는 툴이다.
Openstack이랑 비슷한 역할을 하는데 open stack은 virtual machine 을 생성해 클라우드 서비스를 관리하는데 목적을 두고 kubernetes는 컨테이너 서비스에 강점을 둔다는 점에서 차이가 있는 것 같지만 공식 홈페이지 말고 다른 회사의 소개 자료를 보면 kubernetes를 이용해 container 말고도 다양한 서비스를 만들고 있으니 꼭 container를 초점으로 만든 기술이라고는 볼 수 없는것 같기도하다. 서비스 자체는 자유자재로 할 수 있으며 하드웨어 자원을 효율적으로 관리하는데 초점을 두는것 같다. 공식 홈페이지에서도 많은 기능을 제공 하고 있으며 이를 활용해 언제든 새로운 기술이 만들어 질 수 있다고 하고 있으니 얼마든지 변형해서 만들어 낼 수 있나보다.
공부하기에 앞서 활용 사례를 몇가지 더 찾아봐야겠다.
'개발 > 클라우드컴퓨팅' 카테고리의 다른 글
SDN과 NFV (0) 2019.04.21 오픈스택 구조 분석 (0) 2017.03.07 오픈스택이란? (0) 2017.03.07 클라우드 가상화와 Docker (2) 2017.03.05 클라우드 컴퓨팅(Cloud Computing) (0) 2017.02.25