본문 바로가기
Development Frameworks/클라우드 컴퓨팅(Cloud Computing)

[Kubernetes] 🚢 쿠버네티스(Kubernetes) 기초 가이드 🚢

by 데이터 벌집 2023. 11. 5.

Kubernetes

 

 

안녕하세요, 여러분! 🌟 오늘은 최근 핫한 주제 중 하나인 '쿠버네티스(Kubernetes)'에 대해 함께 알아보려 합니다.


1. 쿠버네티스란? 🚢

 

쿠버네티스는 컨테이너화된 애플리케이션을 자동으로 배포, 확장, 관리해 주는 오픈 소스 플랫폼입니다. 간단하게 말하면, 여러 컴퓨터(서버) 위에서 도커 컨테이너들을 관리해 주는 슈퍼매니저 같은 것이죠! 🦸

The components of a Kubernetes cluster, 출처: Kubernetes

 


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

 

도커와 같은 컨테이너 기술이 대중화되면서, 수십, 수백, 수천 개의 컨테이너를 효율적으로 관리할 필요성이 생겼습니다. 이런 대규모 환경에서는 자동화와 안정성이 중요한데, 쿠버네티스는 바로 이런 문제점들을 해결해 줍니다. 🧭

 

도커(Docker) 📦:

  • 컨테이너 생성: 도커는 '컨테이너'라는 기술을 사용하여 애플리케이션과 그 필요한 환경을 하나의 '상자'로 포장하는 역할을 합니다.
  • 일관성: 이 상자는 어디에서나 동일하게 동작하기 때문에, "내 컴퓨터에서는 되는데 다른 곳에서는 안 돼"라는 문제를 해결해줍니다.
  • 간단한 관리: 도커 자체도 몇 개의 컨테이너를 실행하거나 관리하는 데 유용합니다.

 

쿠버네티스(Kubernetes) 🚢:

  • 컨테이너 관리: 쿠버네티스는 도커로 만든 많은 컨테이너들을 대규모로 관리해 주는 도구입니다.
  • 자동화: 서비스에 문제가 생겼을 때 자동으로 복구하거나, 사용자가 많아졌을 때 자동으로 컨테이너를 더 띄우는 등의 작업을 자동으로 해줍니다.
  • 복잡한 환경: 대규모 서비스나 복잡한 환경에서 여러 대의 서버와 수십, 수백 개의 컨테이너를 관리할 때 필요합니다.

 

간단하게 비유를 들어보면, 도커는 당신이 좋아하는 요리의 '레시피'와 '재료'를 하나의 도시락 박스에 담아주는 역할을 하고, 쿠버네티스는 이 도시락 박스들을 수백, 수천 개 관리하면서 필요한 곳에 배달해 주는 배달원과 같은 역할을 합니다. 🍱🚴‍♂️

 

즉, 도커는 개별 컨테이너를 만들고 실행하는 역할을 주로 하며, 쿠버네티스는 이런 컨테이너들을 대규모로 효율적으로 관리해 주는 역할을 합니다.


3. 쿠버네티스의 주요 기능은? 🛠

  • 자동 복구 💪
    • 어떻게 동작하는가? 쿠버네티스는 컨테이너의 상태를 지속적으로 체크합니다. 만약 컨테이너가 실패하거나 응답하지 않는다면, 쿠버네티스는 해당 컨테이너를 재시작합니다. 이로 인해 애플리케이션의 가용성이 높아집니다.
    • 왜 중요한가? 이 기능 덕분에 애플리케이션의 다운타임이 최소화되며, 사용자는 서비스 중단을 거의 경험하지 않게 됩니다.
  • 로드 밸런싱 ⚖️
    • 어떻게 동작하는가? 쿠버네티스는 자동으로 사용자의 요청을 여러 개의 컨테이너에 분산시키는 로드 밸런서를 제공합니다. 로드 밸런서는 컨테이너 간의 트래픽 분산을 담당하므로, 어느 한 컨테이너에 과부하가 걸리지 않게 해 줍니다.
    • 왜 중요한가? 서비스의 트래픽이 몰리더라도 고르게 분산되어, 전체 시스템의 안정성과 성능을 유지할 수 있습니다.
  • 자동 확장 📈
    • 어떻게 동작하는가? 쿠버네티스는 트래픽의 증가나 리소스 사용량을 모니터링하여, 필요에 따라 컨테이너의 수를 자동으로 늘리거나 줄입니다.
    • 왜 중요한가? 사용자가 많아져도 자동으로 서비스를 확장하여, 부하에 대응할 수 있습니다. 반대로 사용자가 줄었을 때는 리소스를 절약하기 위해 컨테이너의 수를 줄일 수 있습니다.
  • 롤링 업데이트 🔄
    • 어떻게 동작하는가? 쿠버네티스는 애플리케이션의 새 버전을 배포할 때, 한 번에 모든 인스턴스를 업데이트하지 않고 점진적으로 업데이트합니다. 이 과정에서 오류가 발생하면, 롤백도 쉽게 할 수 있습니다.
    • 왜 중요한가? 사용자에게 서비스의 중단 없이 지속적으로 업데이트된 내용을 제공할 수 있습니다. 또한, 배포 중 발생할 수 있는 문제점도 최소화할 수 있습니다.

쿠버네티스는 컨테이너 기반의 애플리케이션 세상에서 필수적인 도구로 자리 잡았습니다. 처음 시작하기에는 조금 복잡해 보일 수 있지만, 꾸준히 학습하면 그 힘을 체감할 수 있을 거예요! 🚴‍♂️