클래식 클러스터: 로드 밸런서를 배치할 수 없는 이유는 무엇입니까?
클러스터에서 네트워크 부하 분산(NLB) 서비스를 배포하거나 업데이트할 때 발생하는 문제를 해결합니다.
클래식 인프라
사용자가 클래식 클러스터에서 ibm-cloud-provider-vlan-ip-config ConfigMap에 대해 describe 명령을 실행하면 다음 출력 예와 유사한 오류 메시지가 표시됩니다.
oc describe cm ibm-cloud-provider-vlan-ip-config -n kube-system
Warning CreatingLoadBalancerFailed ... ErrorSubnetLimitReached: There are already the maximum number of subnets permitted in this VLAN.
표준 클러스터에서 구역의 클러스터를 처음으로 작성하는 경우, 해당 구역의 공용 VLAN 및 사설 VLAN은 IBM Cloud 인프라 계정에서 사용자를 위해 자동으로 프로비저닝됩니다.
해당 구역에서는 사용자가 지정하는 공용 VLAN에서 1개의 공용 포터블 서브넷이 요청되며 사용자가 지정하는 사설 VLAN에서 1개의 사설 포터블 서브넷이 요청됩니다. Red Hat OpenShift on IBM Cloud의 경우 VLAN에는 서브넷이 40개로 제한되어 있습니다. 구역에 있는 클러스터의 VLAN이 이미 해당 한계에 도달한 경우에는 네트워크 로드 밸런서(NLB)를 작성하는 데 사용할 수 있는 포터블 공인 IP 주소를 보유하고 있지 않을 수 있습니다.
VLAN의 서브넷 수를 보려면 다음을 수행하십시오.
- IBM Cloud 인프라 콘솔에서 [ 네트워크 ] > [ IP 관리 ] > [VLAN]을 선택합니다.
- 클러스터를 작성하는 데 사용한 VLAN의 VLAN 번호를 클릭하십시오. 서브넷 섹션을 검토하여 40개 이상의 서브넷이 있는지 확인하십시오.
새 VLAN이 필요한 경우 IBM Cloud 지원 팀에 문의하여 주문하십시오.
그런 다음, 이 새 VLAN을 사용하는 클러스터를 작성하십시오.
사용 가능한 다른 VLAN이 있는 경우에는 기존 클러스터에 VLAN Spanning을 설정할 수 있습니다. 그 후에는 사용 가능한 서브넷이 있는 다른 VLAN을 사용하는 클러스터에 새 작업자 노드를 추가할 수 있습니다. VLAN Spanning이 사용으로 설정되었는지 확인하려면 ibmcloud oc vlan spanning get --region REGION 명령을 사용하십시오.
VLAN의 모든 서브넷을 사용 중인 경우가 아니면 서브넷을 클러스터에 추가하여 VLAN에서 서브넷을 재사용할 수 있습니다.
-
사용할 서브넷이 사용 가능한지 확인하십시오.
사용 중인 인프라 계정이 여러 IBM Cloud 계정 간에 공유될 수 있습니다. 이 경우에는
ibmcloud oc subnets명령을 실행하여 바인드된 클러스터의 서브넷을 확인해도 사용자가 자체 클러스터에 대한 정보만 볼 수 있습니다. 인프라 계정 소유자에게 확인하여 해당 서브넷이 사용 가능하며 다른 계정 또는 팀에 의해 사용 중이 아닌지 확인하십시오. -
ibmcloud oc cluster subnet add명령 기존 서브넷을 클러스터에서 사용할 수 있도록 하십시오. -
서브넷이 정상적으로 작성되어 클러스터에 추가되었는지 확인하십시오. 서브넷 CIDR은 Subnet VLANs 섹션에 나열되어 있습니다.
ibmcloud oc cluster get --cluster CLUSTER_NAME --show-resources이 예제 출력에서는 두 번째 서브넷이
2234945공용 VLAN에 추가되었습니다.Subnet VLANs VLAN ID Subnet CIDR Public User-managed 2234947 10.xxx.xx.xxx/29 false false 2234945 169.xx.xxx.xxx/29 true false 2234945 169.xx.xxx.xxx/29 true false -
추가한 서브넷의 포터블 IP 주소가 로드 밸런서의 EXTERNAL-IP에 사용되는지 확인하십시오. 서비스가 새 서브넷의 포터블 IP 주소를 사용하는 데 몇 분이 걸릴 수 있습니다.
oc get svc -n kube-system