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

AKS clusters using Azure CNI should use Azure CNI Overlay #1778

Open
BenjaminEngeset opened this issue Oct 14, 2022 · 6 comments
Open

AKS clusters using Azure CNI should use Azure CNI Overlay #1778

BenjaminEngeset opened this issue Oct 14, 2022 · 6 comments
Assignees
Labels
pillar: performance-efficiency Aligned to the Performance Efficiency pillar. rule: azure-kubernetes-service Rules for Azure Kubernetes Service

Comments

@BenjaminEngeset
Copy link
Contributor

Rule request

Suggested rule change

AKS clusters using Azure CNI should use Azure CNI Overlay networking which currently is in preview. Azure CNI Overlay currently has some limitations that must be taken in consideration.

With Azure CNI Overlay, the cluster nodes are deployed into an Azure Virtual Network subnet, whereas pods are assigned IP addresses from a private CIDR logically different from the VNet hosting the nodes. Pod and node traffic within the cluster use an overlay network, and Network Address Translation (via the node's IP address) is used to reach resources outside the cluster. This solution saves a significant amount of VNet IP addresses and enables you to seamlessly scale your cluster to very large sizes. An added advantage is that the private CIDR can be reused in different AKS clusters, truly extending the IP space available for containerized applications in AKS.

Applies to the following

The rule applies to the following:

  • Resource type: [Microsoft.ContainerService/managedClusters]

Additional context

Azure CNI Overlay preview
Azure CNI Overlay
Template reference

@BernieWhite
Copy link
Collaborator

BernieWhite commented Oct 16, 2022

@bengeset96 Nice, we just need to understand how this aligns to the Well-Architected Framework? What pillar do you feel this falls into?

@ms-sambell What are your thoughts?

@BenjaminEngeset
Copy link
Contributor Author

BenjaminEngeset commented Oct 16, 2022

@BernieWhite

Performance efficiency pillar. I think many of the topics supports overlay, particularly Consider scalability and Plan for capacity.

Disadvantages with Azure CNI Overlay so far as I know are following:

  • Does not work well with virtual nodes.
  • When you have resources outside the cluster that needs to reach pods directly.
  • Application Gateway as an ingress controller is not supported.
  • Windows not supported.

Might be "sketchy" to implement this rule, but I also feel it could add some value for those that want to run explicitly with Preview baseline.

Could also be interesting to inform customers using Kubenet with a Warning or Information level about Azure CNI Overlay as it offers some benefits (also slightly disadvantages).

Would be great to get feedback from @ms-sambell as well.

@BernieWhite BernieWhite added rule: azure-kubernetes-service Rules for Azure Kubernetes Service pillar: performance-efficiency Aligned to the Performance Efficiency pillar. labels Oct 17, 2022
@BenjaminEngeset
Copy link
Contributor Author

BenjaminEngeset commented Oct 25, 2022

@ms-sambell

Any thoughts that you would like to share?

@ms-sambell
Copy link
Contributor

ms-sambell commented Oct 26, 2022

Hey @bengeset96 - My notifications are muted so I missed this (will fix it).

So the new CNI overlay network is great but there are some limitations right now. So I don't think we can create a generic rule to recommend all customers use it. I believe one of the limitations is the AppGateway add-on breaks.

There's a good story around writing a recommendation for customers using kubenet to review it though, so maybe that's an awareness rule? or a rule that assesses if the app-gateway add-on isn't enabled to recommend it.

@BenjaminEngeset
Copy link
Contributor Author

Yes, awareness would be fine for this. Agreed upon this, I'll try to create something and we'll see if it fits.

@BenjaminEngeset
Copy link
Contributor Author

Hey @ms-sambell

I've started on looking on this and I can see that there are two ways to deploy AGIC for an AKS cluster. With the trough AKS approach as an add-on it seems that I can just look out for properties.addonProfiles.ingressApplicationGateway.enabled -eq $true, but for the Helm option I'm really struggling to find out what to look for. Any idea?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pillar: performance-efficiency Aligned to the Performance Efficiency pillar. rule: azure-kubernetes-service Rules for Azure Kubernetes Service
Projects
None yet
Development

No branches or pull requests

3 participants