<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>컨테이너 네트워크 &#8211; Springfield InfiNet: Global Gaming Gateway</title>
	<atom:link href="https://springfieldinfinet.net/category/container/feed/" rel="self" type="application/rss+xml" />
	<link>https://springfieldinfinet.net</link>
	<description>High-Speed Access to Premium Casinos</description>
	<lastBuildDate>Sat, 30 May 2026 11:27:18 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>쿠버네티스 컨테이너 네트워킹 구조 이해하기</title>
		<link>https://springfieldinfinet.net/container-network/</link>
		
		<dc:creator><![CDATA[Marcus Sullivan, CCIE]]></dc:creator>
		<pubDate>Fri, 10 Apr 2026 19:57:29 +0000</pubDate>
				<category><![CDATA[컨테이너 네트워크]]></category>
		<guid isPermaLink="false">https://springfieldinfinet.net/?p=138</guid>

					<description><![CDATA[컨테이너가 늘어나면 통신이 복잡해진다 컨테이너 하나는 가볍고 다루기 쉽습니다. 그러나 수백 개가 여러 노드에 흩어져 돌아가기 시작하면, &#8220;어느 컨테이너가 어느 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img fetchpriority="high" decoding="async" class="alignnone size-medium wp-image-171" src="https://springfieldinfinet.net/wp-content/uploads/2026/05/kubernetes-networking-model-300x204.png" alt="pod communication diagram" width="300" height="204" srcset="https://springfieldinfinet.net/wp-content/uploads/2026/05/kubernetes-networking-model-300x204.png 300w, https://springfieldinfinet.net/wp-content/uploads/2026/05/kubernetes-networking-model.png 321w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<h2>컨테이너가 늘어나면 통신이 복잡해진다</h2>
<p>컨테이너 하나는 가볍고 다루기 쉽습니다. 그러나 수백 개가 여러 노드에 흩어져 돌아가기 시작하면, &#8220;어느 컨테이너가 어느 컨테이너와 어떻게 통신하는가&#8221;가 곧 만만찮은 난제가 됩니다. 컨테이너는 수시로 생겼다 사라지고, 그때마다 위치가 바뀌며, 같은 노드에 있을 수도 다른 노드에 있을 수도 있습니다.</p>
<p>전통적인 방식대로 포트를 일일이 매핑하고 주소를 수동으로 관리하면 이 규모를 감당할 수 없습니다. 쿠버네티스는 이 문제를 풀기 위해 독자적인 네트워킹 모델을 정의했습니다. 그 핵심은 의외로 단순합니다. 모든 파드가 주소 변환 없이 서로의 고유 IP로 직접 통신할 수 있어야 한다는 원칙입니다. 복잡함을 더하는 대신 전제를 단순하게 만들어, 그 위에서 모든 것이 일관되게 동작하도록 한 것입니다.</p>
<h2>쿠버네티스 네트워킹의 세 가지 약속</h2>
<p>쿠버네티스 네트워크 모델은 몇 가지 기본 전제 위에 서 있습니다. 이 약속들이 지켜져야 그 위의 모든 통신이 예측 가능해집니다.</p>
<h3>파드마다 고유 IP</h3>
<p>모든 파드는 클러스터 전체에서 유일한 IP를 받습니다. 마치 각 파드가 자기만의 작은 가상 머신인 것처럼 동작합니다. 덕분에 같은 노드에 여러 파드가 있어도 포트가 충돌할 걱정 없이 각자 원하는 포트를 쓸 수 있습니다. 포트를 두고 다투거나 복잡하게 매핑할 필요가 사라지는 셈입니다.</p>
<h3>NAT 없는 파드 간 통신</h3>
<p>파드는 같은 노드에 있든 다른 노드에 있든, 상대의 IP로 곧장 통신합니다. 중간에 주소를 바꾸는 변환 단계가 없습니다. 이 점이 중요한 이유는, 주소가 도중에 바뀌지 않으니 통신 경로를 추적하고 문제를 진단하기가 훨씬 쉬워지기 때문입니다. 보내는 쪽이 본 주소와 받는 쪽이 보는 주소가 같아, 혼란의 여지가 줄어듭니다.</p>
<h3>노드와 파드의 상호 접근</h3>
<p>각 노드에서 돌아가는 관리 에이전트는 그 노드의 모든 파드에 접근할 수 있어야 합니다. 이 전제가 있어야 파드의 상태를 점검하고, 준비됐는지 확인하고, 문제가 생긴 파드를 교체하는 관리 작업이 가능합니다. 통신뿐 아니라 운영의 토대가 되는 약속입니다.</p>
<h2>통신 유형별로 보는 구조</h2>
<p>클러스터 안의 통신은 그 성격에 따라 몇 갈래로 나뉘며, 각각 다른 방식으로 처리됩니다.</p>
<h3>같은 파드 안의 컨테이너</h3>
<p>한 파드 안에 여러 컨테이너가 함께 들어 있을 수 있습니다. 이들은 같은 네트워크 공간을 공유하므로, 사실상 같은 호스트 안에 있는 것처럼 로컬 주소로 서로를 부릅니다. 가장 가깝고 빠른 통신이며, 긴밀히 협력하는 컨테이너들을 한 파드에 묶는 이유이기도 합니다.</p>
<h3>파드 사이의 통신</h3>
<p>서로 다른 파드 간 통신은 CNI(Container Network Interface) 플러그인이 담당합니다. 이 플러그인이 각 파드에 IP를 부여하고, 노드를 넘나드는 패킷이 올바른 파드에 닿도록 경로를 프로그래밍합니다. 쿠버네티스가 약속한 평평한 주소 공간, 즉 모든 파드가 서로 직접 통신할 수 있는 환경은 바로 이 플러그인이 실제로 구현해냅니다.</p>
<h2>서비스라는 추상화</h2>
<p>파드는 수시로 생성되고 삭제되며, 그때마다 IP가 바뀝니다. 그렇다면 다른 구성 요소가 어떻게 그 파드를 안정적으로 부를 수 있을까요. 매번 바뀌는 IP를 쫓아다니는 것은 비현실적입니다. 그래서 쿠버네티스는 서비스라는 개념을 둡니다.</p>
<p>서비스는 같은 역할을 하는 파드 그룹을 대표하는 고정된 가상 IP를 제공합니다. 다른 구성 요소는 개별 파드가 아니라 이 서비스 주소로 요청을 보내고, 서비스는 그 요청을 뒤에 있는 살아 있는 파드들에게 <a href="/load-balancer">부하 분산</a>합니다. 이 가상 주소는 클러스터 내부 <a href="/dns">DNS</a>를 통해 이름으로 찾을 수 있어, 숫자 대신 의미 있는 이름으로 서비스를 부를 수 있습니다. 파드가 교체되고 IP가 바뀌어도 서비스의 이름과 주소는 그대로 유지되므로, 변화 속에서도 안정적인 연결점이 됩니다.</p>
<h2>네트워크 정책으로 통신 제한하기</h2>
<p>모든 파드가 서로 자유롭게 통신할 수 있다는 기본 전제는 편리하지만, 보안 관점에서는 위험할 수 있습니다. 한 파드가 침해되면 거기서 다른 모든 파드로 거리낌 없이 접근할 수 있기 때문입니다. 그래서 쿠버네티스는 네트워크 정책으로 이 기본 허용을 좁힐 수 있게 합니다.</p>
<p>네트워크 정책은 어떤 파드가 어떤 파드와 통신할 수 있는지를 규칙으로 정의합니다. 예를 들어 웹 파드는 애플리케이션 파드와만 통신하고, 데이터베이스 파드는 애플리케이션 파드의 접근만 허용하도록 묶을 수 있습니다. 이렇게 통신 경로를 필요한 만큼만 열어두면, 한 곳이 뚫려도 피해가 클러스터 전체로 번지는 것을 막을 수 있습니다. 다만 이 정책 역시 이를 지원하는 CNI 플러그인이 있어야 실제로 동작하므로, 플러그인 선택 단계에서 함께 고려해야 합니다.</p>
<h2>CNI 플러그인의 선택</h2>
<p>쿠버네티스 자체는 네트워킹을 직접 구현하지 않습니다. 대신 CNI라는 규격만 정해두고, 그 규격을 만족하는 플러그인에 실제 구현을 맡깁니다. 덕분에 환경과 요구사항에 맞는 플러그인을 골라 쓸 수 있는 유연함이 생깁니다. 단순하고 빠른 것을 원하면 가벼운 플러그인을, 세밀한 정책 제어가 필요하면 기능이 풍부한 플러그인을 선택하는 식입니다.</p>
<p>선택할 때 반드시 챙겨야 할 점은 파드에 할당하는 IP 대역이 클러스터 외부 네트워크와 겹치지 않게 하는 것입니다. 겹치면 클러스터 안과 밖의 주소가 충돌해 통신이 엉킵니다. 모델의 공식 정의와 플러그인이 갖춰야 할 요건은 <a href="https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/" target="_blank" rel="noopener">쿠버네티스 공식 문서의 네트워크 플러그인 페이지</a>에 정리돼 있습니다.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
