How to reduce AKS cluster closts? Serverless & Pricing questions for Azure Kubernetes Back Plane

Siegfried Heintze 1,906 Reputation points
2021-11-16T17:35:25.13+00:00

I though I heard Scott Hanselman say (during the recent .NET Conf) that Azure Container Services is like AKS except you don't pay for the back plane...
But last night a MVP on Microsoft Reactor said the AKS back plane was free. I'm confused (again!)

I see on the Azure Pricing Calculator that "There is no charge for Cluster Management". What does this mean?

Does that mean the computes I spend on the kubernetes rolling update feature are free? (That sounds like cluster management to me).

Does it mean the backplane is free?

Please recommend some ways to reduce the cost of a prototype or alpha testing AKS cluster (until I can get some funding)...

Can I make the AKS back plane serverless? How do I do this?

Is there any problem with making Ingres serverless (aside from the the fact it would make it slow)?

What do you think about mitigating the slowness of a serverless Ingress by putting my Angular Front end in a Azure Static page where the user could authenticate with AAD and then hit the REST server inside my AKS cluster via ingress?

Thanks

Siegfried

Azure Kubernetes Service (AKS)
Azure Kubernetes Service (AKS)
An Azure service that provides serverless Kubernetes, an integrated continuous integration and continuous delivery experience, and enterprise-grade security and governance.
2,259 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. SRIJIT-BOSE-MSFT 4,336 Reputation points Microsoft Employee
    2021-11-17T11:01:16.673+00:00

    @Siegfried Heintze , thank you for your question.

    I believe that by back plane you refer to the non control-plane infrastructural resources that are created on your subscription when you deploy an AKS cluster, sometimes referred to as the data plane. I will be sharing my answer based on this assumption. Please do point out if this wasn't what you had in mind.

    I believe that you really meant Azure Container Apps and not Azure Container Service. Azure Container Service was the predecessor of Azure Kubernetes Service (AKS) which in fact is still provided by the Azure Resource Provider Microsoft.ContainerService [Reference]. Azure Container Apps enables you to run microservices and containerized applications on a serverless platform.

    Azure Container Apps is a fully managed serverless container service for building and deploying modern apps at scale. You can Deploy containerised apps without managing complex infrastructure. Write code using your preferred programming language or framework and build microservices with full support for Distributed Application Runtime (Dapr). Scale dynamically based on HTTP traffic or events powered by Kubernetes Event-Driven Autoscaling (KEDA).

    Hence with Azure Container Apps no infrastructural resources will be deployed on your subscription that you have to manage or pay for.

    Unlike Azure Kubernetes Service where you pay for the (non-control plane) virtual machines and associated storage and networking resources consumed by the AKS cluster [Reference], Azure Container Apps is billed based on per-second resource consumption and requests for your workloads [Reference].

    I see on the Azure Pricing Calculator that "There is no charge for Cluster Management". What does this mean?
    Does that mean the computes I spend on the kubernetes rolling update feature are free? (That sounds like cluster management to me).

    A good definition of cluster management practices can be obtained here:

    ... creating a new cluster, upgrading your cluster's master and worker nodes, performing node maintenance (e.g. kernel upgrades), and upgrading the Kubernetes API version of a running cluster.

    These operations are not charged for in AKS. However, if you are performing Kubernetes rolling updates to your workloads, these are changes that will be propagated on the AKS node pools backed by virtual machines/scale sets. These underlying infrastructure, as mentioned earlier are billed.

    Does it mean the backplane is free?

    In AKS you pay for the (non-control plane) virtual machines and associated storage and networking resources consumed by the AKS cluster [Reference]. Azure Container Apps is billed based on per-second resource consumption and requests of your workloads [Reference]. In Azure Container Apps, all infrastructural resources like compute, network, storage resources. are abstracted from the user.

    Please recommend some ways to reduce the cost of a prototype or alpha testing AKS cluster (until I can get some funding)...

    Please check out the Azure Kubernetes Service (AKS) and cost optimization documentation for recommended practices.

    Can I make the AKS back plane serverless? How do I do this?

    It is possible to partially run your workloads with a serverless approach on AKS. You can use AKS virtual nodes to run your applications on Azure Container Instances. The virtual nodes add-on for AKS, is based on the open source project Virtual Kubelet. However, there are known limitations to this which you should be aware of.

    However, this approach does not make the AKS data plane completely serverless. The AKS cluster must have at least one node pool of type VirtualMachineScaleSet or AvailabilitySet and a minimum of one node (backed by virtual machine/scale set instance) to run system critical workloads and the aci connector service. For more information please check here.

    Is there any problem with making Ingress serverless (aside from the the fact it would make it slow)?

    In general throttling might be the only significant concern. However, it ultimately depends on the ingress application and architecture.

    What do you think about mitigating the slowness of a serverless Ingress by putting my Angular Front end in a Azure Static page where the user could authenticate with AAD and then hit the REST server inside my AKS cluster via ingress?

    It seems like a reasonable solution.

    ----

    Additional information

    Please review these documents for further information that might come in handy while designing your solution:

    ----
    Hope this helps.

    Please "Accept as Answer" if it helped, so that it can help others in the community looking for help on similar topics.

    1 person found this answer helpful.
    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.