2025. 1. 15. 01:17ㆍ쿠버네티스/쿠버네티스
쿠버네티스에서 **IP 주소 관리(IP Address Management, IPAM)**는 각 Pod와 가상 네트워크에 고유한 IP 주소를 할당하고 이를 관리하는 중요한 작업입니다. 이 과정은 CNI(Container Network Interface) 플러그인과 이에 속한 IPAM 플러그인을 통해 이루어집니다. 아래에서 주요 개념과 Weave CNI 플러그인을 포함한 구체적인 구현 방식을 설명합니다.
IP 주소 관리의 주요 개념
- 책임 주체:
- 쿠버네티스 자체는 IP 주소 할당 방법에 관여하지 않습니다. 대신, 네트워크 솔루션 제공자인 CNI 플러그인이 이 작업을 담당합니다
- CNI 플러그인은 Pod에 네트워크 인터페이스를 설정하고, IPAM 플러그인을 호출하여 IP 주소를 할당합니다
- IP 주소 할당 방식:
- 각 노드에는 **Pod CIDR(Cluster-wide Subnet)**가 할당되며, 해당 노드의 Pod들은 이 범위 내에서 IP를 받습니다
- CNI 구성 파일의 ipam 섹션에서 사용할 IPAM 플러그인 유형과 서브넷 등을 정의할 수 있습니다
- 중복 방지:
- IPAM 플러그인은 클러스터 내에서 중복되지 않는 고유한 IP를 보장합니다. 이를 위해 로컬 데이터베이스 파일이나 중앙 저장소에 할당 정보를 기록합니다
CNI와 기본 IPAM 플러그인
- Host-Local 플러그인:
- 각 노드별로 로컬 데이터베이스를 사용해 IP를 관리합니다.
- 설정 예시:
{
"type": "host-local",
"subnet": "10.22.0.0/16",
"routes": [{ "dst": "0.0.0.0/0" }]
}
구성 요소 설명
- "type": 사용할 CNI 플러그인(예: bridge, host-local).
- "subnet": 사용할 IP 주소 대역(예: 10.22.0.0/16).
- "routes": 트래픽 라우팅 경로(예: 모든 트래픽(0.0.0.0/0) 허용).
- host-local: 각 호스트별로 IP 주소를 관리하는 로컬 IPAM 솔루션입니다. 이 플러그인은 지정된 서브넷에서 IP 주소를 할당하며, 각 노드는 독립적으로 IP 주소 범위를 관리합니다.
DHCP 플러그인:
- DHCP 서버를 사용하여 동적으로 IP를 할당합니다.
- 네트워크 외부와의 통합이 필요한 경우 유용합니다
Whereabouts:
- 클러스터 전체에서 중앙 집중식으로 IP 범위를 관리하며, 데이터 저장소를 사용하여 상태를 추적합니다.
- 설정 예시:
{
"type": "whereabouts",
"range": "192.168.2.0/24"
}
https://www.cni.dev/plugins/current/ipam/
CNI
www.cni.dev
https://dougbtv.com/nfvpe/2019/11/27/whereabouts-a-cluster-wide-cni-ipam-plugin/
Whereabouts -- A cluster-wide CNI IP Address Management (IPAM) plugin · dougbtv
Whereabouts -- A cluster-wide CNI IP Address Management (IPAM) plugin 27 Nov 2019 Something that’s a real challenge when you’re trying to attach multiple networks to pods in Kubernetes is trying to get the right IP addresses assigned to those interface
dougbtv.com
https://gornoba.github.io/devops/kubernetes/networking/ip-address-management
쿠버네티스에서의 IP 주소 관리 (IPAM) | Hyunhoo's blog
gornoba.github.io
https://docs.tigera.io/calico/latest/networking/ipam/get-started-ip-addresses
Get started with IP address management | Calico Documentation
Configure Calico to use Calico IPAM or host-local IPAM, and when to use one or the other.
docs.tigera.io
Weave CNI 플러그인의 IPAM 구현
- 기본 동작:
- Weave는 기본적으로 10.32.0.0/12 범위를 사용하여 약 100만 개의 IP를 제공합니다
- 이 범위는 클러스터의 모든 노드 간에 균등하게 분할되며, 각 노드는 자신에게 할당된 서브넷 내에서 Pod에 IP를 할당합니다.
- 구성 가능 옵션:
- 사용자 정의 범위를 설정하려면 Weave 배포 시 --ipalloc-range 옵션을 사용합니다.
weave launch --ipalloc-range 10.200.0.0/16
- CNI 플러그인 설정 확인: /etc/cni/net.d/ 디렉토리에서 확인 가능.
- Weave의 네트워크 범위 확인: ip addr show weave 명령어 사용.
- 포드의 라우팅 정보 확인: kubectl exec <pod-name> -- ip route
'쿠버네티스 > 쿠버네티스' 카테고리의 다른 글
Networking - weave cni (0) | 2025.01.15 |
---|---|
Networking - Pod Networking (0) | 2025.01.15 |
Networking - Docker Networking - CNI - CLuster Networking (0) | 2025.01.15 |
Storage - Container Storage Interface (CSI) (0) | 2025.01.13 |
Storage - Introduction to Docker Storage (0) | 2025.01.13 |