시간을 줄여주는 블로그(IT, Azure)

Azure AKS의 Private Cluster에서 Ingress Controller 배포 시 오류 : Error syncing load balancer 본문

Azure/Azure Virtual Machine

Azure AKS의 Private Cluster에서 Ingress Controller 배포 시 오류 : Error syncing load balancer

서희 아빠 2023. 9. 22. 10:04

AKS에서 UDR이 구성된 환경의 Private Cluster를 배포하는 경우 External Load Balancer가 자동 배포되지 않으며, Internal Load Balancer에 Ingress Controller를 통해서 제어를 하게 됩니다. 

 

Outbound traffic은 NVA나 Azure Firewall을 통해 제어하며, 최근에는 Azure Redhat Openshift도 해당 기능을 지원합니다.

helm이나 ARM, Bicep등을 통해 보통 배포를 하게 되는데, 배포시 다음과 같이 오류가 발생합니다.

 

Error syncing load balancer: failed to ensure load balancer: Retriable: false, RetryAfter: 0s, HTTPStatusCode: 403, RawError: {"error":{"code":"AuthorizationFailed","message":"The client '<AKS의 Managed ID Object ID>' with object id '<AKS의 Managed ID Object ID>'' does not have authorization to perform action 'Microsoft.Network/virtualNetworks/subnets/read' over scope '/subscriptions//providers/Microsoft.Network/virtualNetworks/블라블라(Subnet의 ID) or the scope is invalid. If access was recently granted, please refresh your credentials."}}

 

위 오류는 AKS클러스터의 관리 ID를 통해서 배포를 진행할 때 가상 네트워크의 서브넷에 대한 권한이 없기 때문에 발생되고, 해결 방법은 Network Contributor(한국어 포탈 = 네트워크 참가자) 권한을 해당 Managed ID에 Assign하여 해결합니다.

 

az role assignment create --assignee '<AKS Managed ID>'  --role "Network Contributor" --scope '<리소스그룹 ID>'

 

끝.

 

[참고자료]

https://learn.microsoft.com/ko-kr/azure/application-gateway/ingress-controller-update-ingress-controller

 

Helm을 사용하여 수신 컨트롤러 업그레이드

이 문서에서는 Helm을 사용하여 Application Gateway 수신을 업그레이드하는 방법에 대한 정보를 제공합니다.

learn.microsoft.com

https://learn.microsoft.com/en-us/azure/role-based-access-control/troubleshooting?tabs=bicep#role-assignment-changes-are-not-being-detected 

 

Troubleshoot Azure RBAC

Troubleshoot issues with Azure role-based access control (Azure RBAC).

learn.microsoft.com

 

Comments