Post

Docker & Kubernetes - (1)

Docker & Kubernetes - (1)

쿠버네티스란?

컨테이너화의 의의와 쿠버네티스의 개요


쿠버네티스

Kubernetes : 컨테이너화된 애플리케이션을 효율적으로 배포하고 운영하기 위해 설계된 오픈 소스 플랫폼.

왜 컨테이너를 사용할까? CI/CD***** (지속적 통합, 지속적 배포) : 사용자에게 새로운 기능과 서비스를 빠르고 안정적으로 제공할 수 있음 그러나 개발자들이 오픈 소스를 사용해 애플리케이션을 개발할 때, 오픈소스의 버전이 바꾸미에 따라 같은 팀의 개발자 사이에 다른 버전을 사용하는 상황이 발생, 개발 환경 차이가 발생하여 생산성과 안정성이 떨어지게 된다.

컨테이너 기술은 애플리케이션 실행에 필요한 라이브러리나 운영체제 패키지 등을 모두 담아서 Immutable Infrastructure (불변의 실행 환경)을 만들고 개발자들 간에 테스트, 운영환경 차이를 없애 개발 생산성 증가와 안정적인 배포를 가능케 한다.

  • CI/CD(Continuous Integration/Continuous Delivery) : CI란 소프트웨어 개발시 테스트단계에서만 테스트 하는것이 아닌 일상적인 빌드와 테스트를 수행하여 실제 동작을 확인하는 사이클을 돌면서 소프트웨어 품질을 관리. 일반적으로 CI를 위한 전용 소프트웨어 or SaaS를 이용해 자동화. CD는 CI의 범위를 확장해 통합 테스트를 위한 스테이징 환경에 배포, 정식 서비스 배포까지 자동화도구를 사용해 수행.

쿠버네티스의 개요

쿠버네티스는 구글의 사내 운영 시스템인 Borg를 오픈소스로 만든 것. 다음과 같은 기능을 제공

  • 배포 계획에 맞춰 애플리케이션을 신속하게 배포할 수 있다.
    • 컨테이너 개수, CPU 사용률, 메모리 사용량을 설정 가능
    • 저장 공간, 네트워크 접근 제어, 로드 밸런싱 기능 설정 가능
  • 가동 중인 애플리케이션을 스케일 Up/Down 할 수 있다.
    • 요청이 많을 때는 컨테이너 수를 늘려 처리 능력을 높임
    • 요청이 적을때는 컨테이너 수를 줄여 자원 점유율이나 요금을 줄임
  • 새로운 버전의 애플리케이션을 무정지로 업그레이드 할 수 있다.
  • 하드웨어 가동률을 높여 자원 낭비를 줄인다.
This post is licensed under CC BY 4.0 by the author.