교육, 커뮤니티 후기/인프런 교육

<인프런> 대세는 쿠버네티스 [초급] - No.2 Why Kubernetes

Somaz 2022. 7. 16. 16:43
728x90
반응형

Overview

오늘은 "왜 Kubernetes를 사용하는가?"에 대해 공부해보려 한다.

Kubernetes는 단순한 컨테이너 오케스트레이션 도구를 넘어서, 서비스 운영 환경을 효율적으로 자동화하고 최적화하는 핵심 인프라 솔루션으로 자리잡고 있다.

 

특히 Auto Scaling, Auto Healing, 무중단 배포(Deployment) 기능을 통해 개발·운영팀의 부담을 줄여주고, 효율적인 자원 운영으로 비용 절감 효과까지 제공한다.

 

 

이 글에서는 Kubernetes가 실제 운영 환경에서 어떤 자동화 기능을 제공하고, 그것이 왜 중요한지에 대해 살펴본다.

 

 

 


 

 

 

1. Why Kubernetes

 

운영환경이 편리해지고 서비스 효율이 증가하게 되고 서비스 효율로 인해 서버가 적어지면 그만큼 유지보수 비용이 적어지게 된다.

Kubernetes가 서비스 운영에 있어서 어떤 자동화 기능을 제공할까?
Auto Scailing 기능
Auto Healing 기능
Deployment Object를 통한 업데이트 적용 자동화

 

 

 

1) Kubernetes가 서비스 운영에 있어서 어떤 자동화 기능을 제공할까?

기업은 트래픽 예측이 어렵고 많은 자원 준비는 많은 비용 발생하는 딜레마가 발생한다.

따라서 기업들은 같이 하나의 서비스만 운영하는 것이 아닌 여러 서비스를 제공하면 더 큰 문제 발생가 발생하기 마련이다.

 

 

 

 

2) Auto Scaling(서버 자원 할당)

오토스케일링(Auto Scaling)은 클라우드의 유연성을 돋보이게 하는 핵심기술로 CPU, 메모리, 디스크, 네트워크 트래픽과 같은 시스템 자원들의 메트릭(Metric) 값을 모니터링하여 서버 사이즈를 자동으로 조절합니다. 이를 통해 사용자는 예상치 못한 서비스 부하에 효과적으로 대응하고 비용 절감 효과를 볼 수 있습니다.

Kubernetes는
가상화 기술을 적용!
같은 시간에 4대의 서버 자원이면 충분하기 때문에
Auto Scaling 기능을 적용해 각 시간대 별 트래픽에 따른 서비스 자원 할당이 가능함
→ 서버 자원 절약

 

 

 

3) Auto Healing(백업 자원 할당)

오토 힐링은(Auto Healing)은 장애가 난 서버 위에있는 서비스들이 다른 서버로 자동으로 옮겨주는 기능이다.

Kubernetes는
Auto Healing 기능을 제공해 여분의 서버 한 대만 있으면 백업 가능

 

 

 

 

 

4) Deployment Object를 통한 업데이트 적용 자동화

 

4-1) 서비스 버전 업데이트 적용 문제

기존 서비스-서버 모델의 서비스 버전 업데이트가 필요한 경우가 있다.

 

 

4-2) 서비스의 중단이 허용되는 경우

모든 서비스를 내렸다가 업데이트 이후 다시 올리는 방식으로 적용한다.

 

 

4-3) 무중단 서비스가 운영되어야 하는 경우

한 서버씩 내렸다가 업데이트 작업 이후 하나씩 서비스를 올리는 방식을 사용한다.

Kubernetes는
Deployment Object를 통해 업데이트 방식에 대해 자동으로 처리되도록 지원

 

 

 

5) Observability (모니터링 및 로깅)

Kubernetes는 Prometheus, Grafana, EFK/ELK와 같은 오픈소스 툴과 연동해 지속적인 모니터링, 경고 알림, 로그 수집까지 체계적으로 처리할 수 있다.

  • CPU/메모리 상태, Pod 상태, 네트워크 I/O 모니터링
  • 이벤트 기반 AlertManager를 통한 자동 알림 시스템 구성
  • Fluentd, Loki 등과 연계한 로그 수집 자동화

 

운영자가 없어도 시스템이 스스로 상태를 인지하고 대응할 수 있는 기반 마련 가능

 

 

 

 

6)  DevOps, GitOps와의 궁합

  • Kubernetes는 CI/CD 파이프라인과 자연스럽게 연결된다.
  • ArgoCD, Flux 등을 활용하면 Git 저장소 기반의 GitOps 방식 배포도 가능.

 

개발-배포-운영까지 하나의 흐름으로 자동화 가능 → 협업 & 속도 개선

 

 

 

 

7) 멀티 클라우드 및 하이브리드 클라우드 지원

Kubernetes는 AWS, GCP, Azure, On-Prem 모두에서 동작하기 때문에,

  • 클라우드 벤더 종속성 탈피
  • 멀티 클라우드 전략, DR 환경 구축, 클러스터 이중화 등에 효과적

 

 

 

 

8) 마이크로서비스 아키텍처(MSA)와의 시너지

Kubernetes는 Pod 단위로 배포되고 스케일링 되기 때문에,

  • 독립적 배포 가능
  • 장애 전파 최소화
  • 서비스 간 분산 배포 및 트래픽 조절 가능

MSA 도입을 고려 중인 조직에는 최적의 인프라 선택지

 

 

 

 

 

 

 

 


 

 

 

마무리

Kubernetes는 단지 컨테이너를 배포하는 플랫폼이 아니라, "서비스 운영의 복잡성을 줄이고 자동화된 관리 환경을 제공"하는 강력한 솔루션이다.


이러한 자동화 덕분에 트래픽 예측 불가, 장애 복구, 배포 자동화 등 다양한 현실적인 문제를 사람이 아닌 시스템이 해결할 수 있게 해준다.

운영환경의 편리함 → 서비스 효율 증가 → 서버 자원 최소화 → 유지보수 비용 절감


이러한 선순환 구조를 만들어주는 것이 바로 Kubernetes의 진짜 가치다.

 

"복잡한 운영에서 자유롭고, 민첩한 서비스 제공을 원한다면 Kubernetes는 더 이상 선택이 아닌 필수다."

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

728x90
반응형