Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions src/frontend/src/content/docs/deployment/kubernetes/aks.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,34 @@ When you run `aspire deploy`, Aspire provisions the following Azure resources:

Aspire builds your container images, pushes them to ACR, generates Helm charts, and installs them to the AKS cluster.

## Cluster tier

AKS clusters provisioned by Aspire use the **Standard** control-plane tier by default, which provides an uptime SLA suitable for production workloads. The Standard tier adds a cluster-management charge on top of the underlying Azure resource costs; see [AKS pricing tiers](https://learn.microsoft.com/azure/aks/free-standard-pricing-tiers) for current details. The control-plane tier doesn't change node VM sizes, node counts, or provide an application availability guarantee.

<Aside type="caution">
Applying updated infrastructure to an existing Aspire-managed cluster changes its tier to Standard unless you explicitly override it. Upgrading the `Aspire.Hosting.Azure.Kubernetes` package alone doesn't change a deployed cluster — the tier change only takes effect the next time you provision.
</Aside>

To use the Free tier for development or testing, customize the generated infrastructure with `ConfigureInfrastructure`:

<Tabs syncKey='aspire-lang'>
<TabItem id='csharp' label='C#'>
```csharp title="AppHost.cs"
using Azure.Provisioning.ContainerService;

var aks = builder.AddAzureKubernetesEnvironment("aks")
.ConfigureInfrastructure(infrastructure =>
{
var cluster = infrastructure.GetProvisionableResources()
.OfType<ContainerServiceManagedCluster>()
.Single();

cluster.Sku.Tier = ManagedClusterSkuTier.Free;
});
```
</TabItem>
</Tabs>

## Configure node pools

### System node pool
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,34 @@ await builder.build().run();

When an AKS environment is present, all compute resources are automatically deployed to AKS — no additional opt-in is required.

## Cluster tier

AKS clusters use the **Standard** control-plane tier by default, providing an uptime SLA for production workloads. Standard includes a cluster-management charge in addition to the underlying Azure resource costs. See [AKS pricing tiers](https://learn.microsoft.com/azure/aks/free-standard-pricing-tiers) for current details. The control-plane tier doesn't change node VM sizes or provide an application availability guarantee.

<Aside type="caution">
Applying updated infrastructure to an existing Aspire-managed cluster changes its tier to Standard unless explicitly overridden. Upgrading the integration package alone doesn't change a deployed cluster.
</Aside>

To use the Free tier for development or testing, customize the infrastructure in a C# AppHost:

<Tabs syncKey='aspire-lang'>
<TabItem id='csharp' label='C#'>
```csharp title="AppHost.cs"
using Azure.Provisioning.ContainerService;

var aks = builder.AddAzureKubernetesEnvironment("aks")
.ConfigureInfrastructure(infrastructure =>
{
var cluster = infrastructure.GetProvisionableResources()
.OfType<ContainerServiceManagedCluster>()
.Single();

cluster.Sku.Tier = ManagedClusterSkuTier.Free;
});
```
</TabItem>
</Tabs>

## Configure the system node pool

Customize the system node pool VM size and scaling using `WithSystemNodePool`:
Expand Down
Loading