8.1 쿠버네티스 네트워킹 기초
쿠버네티스 위에서 동작하는 애플리케이션들은 서로 긴밀하게 통신하며 복잡한 서비스를 구성합니다. 이러한 ‘연결성’을 가능하게 하는 것이 바로 쿠버네티스의 네트워킹 모델입니다. 이 모델은 마치 도시의 도로망처럼, 각 건물(파드)들이 서로 쉽게 찾아가고 소통할 수 있도록 설계되었습니다. 하지만 이 도로망은 우리가 흔히 생각하는 전통적인 네트워크 환경과는 몇 가지 중요한 차이점을 가지고 있으며, 이를 이해하는 것은 쿠버네티스를 제대로 활용하기 위한 첫걸음입니다.
이번 8.1장에서는 쿠버네티스 네트워킹의 가장 기본적인 개념들을 다룰 것입니다. 복잡한 서비스 디스커버리나 외부 트래픽 라우팅을 논하기 전에, 먼저 쿠버네티스가 어떤 네트워킹 환경을 전제로 하는지, 그리고 이 환경을 구성하는 핵심 요소들은 무엇인지 알아야 합니다. 마치 새로운 도시에 도착해서 가장 먼저 지도와 교통 시스템을 파악하는 것과 같습니다.
- 8.1.1 기본 요구사항 및 모델에서는 쿠버네티스가 모든 클러스터 구성에서 기본적으로 만족해야 한다고 정의하는 네트워킹의 핵심 원칙들을 살펴볼 것입니다. 특히, 모든 파드가 자신만의 고유한 IP 주소를 가져야 한다는 점, 그리고 모든 파드가 특별한 주소 변환(NAT) 없이 다른 모든 파드와 직접 통신할 수 있어야 한다는 이상적인 ‘플랫 네트워크(flat network)’ 모델에 대해 이야기할 것입니다. 또한, 노드와 파드 간의 통신도 NAT 없이 이루어져야 한다는 요구사항도 함께 다루며, 이러한 모델이 왜 애플리케이션 개발과 배포를 단순화시키는지 이해하게 될 것입니다.
- 다음으로 8.1.2 파드 IP, 노드 IP, 클러스터 IP, 외부 IP에서는 쿠버네티스 환경에서 마주하게 되는 다양한 종류의 IP 주소들이 각각 어떤 의미를 가지고 어떤 범위에서 사용되는지 명확히 구분할 것입니다. 파드들이 실제로 통신할 때 사용하는 ‘파드 IP’, 물리적 또는 가상 머신인 노드 자체가 가지는 ‘노드 IP’, 쿠버네티스 서비스에 할당되는 가상 IP인 ‘클러스터 IP’, 그리고 클러스터 외부에서 서비스에 접근하기 위해 사용될 수 있는 ‘외부 IP’까지, 이들 IP 주소의 역할과 생명주기를 이해하는 것은 네트워크 문제를 해결하고 통신 흐름을 파악하는 데 매우 중요합니다.
- 마지막으로 8.1.3 컨테이너 네트워크 인터페이스 (CNI)에서는 앞서 언급된 쿠버네티스의 네트워킹 모델, 특히 “모든 파드는 고유 IP를 가진다”는 요구사항을 실제로 구현하는 핵심 기술인 CNI에 대해 알아볼 것입니다. CNI는 다양한 네트워크 솔루션(CNI 플러그인)들이 쿠버네티스와 쉽게 통합될 수 있도록 하는 표준 인터페이스입니다. Flannel, Calico, Weave Net 등 널리 사용되는 CNI 플러그인들의 종류와 각각의 특징을 간략히 소개하고, K3s나 Rancher Desktop과 같은 경량 쿠버네티스 배포판들이 기본적으로 어떤 CNI 플러그인을 사용하는지에 대해서도 언급하여, 독자 여러분이 사용하는 환경의 네트워크 구성에 대한 이해를 돕고자 합니다.
이 장을 통해 쿠버네티스 네트워킹의 기본 원리와 구성 요소들을 탄탄히 다지게 되면, 이어지는 서비스, 인그레스, 네트워크 폴리시와 같은 고급 네트워킹 개념들을 훨씬 더 쉽게 이해하고 활용할 수 있을 것입니다. 자, 그럼 쿠버네티스 네트워크의 기초를 다지는 여정을 시작해 보겠습니다!