본문 바로가기
공부/쿠버네티스 (Kubernetes)

쿠버네티스는 무엇인가? (Kubernetes)

by Lagooni 2021. 7. 27.

서비스의 가동률을 측정하기 위해 베이스가 될 공부를 하고 있습니다. 참고 문서:https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/

 

쿠버네티스란 무엇인가?

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

kubernetes.io

 

쿠버네티스?

쿠버네티스는 컨테이너화된 workload와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼입니다.

 

쿠버네티스 이름의 유래?

쿠버네티스라는 이름은 키잡이(Helmsman)나 파일럿을 뜻하는 그리스어에서 유래했습니다. K8s라는 표기는 "K"와 "s"의 사이에 있는 "ubernete"이 8글자를 나타내는 약식 표기입니다. (쿠버네티스 == K8s)

쿠버네티스가 왜 유용해졌나?

전통적인 배포(Traditional Deployment)방법

초기 조직은 애플리케이션을 물리 서버에서 실행했습니다. 한 물리 서버에서 애플리케이션의 리소스 한계를 정의할 방법이 없기 때문에 리소스 할당 문제가 발생했습니다. 예를들어 물리서버 하나에 여러 애플리케이션을 실행하면, 리소스 전부를 차지하는 애플리케이션 인스턴스가 있을 수 있고 이는 결과적으로 다른 애플리케이션의 성능 저하로 이어집니다. 이러한 방법을 해결하기 위해서 서로 다른 여러 물리서버에서 애플리케이션을 각각 실행하는 것이었는데, 이는 물리서버를 많이 유지하기 위해 많은 비용이 드는 방법이었습니다.

 

가상화된 배포(Virtualized Deployment)방법

위 방법에 대한 해결책으로 가상화가 도입되었습니다. 이는 하나의 물리서버 CPU에서 여러 가상시스템(Virtual Machine)을 실행할 수 있게 합니다. 가상화를 사용하면 VM간에 애플리케이션을 격리하고 애플리케이션 간에 정보를 자유롭게 접근할 수 없기 때문에 일정 수준의 보안성을 제공할 수 있습니다. 가상화를 사용하면 물리서버에서 리소스를 보다 효율적으로 활용할 수 있으며, 쉽게 애플리케이션을 추가하거나 업데이트 할 수 있고 하드웨어 비용을 절감할 수 있어 더 나은 확장성을 제공합니다. 

 

컨테이너 배포(Container Deployment) 방법

컨테이너는 VM과 유사하지만 격리 속성을 완화하여 애플리케이션 간에 운영체제를 공유 합니다. 기본 인프라와의 종속성을 끊었기 때문에 클라우드나 OS배포본에 모두 이식할 수 있습니다.

 

컨테이너가 인기가 있는 이유?

  • 기민한 애플리케이션 생성과 배포: VM이미지를 사용하는 것에 비해 컨테이너 이미지 생성이 더 쉽고 효율적이다.
  • 지속적인 개발, 통합 및 배포의 용이: 안정적이고 주기적으로 컨테이너 이미지를 빌드해서 배포할 수 있고 이미지의 불변성 덕에 빠르게 롤백 할 수 있습니다.
  • 개발과 운영의 관심사 분리: 배포 시점이 아닌 빌드/릴리스 시점에서 애플리케이션 컨테이너 이미지를 만들기 때문에, 에플리케이션이 인프라 스트럭쳐에서 분리됩니다. 

쿠버네티스가 왜 필요할까?

컨테이너는 애플리케이션을 포장하고 실행하는 방법인데, 프로덕션 환경에서는 애플리케이션을 실행하는 컨테이너를 관리하고 가동 중지 시간이 없는지 확인해야 합니다. 예를 들어 한 컨테이너가 다운되면 다른 컨테이너를 실행해야 하는데 이 문제를 시스템 처럼 처리해주는데 필요한 것이 쿠버네티스 입니다. 쿠버네티스는 분산 시스템을 탄력적으로 실행하기 위한 프레임 워크를 제공합니다.

 

 

댓글