쿠버네티스 소개

존스노우·2024년 8월 7일
0

쿠버네티스란?

컨테이너화된 애플리케이션을 관리하는 자동화 플랫폼

  • 목적: 여러 컨테이너를 효율적으로 배포, 확장, 관리

특징

  • 여러 호스트에 걸쳐 컨테이너 관리 가능
  • 중앙 집중식 관리 제공
  • 다양한 컨테이너 런타임 지원 (도커, containerd, cri-o 등)

구조

  • 마스터 노드: 전체 시스템 관리
  • 워커 노드: 실제 컨테이너가 실행되는 곳

쿠버네티스를 사용하면 무엇을 할 수 있을까?

선언적 코드를 사용한 관리 (IaC) : Infrastructure as Code)

  • YAML이나 JSON 파일로 시스템 구성을 정의
  • 이 파일(매니페스트)로 컨테이너와 관련 리소스를 관리
  • AWS CloudFormation, OpenStack Heat와 유사한 개념

스케일링/오토 스케일링

  • 여러 서버(노드)로 클러스터를 구성 노드 관리
  • 같은 컨테이너를 여러 개(레플리카) 배포하여 부하를 분산
  • 필요에 따라 컨테이너 수를 자동으로 조절 가능

정리

  • 쿠버네티스는 코드로 인프라를 관리할 수 있어 효율적

  • 간단한 설정 파일로 복잡한 시스템을 구성

  • 자동 스케일링으로 시스템 자원을 효율적으로 사용

  • 대규모 애플리케이션 관리 용이

  • 컨테이너 이미지 기반

컨테이너 이미지는 애플리케이션과 그 실행 환경을 패키징한 것입니다.
예를 들어, 웹 서버 애플리케이션과 그 설정을 담은 이미지를 만들 수 있습니다.

  • 같은 컨테이너 이미지를 기반으로 한 여러 컨테이너

하나의 이미지로 여러 개의 동일한 컨테이너를 생성할 수 있습니다.
이는 마치 하나의 요리 레시피로 여러 접시의 동일한 요리를 만드는 것과 비슷합니다.

  • 예를 들어 설명하면

웹 서버 애플리케이션의 컨테이너 이미지를 만듭니다.
이 하나의 이미지를 사용해 3개의 동일한 웹 서버 컨테이너를 실행합니다.
각 컨테이너는 같은 애플리케이션을 실행하지만, 독립적으로 작동합니다.

스케줄링

  • 컨테이너를 어떤 노드에 배치할지 결정하는 과정
  • 피니티/안티어피니티: 특정 조건에 따라 배치 제어 가능
  • SSD가 필요한 컨테이너는 SSD 있는 노드에 배치

리소스 관리

  • CPU, 메모리 등의 자원을 자동으로 관리
  • 필요시 클러스터 자체를 확장/축소 가능

자동화된 복구

  • 컨테이너 장애 시 자동으로 재시작
  • 노드 장애 시 다른 노드에 컨테이너 재배치

로드 밸런싱과 서비스 디스커버리

  • 여러 컨테이너에 트래픽 분산
  • 서비스 간 쉬운 연결 제공

데이터 관리

  • 설정, 인증 정보 등을 안전하게 중앙 관리
  • etcd를 사용해 데이터 이중화

확장성

  • 다양한 외부 도구와 연동 가능
  • 자체 기능 확장 가능

정리

쿠버네티스는 컨테이너 관리의 모든 측면을 자동화
복잡한 시스템을 효율적으로 운영할 수 있게 해줌
확장성이 뛰어나 다양한 환경에 적용 가능
개발자와 운영자의 부담을 크게 줄여줌

profile
어제의 나보다 한걸음 더

0개의 댓글