실무에서 느껴 본 쿠버네티스가 정말 편한 이유

Moongchi·2025년 6월 1일
0

kubernetes

목록 보기
3/14

쿠버네티스가 편리한 이유

AS-IS 환경

  1. 모니터링 시스템이 개발 환경에 의존하거나, 배포 이후에 별도로 구축됨
  2. 개발단계에 모니터링 환경이 구축되지 않아서 모니터링이 구축되면 불필요해지는 개발사항이 제품에 포함됨
  3. 수동 설정 방식이거나, 통합되지 않은 배포 방식으로 인해 일부 앱의 모니터링이 누락될 수 있음

쿠버네티스 환경

  1. 개발과 모니터링 시스템이 독립적으로 구축됨
  2. 배포환경과 모니터링 시스템이 동시 구축됨
  3. 모니터링 범위에 app이 누락되지 않음

쿠버네티스 인프라 구축

최소 구축

개발

  • 빌드도구
    - gradle
    • docker
  • CI/CD
    - gitlab
    • jenkins

오케스트레이션/매니징

  • 오케스트레이션
    - kubernetes
  • 서비스 검색
    - CoreDNS(내부 DNS를 통한 서비스 간 통신)
    • etcd(쿠버네티스 리소스 상태 저장)
  • 원격호출
    - gRPC
  • 서비스 프록시
    - nginx

런타임

  • 컨테이너 런타임
    - containerd
    • runc
  • 네트워크
    - calico

플랫폼

  • 설치
    - kubeadm

분석

  • 모니터링
    - Grafana
    • Prometheus

쿠버네티스 대표 기능

Traffic Routing

pod별 트래픽 분산

Self-Healing

OOM 등으로 pod가 죽은 경우 자동으로 재생성

AutoScaling

CPU/메모리 등의 Metric 기반으로 Pod 수 자동 조절 (HorizontalPodAutoscaler)

RollingUpdate

새 버전의 Pod를 점진적으로 생성하고, 준비 상태(Ready)가 되면 기존 Pod를 점진적으로 제거함 (무중단 배포)

서비스 안정화 및 인프라 환경 관리 코드화

서비스 안정화

신규 app이 생성됐을 때 자동으로 설정되어 휴먼 에러 방지

AS-IS

  • 신규 app 수동 네트워크 설정
  • 신규 app 수동 모니터링 연동

TO-BE(쿠버네티스)

  • 신규 app 자동 네트워크 설정
  • 신규 app 자동 모니터링 연동

인프라 환경 관리 코드화(IaC)

  • 코드로 관리하므로 인프라에 대한 History 관리 가능
  • 환경별 설정 차이를 코드로 비교 가능
  • 미리 구성 인프라 환경 설정 파일 생성 가능
  • 새 인프라 구축 시 이전에 작성된 코드 활용 가능

0개의 댓글