Azure 위임 IPAM
Azure 위임 IPAM (Azure Delegated IPAM)
Azure CNI powered by Cilium 클러스터는 위임된 IPAM(IP 주소 관리자) 방식으로 Cilium CNI로 생성되는 Pod에 IP 주소를 할당해요. 이 글에서는 그 아키텍처와 Cilium·CNI 구성 방법을 알아볼게요.
본문
Azure CNI powered by Cilium 클러스터는 Cilium CNI로 생성되는 Pod에 IP 주소를 할당하기 위해 위임된 IPAM (IP Address Manager) 방식을 활용합니다. 이 위임된 IPAM 구성 요소는 클러스터의 개별 노드 내에서 IP 할당을 관리해요. AKS (Azure Kubernetes Service) 컨트롤 플레인 구성 요소와 긴밀히 협력하여 더 넓은 Azure Virtual Network 스택과 완벽하게 통합됩니다.
아키텍처
Azure Delegated Ipam 할당자는 CRD 기반 할당자 위에 구축됩니다. AKS 컨트롤 플레인은 각 노드에 노드 이름과 일치하는 NodeNetworkConfig 사용자 지정 리소스를 만듭니다. 이 사용자 지정 리소스는 오버레이 모드에서 노드 status.primaryIP 의 고유 IP 접두사 또는 PodSubnet 모드에서 고유 IP 주소 블록을 포함해요. 각 노드에서 실행되는 Delegated Ipam Agent는 이 리소스를 받아 노드 내 Pod의 IP 할당을 관리합니다. IP를 Cilium CNI에 제공하기 전에 IP가 Azure Network 스택에 프로그래밍되었는지 확인합니다.
Cilium 구성
cilium agent는 ipam: delegated-plugin 으로 실행되어야 합니다. cilium agent가 Pod의 IP를 관리하지 않으므로, cilium_host 인터페이스의 IP를 구성하려면 local-router-ipv4: 169.254.23.0 을 지정하는 것도 필요해요.
Cilium CNI 구성
Cilium CNI는 구성에 위임된 IPAM 세부 사항을 특별히 구성하여 위임된 Azure IPAM과 상호 작용할 수 있습니다. 이 구성은 Cilium CNI가 Pod 추가 및 삭제 작업 모두에서 위임된 IPAM을 트리거하도록 보장해요. Add 요청을 받으면 위임된 IPAM은 캐시에서 사용 가능한 IP 주소를 할당합니다. 마찬가지로 Delete 요청 시 위임된 IPAM은 IP를 사용 가능으로 표시합니다.
다음 JSON 스니펫은 Azure Delegated IPAM 구성이 있는 Cilium CNI 구성을 나타냅니다.
{
"cniVersion": "0.3.1",
"name": "cilium",
"plugins": [
{
"type": "cilium-cni",
"ipam": {
"type": "azure-ipam"
},
"enable-debug": true,
"log-file": "/var/log/cilium-cni.log"
}
]
}