공부하는 밍

[Kubernetes] 쿠버네티스 관련 개념정리 본문

IT 지식/Kubernetes

[Kubernetes] 쿠버네티스 관련 개념정리

밍Z 2021. 3. 3. 18:16
Kubernetes - Pod란?

1. Pod 내의 컨테이너들은 서로 IP와 Port를 공유함.
따라서, 같은 Pod 내에서는 localhost로 통신하며, 서로의 Port로 호출할 수 있음.

2. Pod 내의 컨테이너 간에는 디스크 볼륨을 공유할 수 있음. 한 컨테이너는 다른 컨테이너의 파일을 읽어올 수 있음.


쿠버네티스는 Object와 이를 관리하는 Controller로 구성되어 있다.

1) Object

  • Pod : 컨테이너화된 애플리케이션- 쿠버네티스에서 가장 기본적인 배포 단위- MSA 아키텍처에서 애플리케이션 컨테이너와, 애플리케이션에서 사용하는 주변 프로그램 컨테이너를 같이 Pod에 넣어 배포하기도 하는데, 이를 사이드카 패턴이라고 함.

  • Service : 로드밸런서

  • Volume : 디스크- 컨테이너가 restart할 때마다, 로컬 디스크의 내용이 유실됨.- 따라서, 유실되면 안되는 영구 데이터 (DB 등)는 Volume이라는 스토리지에 저장.

  • Namespace : 패키지명

2) Controller


도커와 쿠버네티스 (정말 너무 헷갈리는 개념...ㅠ)
  • 도커
    테이너 이미지 생성, 관리, 공유 및 도커 호환 호스트에 배치하여 컨테이너 구동 

  • 쿠버네티스
    - 여러 컨테이너 애플리케이션을 여러 대의 호스트에 배치 및 관리
    - 이러한 관리 도구를 컨테이너 오케스트레이션이라고 함.

  • 소수의 사용자를 위한 비교적 단순한 컨테이너 앱은 오케스트레이션이 필요하지 않기 때문에, 쿠버네티스가 필요 없음.

  • 오케스트레이션이 필요한 경우
    1) 2개 이상의 컨테이너가 관련되는 복잡한
    2) 확장성, 복구성이 중요한 앱
    3) 현대적인 CI/CD 기법을 적용하고자 할 때
    - Rolling Update, Blue-Green 배포 등 무중단 배포 방식을 사용하는 앱
    - Rolling Update란 기존 버전의 인스턴스와 새 버전의 인스턴스를 동시에 운영하면서, 기존 버전 인스턴스를 하나씩 줄여가는 방식.

Comments