Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[testclient/scripts] Need a bigger vNet's IP address range for K8s cluster in create-vNet.sh #1409

Closed
sykim-etri opened this issue Jan 5, 2024 · 4 comments · Fixed by #1421
Assignees
Labels
enhancement New feature or request

Comments

@sykim-etri
Copy link
Member

sykim-etri commented Jan 5, 2024

What would you like to be enhanced
: 테스트 스크립트 중 vNet 생성 스크립트인 create-vNet.sh에서 테스트용 vNet 주소 공간의 확대가 필요합니다.

Why is this needed
: 테스트 스크립트를 통해 vNet 생성시 주소 공간(cidrBlock, subnetInfoList.IPv4_CIDR)을 비교적 적게 할당하고 있기 때문에,
해당 vNet에서 쿠버네티스 클러스터 생성 시 주소 공간 부족에 따른 실패 현상이 발생하는 경우가 있습니다.(azure의 경우)

Proposed solution
: vNet의 CIDR를 24에서 21 정도로 상향하고, subnet의 CIDR를 28에서 22 정도로 상향

function CallTB() {
echo "- Create vNet in ${MCIRRegionName}"
CIDRNum=$(($INDEX+1))
CIDRDiff=$(($CIDRNum*$REGION))
CIDRDiff=$(($CIDRDiff%254))
resp=$(
curl -H "${AUTH}" -sX POST http://$TumblebugServer/tumblebug/ns/$NSID/resources/vNet -H 'Content-Type: application/json' -d @- <<EOF
{
"name": "${CONN_CONFIG[$INDEX,$REGION]}-${POSTFIX}",
"connectionName": "${CONN_CONFIG[$INDEX,$REGION]}",
"cidrBlock": "192.168.${CIDRDiff}.0/24",
"subnetInfoList": [ {
"Name": "${CONN_CONFIG[$INDEX,$REGION]}-${POSTFIX}",
"IPv4_CIDR": "192.168.${CIDRDiff}.128/28"
} ]
}
EOF
); echo ${resp} | jq ''
echo ""
}

@sykim-etri sykim-etri added the enhancement New feature or request label Jan 5, 2024
@sykim-etri sykim-etri self-assigned this Jan 5, 2024
@sykim-etri
Copy link
Member Author

@seokho-son MCIS 관련 테스트시 CIDR 값과의 관련성이 어느정도 있을까요?

@seokho-son
Copy link
Member

seokho-son commented Jan 5, 2024

@sykim-etri

  • 일단, vNet 및 subnet의 주소 대역을 확장하는 것은 VM 쪽도 큰 문제는 없습니다. ^^
  • 다만, 기존 테스트 코드에서 주소 대역을 좁혀서 쓰고 있는 이유는 192.168.x.x 를 활용하면서도 여러 CSP의 vNet(VPC) 생성시 supernetting (CSP1: 192.168.1.[1 ~ 254], CSP2: 192.168.2.[1 ~ 254], ..., CSP_n: 192.168.n.[1 ~ 254] 도 지원하도록 구성하기 위함이었습니다.
  • 활용 가능한 주소 대역을 복잡하지 않게 하려면, CIDR 16, 24 등을 활용하면 좋은데, CIDR을 16으로 하려니, 192.168 패턴을 사용하면서도 멀티클라우드 supernetting 을 지원하는 구성을 제공하기가 까다롭네요.

일단 해당 스크립트는 테스팅 목적만 가지고 있으므로, "IPv4_CIDR": "192.168.${CIDRDiff}.0/24" 로 subnet 대역만 변경해서, 250여개 IP만 제공하여 테스트하면 어떨까 싶은데,
쿠버네티스 클러스터 생성 시 주소 공간 부족에 따른 실패 현상이 발생하는 경우가 있습니다.(azure의 경우) 는 어떤 경우인가요? 클러스터의 노드 네트워크 CIDR의 최소값이 지정되어 있는 상황인지요?

@sykim-etri
Copy link
Member Author

Azure에서 클러스터 생성(노드그룹1개 - Desired 1, Min 1, Max 1, Azure CNI)후 새로운 NodeGroup(1/1/1)을 추가하려는 경우 주소 공간이 적어 아래와 같은 에러가 리턴된 바 있습니다.--;

[CB-SPIDER].[ERROR]: 2023-12-21 08:12:59 ClusterManager.go:922, github.com/cloud-barista/cb-spider/api-runtime/common-runtime.AddNodeGroup() - Failed to Add NodeGroup. err = failed add agentPool err = containerservice.AgentPoolsClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error: Code="InsufficientSubnetSize" Message="Pre-allocated IPs 2
18 exceeds IPs available 123 in Subnet Cidr 192.168.4.128/25, Subnet Name az-ea-syk-cm0mdaq3egva5e0k1vp0. http://aka.ms/aks/insufficientsubnetsize" Target="agentPoolProfile.vnetSubnetI
D"                                                                                                                                                                                      

또는 Subnet 주소를 /24로 생성한 후 신규 NodeGroup(2/1/2)로 추가하는 경우는 더 많은 주소의 사전 할당이 필요하다고 나오기도 했습니다.

[CB-SPIDER].[ERROR]: 2023-12-26 07:36:25 ClusterManager.go:922, github.com/cloud-barista/cb-spider/api-runtime/common-runtime.AddNodeGroup() - Failed to Add NodeGroup. err = failed add
 agentPool err = containerservice.AgentPoolsClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error: Code="InsufficientSubnetSize" Message="Pre-allocated IPs 4
36 exceeds IPs available 251 in Subnet Cidr 192.168.2.0/24, Subnet Name az-krc-syk-clsj71a3egva36qqt700. http://aka.ms/aks/insufficientsubnetsize" Target="agentPoolProfile.vnetSubnetID
"                                             

해당 로그에 대해 다시 생각해보니... 사전 할당 IP를 너무 많이 요구하고 있는 것으로 보여.. Azure용 CB-SP 드라이버쪽이나 Azure Console 등 상황을 한번 확인해보겠습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
2 participants