알고배우자 쿠버네티스 등장배경

쿠버네티스 학습이전에 등장배경과 기초적인 지식들을 정리하고 학습을 시작하고자

이 글을 작성해 봅니다.

 

쿠버네티스가 등장하기 이전, 가상화 환경에서의 운영과 배포 기술들은 지속적으로 발전해 왔습니다.

이전에는 가상 머신과 관련된 기술들이 많았는데, 그중 하나는 가상 머신 머니터(VMware)입니다.

 

이후에는 컨테이너 기술들이 등장했습니다. 컨테이너는 응용 프로그램을 패키징하고 실행하는 데 사용되며,

가상 머신보다 가볍고 빠른 실행이 특징입니다.

 

컨테이너 기술은 Docker가 등장함으로써 널리 사용되기 시작했습니다.

Docker는 응용 프로그램을 컨테이너로 패키징하고 배포하기 위한 도구로서, 가상화 환경에서의 개발과 배포를 효율적으로 만들어 주었습니다.

이와 같이 발전해 온 환경은 최근 IT 업계에서 쿠버네티스 하나로 정리가 많이 되었습니다.

 

많은 노력들

오랜 기간 IT업계는 가상화 환경에서의 운영 및 배포과정을 표준화 및 자동화하기 위해서 오랜 노력을 해왔습니다.

그간 아무리 신경 써서 구성하고 관리하더라도 어딘가에서는 항상 오류가 발생하고 이슈가 생겨왔습니다.

또한 거의 완전히 똑같은 환경을 반복적으로 구성 배포하더라도 각종 문제가 발생하는 경우도 많이 있어왔습니다.

위와 같은 기술의 발전 속에서도 여전히 복잡한 환경 설정과 관리문제, 확장성과 유연성, 오류와 그 외 많은 과제들이 많이 남아있었습니다.

 

그러던 중, 초기 쿠버네티스환경에 구글 중심에서 다양한 기업들 (Red Hat, Microsoft, IBM, CoreOS, docker, MESOSPHERE, SALKSTACK) 들까지 자신들의 노하우를 결합하여 쿠버네티스는 높은 만족도를 얻었고, 점차 이 환경이 표준으로 자리 잡게 되었습니다. 쿠버네티스는 이러한 다양한 참여와 경험의 결합이 강점이 되었고, 그 결과로 시장의 중심에 서게 되었습니다.

 

컨테이너 오케스트레이션 도구

컨테이너 오케스트레이션 도구의 역할은 복잡한 컨테이너 기반 애플리케이션을 관리하고 운영하는 데 필요한 여러 가지 작업들을 자동화하고 조정하는 것입니다.

 

이러한 도구들은 효율적인 배포, 확장, 관리, 모니터링을 통해서 어플리케이션의 안정성, 확장성, 가용성을 향상시킵니다

 

컨테이너 오케스트레이션 도구들이 등장한 배경은 컨테이너 기술의 보급과 확산으로부터 시작됩니다.

컨테이너 기술은 애플리케이션을 격리된 환경에 담아 유연하고 빠르게 배포하는 방법으로 인기를 얻었습니다.

그러나 애플리케이션을 단일 컨테이너로 제한하는 것은 실제 환경에서의 복잡성과 요구 사항을 충족할 수 없었습니다.

 

이에 따라 여러 컨테이너가 상호 작용하는 복잡한 애플리케이션을 소화할 필요가 있었고,

컨테이너 오케스트레이션 도구들은 이런 복잡성과 다양한 컨테이너들의 관리를 위해 등장하게 되었습니다.

 

쿠버네티스

부족한 쿠버네티스 설명을 보충하기 위해 위키백과를 인용하면 다음과 같습니다.

 

쿠버네티스 (Kubernetes, k8s)는 컨테이너화된 애플리케이션의 자동 디플로이, 스케일링 등을 제공하는 관리 시스템으로 오픈소스 기반 플랫폼입니다. 워크로드 및 서비스, 선언적 구성과 자동화를 모두 용이하게 합니다.

그리고 위에 언급했던 것과 같이 여러 업체가 참여하였기 때문에 아직도 빠르게 성정하는 생태계를 구축하고 있습니다.

 

원저자  :  구글
안정화버전  :  1.28.4 / 2023.11.15
프로그래밍언어  :  Go
종류  :  클러스터 관리 소프트웨어
라이선스  :  아파치 라이선스 2.0 
웹사이트  :  https://kubernetes.io/

 

유래

쿠버네티스라는 이름은 조타수 또는 조종사를 의미하는 그리스어에서 유래되었습니다.

약어로 K8s  K와 s의 사이에 문자열 여덟 글자

K u b e r n e t e s  (u부터 e까지)
0 1 2 3 4 5 6 7 8 9

 

쿠버네티스가 필요한 이유

컨테이너는 애플리케이션을 번들로 묶고 실행하는 좋은 방법입니다. 프로덕션에서 환경, 응용 프로그램을 실행하는 컨테이너를 관리해야 합니다. 다운타임이 없는지 확인합니다. 예를 들어 컨테이너가 다운되면 다른 컨테이너가 다운됩니다 컨테이너를 시작해야 합니다. 이 동작이 시스템에서 처리된다면 더 쉽지 않을까요?

이것이 바로 쿠버네티스가 구출하는 방법입니다! 쿠버네티스는 프레임워크를 제공한다 분산 시스템을 탄력적으로 실행합니다. 에 대한 크기 조정 및 장애 조치(failover)를 처리합니다. 응용 프로그램, 배포 패턴 등을 제공합니다. 예를 들면 다음과 같습니다. 쿠버네티스 시스템에 대한 카나리아 배포를 쉽게 관리할 수 있습니다.

[1] 원문링크 : 개요 | 쿠버네티스 (kubernetes.io)

주요 기능

  • 서비스 검색 및 부하 분산
  • 스토리지 오케스트레이션
  • 자동화된 롤아웃 및 롤백
  • 자동 빈 포장
  • 자가 치유
  • 시크릿 및 구성관리
  • 배치 실행
  • 수평적 크기 조정
  • IPv4/IPv6 이중 스택
  • 확장성을 고려한 설계

 

이상으로 쿠버네티스의 배경을 알아보았습니다. 


[1] 원문링크 : 개요 | 쿠버네티스 (kubernetes.io)

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유