인생을 코딩하다.

kubernetis(쿠버네티스), 왜 사용할까요? 본문

kubernetis(쿠버네티스)

kubernetis(쿠버네티스), 왜 사용할까요?

Hyung1 2022. 8. 15. 01:52
728x90
반응형

 

쿠버네티스 설명에 앞서 현재 세계 많은 기업에서 쿠버네티스를 사용하게 된 역사에 관해 간단히 작성해보았습니다.

 

큰 기업들은 대규모의 서비스를 운영하고 있기 때문에 최대한 자원을 효율적으로 쓰는 것이 중요합니다. 이것은 비용과 관련이 있기 때문이죠. 따라서, 서버 자원을 효율적으로 쓰기 위해 기업들은 가상머신(VM) 기술에 대해 관심을 가질 수 밖에 없습니다.

VM은 무엇인가요?

가상 머신(Virtual Machine, VM)은 물리적 하드웨어 시스템(오프프레미스 또는 온프레미스에 위치)에 구축되어 자체 CPU, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 가상 컴퓨터 시스템으로 작동하는 가상 환경입니다.

 

VM의 역사

 

위 사진을 보면 2014.6 전까지를 하이퍼바이저(가상머신 방식) 기반 가상화, 그 이후부터를 컨테이너 기반의 가상화라고 할 수 있습니다. 현재는 컨테이너 기반의 가상화가 대세입니다. 왜 그럴까요?

 

하이퍼바이저 기반 가상화에는 문제점이 있습니다. VM가상화를 하기 위해서 무거운 OS를 띄어야 하고, 가벼운 서비스를 하나 띄우기 위해 이보다 더 큰 OS를 띄어야 하는 경우도 생기게 됩니다.

 

그에반해, 컨테이너 가상화기술은 서비스간에 자원격리를 하는데 OS를 별도로 안띄어도 됩니다. 따라서 OS 기동시간이 없기 때문에 자동화시에 엄청 빠르고, 자원 효울도 매우 높습니다.

 

하이퍼바이저 기반 가상화 컨테이너 기반 가상화
- VM당 모놀리스한 서비스
- VM단위의 이동 및 복제와 생성 가능
- 실행에 필요한 모든 종속성 및 구성을 함께 배포(실행환경의 일관성)
- 마이크로 서비스 구척에 최적
1VM당 1서비스 -> 성능오버헤드 존재 호스트 OS커널 공유이므로 필요한 만큼 자원 사용
최소 수 GB 이상의 추가 VM을 생성하여 대응 게스트 OS가 없는 수 MB 단위의 컨테이너 생성
VM개수만큼 지불 HOST 1대의 비용만 지불
각각 독립된 VM들로 안정적인 운영 가능(완전한 분리) 통제된 영역이지만 OS 커널을 공유하므로, 장애 발생시 같이 영향 받음

이러한 이유들로 현재는 컨테이너 기반의 가상화과 대세인 추세입니다.

컨테이너 기반의 가상화와 도커 및 도커의 한계

컨테이너 기반의 가상화가 대세로 자리잡으면서, 컨테이너 기반 가상화 도구인 도커가 각광을 받습니다.

 

도커(Docker)는 리눅스의 응용 프로그램들을 들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트입니다. 그리고 리눅스란 간단히 말해서 window나 mac os같은 컴퓨터의 운영체제라고 할 수 있습니다.

 

이를 통해 독립적인 "컨테이너"가 하나의 리눅스 인스턴스 안에서 실행할 수 있게 함으로써 가상머신을을 시작하여 유지보수해야 하는 부담을 없애줍니다.

  • 운영체제를 가상화하지 않는 컨테이너 기술이니만큼 가상머신에 비해서 가벼우며, VM을 포함하여 한 대의 서버에 여러 개의 서비스를 구동하기 좋습니다.
  • 서비스의 보안에 문제가 생기더라도 원래의 서버에 영향을 미치기가 쉽지 않은 격리된 구조이니만큼, 가상화의 장점을 상당 부분 활용할 수 있습니다.
  • 가상머신(VM)들과 달리, 기존 리눅스 자원(디스크, 네트워크 등)을 그대로 활용할 수 있어서 여러 서비스들을 한 서버에 전부 적용해서 사용하기가 좋은 편입니다.

하지만 도커자체는 하나의 서비스를 컨테이너로 가상홧시켜서 배포를 하는거지 엄청 많은 서비스들을 운영할때 그걸 일일이 배포하고 운영하는 역할을 해주지는 않습니다. 

 

도커의 한계를 생긴 컨테이너 오케스트레이터

위에서 말한 도커의 한계로 인해, 컨테이너 오케스트레이터라는 개념이 나왔습니다. 이는 여러 컨테이너들을 관리해주는 솔루션이라고 할 수 있습니다.

 

현재 국내 많은 기업들이 쿠버네티스를 사용하고 있습니다. 많은 기업들은 왜 쿠버네티스에 열광할까요?

도커의 컨테이너 기술이 오픈소스이기 떄문에, 많은 회사들이 이 오케스트레이터를 개발하기 시작했습니다. 많은 기업에서 오케스트레이터를 개발하기 시작했습니다. 이에 따라 많은 사람들은 어떤 오케스트레이터를 사용할지 고민을 해야 했습니다. 많은 기업들이 오케스트레이터를 개발했지만, 이 시기에 구글에서 쿠버네티스 release v1.0을 배포하였고, 그 당시 유명 기업들은 구글의 쿠버네티스 프로젝트에 가장 많이 참여를 했습니다. 그래서인지 많은 유저들이은 쿠버네티스를 사용할 때 만족도가 가장 높았고, 쿠버네티스의 사용률이 기하급수적으로 증가하게 됩니다. 따라서, 현재 쿠버네티스가 세계 표준으로 자리잡아 가고 있고, 이 기술을 바탕으로 클라우드를 사용하는 많은 기업들이 쿠버네티스를 사용하고 있습니다.

kubernetis(쿠버네티스), 왜 사용할까요?

쿠버네티스는 자동적으로

  • Auto Scaling -> 트레픽 양에 따라 각 서비스의 자원 양을 변경
  • Auto Healing -> 장애가 난 서버 위에 있는 서비스들이 다른 서버로 자동으로 트레픽을 옮김, 한 서버의 장애가 나더라도 여분에 서버가 하나 존재한다면 알아서 서비스를 유지
  • Deployment -> 여러 업데이트 방식에 관해 자동적으로 처리

이러한 장점들 때문에 쿠버네티스를 사용하면 운영환경이 더욱 더 편리해지고, 서비스 효율이 증가합니다. 이 서비스 효율로 인해 그만큼 서비스 유지보수 비용이 줄어들게 됩니다. 기업의 규모가 커질수록 이러한 장점들은 더욱 커지게 됩니다.

728x90
반응형
Comments