본문 바로가기
IT/Kubernetes

Azure Kubenet CIDR

by rapker 2023. 4. 10.
반응형

AKS 배포 시 network 구성을 Kubenet으로 했을 때 node, service, pod 등 어떻게 IP 할당이 되는지 확인해 봅니다.

요약

  • Node : MC_리소스 그룹의 Subnet에서 IP할당
  • Pod : Pod CIDR에서 IP 할당
  • Service : Service CIDR에서 IP할당
  • Docker : CNI와 동일하게 AKS에서 실제 사용되지 않고, AKS 클러스터 내에서 도커 빌드와 같이 Docker 관련 행위가 있을 때 필요

특이사항

  • Pod간 통신은 Node마다 설치되는 Router로 가능하고 (node 성능 저하요소)
  • routing 경로는 node가 배포되는 subnet에 바인딩된 udr에 설정됩니다.

AKS 클러스터 생성 시 별도의 설정은 할 수 없지만 아래와 같은 설정으로 AKS 가 배포되었습니다.

Virtual Network(MC_리소스 그룹에 생성됨)

  VNet 10.224.0.0/12
  Subnet 10.224.0.0/16
Azure Kubernetes Service    
  Pod CIDR 10.244.0.0/16
  서비스 CIDR 10.0.0/0/16
  DNS 서비스 IP 10.0.0.10
  Docker 브리지 CIDR 172.17.0.1/16

 

AKS 배포

Azure CNI와 다르게 클러스터 배포 시 CIDR 구성하는 부분이 아예 없습니다.

 

 

CIDR 확인

AKS 배포 후 설정된 CIDR들을 확인 합니다.

AKS 배포시 어떠한 주소공간도 입력하지 않았지만 서비스와 Docker 브리지 CIDR은 Azure CNI로 배포할 때의 기본 값 그대로이구요

Azure CNI와 다르게 Pod CIDR이 추가되어 있습니다.

 

아!!, Azure CNI로 배포할 때는 VNet도 같이 생성이 되었는데 Kubenet일 때는 어떻게 되나 봐야겠네요

 

AKS 가 배포된 리소스 그룹에는 VNet없이 aks 클러스터만 생성되어 있습니다.

 

AKS 생성 시 MC_ 로 시작하는 리소스 그룹이 하나 같이 생성되는데 이쪽에 VNet이 배포되어 있네요

 

이녀석을 살펴봐야 겠습니다.

 

주소공간과 서브넷

 

주소공간은 넷마스크가 12bit고 subnet은 16bit네요

16bit는 pod에 사용되는것이겠고, 나머지는 뭔가 관리할 때 필요한가 봅니다.

 

그리고 Azure CNI에서는 없었던 보안그룹과, 경로 테이블이 설정되어 있습니다.

 

NSG(Network Security Group)와 UDR(User Defined Routing)

 

참고로

AKS 클러스터만 배포된 상태로 어떠한 pod도 배포하지 않은 상태입니다.

 

NSG에는 별다른 설정없이 NSG기본값만 들어 있고, route는 경로가 하나 설정되어 있습니다.

UDR에 설정된 값을 보면, **Pod CIDR(10.244.0.0/24)**의 **다음 홉은 Node의 IP(10.224.0.4)**입니다.

  • 아래 그림과 같이 모든 pod들은 pod가 배포된 node의 router에 의해 통신을 하기 때문인데 이처럼 UDR로 설정이 되는군요

자~

배포 직후 눈에 보이는 차이점을 좀 찾아 보았고,

이제 궁굼했던 node, service, pod ip가 어떻게 할당 되는지 보겠습니다.

 

 

사용된 주소공간 확인

먼저 node

Node MC_ 리소스 그룹의 Subnet 대역인 10.224.0.0/16에서 할당

 

클러스터에 Service(LB)와 Pod 배포

Service-LB 서비스 CIDR인 10.0.0.0/16 에서 IP할당
Pod Pod CIDR인 10.244.0.0/16 에서 IP할당

반응형
LIST