본문으로 바로가기
반응형

1. 애플리케이션 배포의 단순화

개발자가 운영자의 도움이나 서버에 대한 별도의 지식 없이 자체적으로 애플리케이션을 배포할 수 있게 된다. 쿠버네티스 클러스터의 노드는 수많은 베어메탈 서버 혹은 VM으로 구성되어 있을지라도 배포를 기다리는 애플리케이션 입장에서는 하나의 거대한 서버이다. 

개발자는 컨테이너화 된 애플리케이션을 인프라 구성에 대한 정보 없이도 손쉽게 배포할 수 있다. 또한 쿠버네티스 환경에서는 rolling upgrade, blue-green 배포 등을 간단하게 실행할 수 있다.

 

2. 애플리케이션 개발의 단순화

개발 환경과 운영 환경이 동일한 환경(컨테이너)에서 애플리케이션이 구동된다는 보장을 갖게 된다. 개발자는 환경 차이에 따른 추가적인 고민을 할 필요가 없게 된다. java로 동작하는 애플리케이션을 배포하기 위해서 클러스터의 어떤 node에도 java가 설치되어 있을 필요가 없다(추가적인 수많은 환경 설정들도 신경쓸 필요가 없다). 어떤 노드에 애플리케이션이 배포되더라도 애플리케이션은 빌드한 컨테이너의 java와 환경 설정을 동일하게 가져간다.

또한 개발자가 고려해야 하는 복잡한 기능들(피어 검색, 리소스 락을 위한 인스턴스 리더 선정 등)을 구현할 필요 없이 쿠버네티스를 활용할 수 있다.

 

3. 컴퓨팅 리소스 활용

쿠버네티스는 배포할 애플리케이션이 요구하는 리소스 등을 고려해 배포될 노드를 자동으로 선택해 준다. 쿠버네티스는 빠르고 효율적으로 수백, 수천개의 노드의 자원 상황에 따라 애플리케이션을 적재 적소에 배포할 수 있게 된다. 이를 통해 낭비되는 자원을 최소화 할 수 있으며 개발자, 인프라 운영자의 수고도 최소화 할 수 있다.

 

4. 지속적인 상태 확인과 셀프 힐링

쿠버네티스는 배포된 애플리케이션의 구성 요소들과 노드를 지속적으로 모니터링 한다. 컨테이너에 문제가 발생하거나 노드에 장애가 발생할 경우 자동으로 해당 애플리케이션 컨테이너를 문제가 없는 다른 적당한 노드로 스케쥴링해 다시 구동시켜준다. 컨테이너 특성상 재구동이 매우 빠르게 이루어지며 운영자의 모니터링 없이도 장애에 자동으로 대응할 수 있게 된다.

 

5. 오토스케일링

특정 컨테이너에 부하가 급격하게 발생할 경우, 쿠버네티스는 이를 모니터링 하고 있다가 정해진 수준 이상으로 부하 발생시 자동으로 스케일 아웃하여 컨테이너를 늘려서 부하를 분산시켜준다. 사용이 줄어 부하가 감소하면 쿠버네티스는 다시 이전 수준으로 감소시켜 준다.

이를 통해 급격한 부하 증가에 따른 장애를 방지할 수 있으며, 스케일 아웃을 위해 미리 거대한 자원을 확보해 둘 필요가 없기 때문에 비용적인 측면 역시 많은 효과를 볼 수 있다.

 

 

반응형

 Other Contents