As a Cloud Solution Architect for Microsoft, I'm privileged to work with some great companies which have unique challenges.
One of our large partners was migrating their solution from AWS to Azure. Their configuration exposes 10+ services inside Azure Kubernetes Service (AKS) to their customer inside a different Azure Tenant and Subscription through Private Link Service and Private Endpoints.
The issue is that at this time is:
A single AKS cluster can only have 1 Internal Standard Load Balancer
This means that they could expose 8 services, but not the rest of them.
Unfortunately, the feature to enable Multiple LB's is not currently available in AKS.
After talking to other AKS experts, we proposed the following:
- Use 1 PLS
- Use 1 LB
Specify the SAME IP ADDRESS as part of
spec.loadBalancerIPin the Service YAML and use different ports for each service
This allowed them to reduce the number of Private Endpoints, reduce their operational complexity as well as use Kubernetes native Port Mapping with minimal architectural change.
We reviewed this with the partner and after some Helm chart + Terraform work, this met their needs swimmingly.