요즘 인스타 광고글이나 여러 블로그 포스팅등등 여러 곳에서 쿠버네티스라는 용어를 자주 접했다. 저게 뭘까...? 처음엔 네카라쿠배인줄.. 

 

쿠버네티스 그게 도대체 뭐야?

 

쿠버네티스란?

쿠버네티스는 컨테이너화된 애플리케이션을 여러 대의 컴퓨터(서버)에 효율적으로 배포하고 관리할 수 있도록 돕는 도구이다.

 

컨테이너?는 뭘까?

컨테이너는 애플리케이션과 그에 필요한 라이브러리, 설정 파일 등을 한데 묶어 어디서든 똑같이 실행할 수 있도록 만든 작은 가상화 기술이다.

 

쿠버네티스에서는 하나 이상의 컨테이너를 묶어서 Pod라고 부른다. 쉽게 말해, Pod는 애플리케이션의 한 부분으로, 내 앱이 실제로 살아있는 단위라고 생각하면 된다.

 

네트워크적 관점에서 쿠버네티스는 Pod가 서로 통신할 수 있는 가상 네트워크 환경을 제공하며, 외부 사용자도 이 네트워크를 통해 내 애플리케이션에 접근할 수 있도록 해준다.

 

 

쿠버네티스 네트워크의 기본 구조

쿠버네티스 클러스터(여러 서버가 모여 만든 하나의 큰 시스템) 안에는 여러 가지 네트워크 구성 요소가 있다. 크게 세 가지로 나눠볼 수 있는데

  • Pod 네트워크 : 모든 Pod는 서로 IP 주소를 부여받아 같은 네트워크 상에서 직접 연결된다. 마치 같은 동네에 사는 사람들이 서로 쉽게 연락할 수 있는 것과 비슷하다.
  • 서비스(Service) : 여러 Pod가 모여 있는 애플리케이션에는 '서비스'라는 추상화 계층을 두어, 외부 사용자나 다른 Pod들이 하나의 고정된 주소(예: 클러스터IP)를 통해 애플리케이션에 접근할 수 있도록 한다.
  • 인그레스 / 이그레스 : 외부 네트워크(인터넷)와 내부 네트워크(클러스터)의 경계 역할을 담당한다. 인그레스는 외부에서 들어오는 요청을, 이그레스는 내부에서 외부로 나가는 요청을 다룬다.

또 쿠버네티스는 CNI(Container Network Interface)라는 표준을 사용해서 네트워크를 구성한다. 대표적인 CNI 플러그인으로 Calio. Flannel, Cilium 등이 있는데, 이들은 각각 특색 있는 기능을 제공해 네트워크 성능이나 보안을 강화해 준다.

 

 

쿠버네티스 구조

 

위 다이어그램을 살펴보면

  1. 쿠버네티스 클러스터 : 여러 대의 서버(노드)로 구성된 전체 시스템을 의미한다.
  2. 마스터 노드 : 클러스터를 관리하는 두뇌 역할을 한다. 여기에서는 API 서버, 컨트롤러, 스케줄러 등이 포함되어 있어서, 워커 노드에 어떤 작업을 언제 할당할지 결정한다.
  3. 워커 노드들 : 실제 애플리케이션이 실행되는 서버들이다. 워커 노드에는 하나 이상의 Pod가 실행된다.
  4. Pod : 하나 이상의 컨테이너가 묶인 가장 작은 배포 단위이다. 하나의 Pod 내에 있는 컨테이너들은 같은 IP를 공유하며 함께 동작한다.

 

결론적으로 쿠버네티스는 컨테이너화된 애플리케이션이 제대로 실행되고, 필요한 경우 자동으로 확장 및 축소되도록 도와주는 도구이다.

 

'네트워크' 카테고리의 다른 글

서버-클라이언트 간 데이터 전송 성능 극대화를 위한 프로토콜 분석 (TCP vs UDP vs QUIC)  (0) 2025.06.02
기본 인증  (0) 2024.08.15
클라이언트 식별과 쿠키  (0) 2024.08.09
캐시  (0) 2024.08.07
웹 서버  (1) 2024.08.06

+ Recent posts