Home k8s가 등장하게 된 인프라의 역사
Post
Cancel

k8s가 등장하게 된 인프라의 역사

k8s 등장 배경

물리 서버에서 가상화 기술, 컨테이너, 그리고 Kubernetes(K8s)로 이어지는 인프라 기술의 발전과 각 기술이 등장하게 된 이유를 정리하겠습니다.

1. 물리 서버 (Physical Servers)

physical

등장 배경:

  • 초기 컴퓨팅 환경에서 모든 애플리케이션은 물리적 서버에서 실행되었습니다.
  • 각 서버는 하나의 운영 체제와 애플리케이션을 실행했습니다.

한계:

  • 낮은 자원 활용도: 서버 자원의 대부분이 유휴 상태로 남아 있었고, 자원의 효율적 사용이 어려웠습니다.
  • 비용: 추가 서버 구매와 유지보수에 많은 비용이 들었습니다.
  • 유연성 부족: 다양한 애플리케이션을 동일한 환경에서 실행하기 어려웠으며, 환경 설정 변경 시 복잡성이 증가했습니다.

2. 가상화 기술 (Virtualization) - 2000년대 초반

virtual

등장 배경:

  • 물리적 서버의 자원 낭비와 관리의 복잡성을 해결하기 위해 가상화 기술이 도입되었습니다.
  • VMware, Hyper-V, KVM 등의 가상화 기술이 사용되었습니다.

이유:

  • 자원 효율성: 하나의 물리적 서버에서 여러 개의 가상 머신(VM)을 실행하여 자원을 효율적으로 사용.
  • 비용 절감: 서버 통합을 통해 하드웨어 비용과 운영 비용을 절감.
  • 운영 체제 독립성: 동일한 하드웨어에서 다양한 운영 체제를 실행할 수 있어, 다양한 애플리케이션을 동시에 운영 가능.
  • 유연성: VM을 쉽게 생성, 삭제, 이동할 수 있어 개발, 테스트, 배포 환경을 유연하게 관리 가능.

3. 컨테이너 기술 (Containerization) - 2010년대 초반

container

등장 배경:

  • 가상화 기술의 오버헤드와 운영 환경 간의 일관성 문제를 해결하기 위해 컨테이너 기술이 도입되었습니다.
  • Docker는 이러한 요구를 충족시키기 위해 2013년에 출시되었습니다.
  • 당시 MSA 확산 분위기가 있었고 2014년에 https://microservices.io/ 큰 인기를 끌면서 대중적으로 확산됨

이유:

  • 경량화: 컨테이너는 VM보다 가볍고, 운영 체제 커널을 공유하므로 오버헤드가 적음.
  • 빠른 시작: 컨테이너는 VM보다 훨씬 빠르게 시작되고 종료.
  • 이식성: 컨테이너 이미지는 어디서나 동일하게 동작하므로, 개발 환경과 운영 환경 간의 일관성 유지.
  • 표준화: 애플리케이션과 그 종속성을 포함한 표준화된 이미지 제공.

4. Kubernetes (K8s)

등장 배경:

  • 컨테이너 기술의 확산과 함께 대규모 컨테이너의 배포, 관리, 확장성 문제를 해결하기 위해 오케스트레이션 도구가 필요하게 되었습니다.
  • 구글의 내부 경험을 바탕으로 Kubernetes가 개발되고, 2014~15년에 오픈 소스로 출시되었습니다.

이유:

  • 자동화된 배포: 선언적 설정 파일을 통해 컨테이너의 배포, 스케일링, 업데이트 등을 자동화.
  • 확장성: 오토스케일링 기능을 통해 트래픽 변화에 따라 자동으로 컨테이너 수를 조절.
  • 자가 치유: 컨테이너의 상태를 모니터링하고, 장애 발생 시 자동으로 재시작하거나 대체.
  • 서비스 디스커버리 및 로드 밸런싱: 클러스터 내에서 서비스 간의 통신을 자동으로 관리하고, 로드 밸런싱 제공.
  • 환경 설정 관리: ConfigMap과 Secret을 통해 환경 변수와 비밀 정보를 일관되게 관리.

요약

  • 물리 서버: 초기 컴퓨팅 환경, 자원 활용도 낮음, 비용과 유연성 문제.
  • 가상화 기술: 자원 효율성, 비용 절감, 운영 체제 독립성, 유연한 관리.
  • 컨테이너 기술: 경량화, 빠른 시작, 이식성, 표준화된 애플리케이션 패키징.
  • Kubernetes: 자동화된 배포, 확장성, 자가 치유, 서비스 디스커버리, 환경 설정 관리.

이러한 기술들은 각각의 등장 배경과 이유를 통해 인프라 관리와 애플리케이션 배포의 효율성을 크게 향상시키며, 현재의 클라우드 네이티브 환경을 구축하는 데 중요한 역할을 하고 있습니다.

This post is licensed under CC BY 4.0 by the author.

Java 애플리케이션에서 SQL이 실행되는 과정

개발자로써 k8s 사용할 때 실제로 편한점

Trending Tags