|
| 1 | +--- |
| 2 | +title: Manage AKS Arc for Azure Local with disconnected operations (preview) |
| 3 | +description: Manage Azure Kubernetes Service (AKS) Arc for Azure Local with disconnected operations (preview). |
| 4 | +ms.topic: how-to |
| 5 | +author: ronmiab |
| 6 | +ms.author: robess |
| 7 | +ms.date: 08/06/2025 |
| 8 | +ai-usage: ai-assisted |
| 9 | +--- |
| 10 | + |
| 11 | +# Manage AKS Arc for Azure Local with disconnected operations (preview) |
| 12 | + |
| 13 | +::: moniker range=">=azloc-2506" |
| 14 | + |
| 15 | +This article gives you an overview of Azure Kubernetes Service (AKS) Arc for disconnected operations on Azure Local (preview). It closely mirrors AKS capabilities on Azure Local and includes many references to Azure Local AKS articles. You'll learn how to deploy and manage AKS clusters in disconnected environments, understand key differences, and review limitations to ensure successful implementation. |
| 16 | + |
| 17 | +[!INCLUDE [IMPORTANT](../includes/disconnected-operations-preview.md)] |
| 18 | + |
| 19 | +## Overview |
| 20 | + |
| 21 | +AKS Arc for disconnected operations allows you to manage Kubernetes clusters and deploy applications across various environments using disconnected operations. This capability ensures you can maintain consistent management and operational experience of AKS on Azure Local using a local control plane. |
| 22 | + |
| 23 | +## Prerequisites |
| 24 | + |
| 25 | +- [Azure Command-Line Interface (CLI)](disconnected-operations-cli.md) installed on your local machine. |
| 26 | +- An Azure subscription associated with disconnected operations. |
| 27 | +- Understanding of AKS and Azure Arc concepts. |
| 28 | +- Complete [Identity for Azure Local with disconnected operations (preview)](disconnected-operations-identity.md). |
| 29 | +- Complete [Networking for Azure Local with disconnected operations (preview)](disconnected-operations-network.md). |
| 30 | +- Complete [Public key infrastructure (PKI) for Azure Local with disconnected operations (preview)](disconnected-operations-pki.md). |
| 31 | +- Complete [Hardware for Azure Local with disconnected operations (preview)](disconnected-operations-overview.md#preview-participation-criteria). |
| 32 | +- Complete [Set up for Azure Local with disconnected operations (preview)](disconnected-operations-set-up.md). |
| 33 | + |
| 34 | +## Limitations |
| 35 | + |
| 36 | +Limitations for disconnected operations with AKS Arc include: |
| 37 | + |
| 38 | +- Support for disconnected operations begins with the 2408 release. |
| 39 | +- Supported Kubernetes versions: 1.27.7, 1.27.9, 1.28.5, 1.28.9, 1.29.2, and 1.29.4. |
| 40 | +- Microsoft Entra ID (formerly Azure Active Directory) isn't supported for disconnected operations. |
| 41 | +- GPUs aren't supported. |
| 42 | +- Arc Gateway isn't supported for configuring outbound URLs. |
| 43 | +- Create logical networks using the CLI only. The portal isn't supported. |
| 44 | +- Create SSH keys using the CLI only. The portal isn't supported. |
| 45 | + |
| 46 | +## Create an AKS cluster |
| 47 | + |
| 48 | +To create an AKS cluster that supports disconnected operations, see [Create an AKS cluster through CLI](/azure/aks/aksarc/aks-create-clusters-cli#create-a-kubernetes-cluster) and [Create a Kubernetes cluster using the Azure portal](/azure/aks/aksarc/aks-create-clusters-portal#create-a-kubernetes-cluster). |
| 49 | + |
| 50 | +Use the following specifications for disconnected operations: |
| 51 | + |
| 52 | +### Install the Azure CLI extension |
| 53 | + |
| 54 | +Before you install the Azure CLI extension, make sure you have the following: |
| 55 | + |
| 56 | +- Azure CLI version 2.60.0 |
| 57 | +- Extension version: |
| 58 | + - customlocation: 0.1.3 |
| 59 | + - aksarc: 1.2.23 |
| 60 | + - stack-hci-vm: 1.3.0 |
| 61 | + |
| 62 | +Install the CLI extension using the following commands: |
| 63 | + |
| 64 | +```azurecli |
| 65 | +az extension add -n aksarc --version 1.2.23 |
| 66 | +az extension add -n stack-hci-vm --version 1.3.0 |
| 67 | +az config set core.instance_discovery=false --only-show-errors |
| 68 | + ``` |
| 69 | + |
| 70 | +For more information, see [Install the Azure CLI extension](/azure/aks/aksarc/aks-create-clusters-cli). |
| 71 | + |
| 72 | +### Sign in with Azure CLI |
| 73 | + |
| 74 | +You can use the `az login` command to sign in to your Azure account. For more information, see [Sign in with credentials on the command line](/cli/azure/authenticate-azure-cli-interactively#sign-in-with-credentials-on-the-command-line). |
| 75 | + |
| 76 | +### Create logical networks |
| 77 | + |
| 78 | +Use the `az stack-hci-vm network lnet create` cmdlet to create a logical network on the VM switch in Static IP configuration. For information on limitations, see [Limitations](#limitations). |
| 79 | + |
| 80 | +```azurecli |
| 81 | +az stack-hci-vm network lnet create --subscription $subscription --resource-group $resource_group --custom-location $customLocationID --name $lnetName --vm-switch-name $vmSwitchName --ip-allocation-method "Static" --address-prefixes $addressPrefixes --gateway $gateway --dns-servers $dnsServers --ip-pool-start $ipPoolStart --ip-pool-end $ipPoolEnd |
| 82 | +``` |
| 83 | + |
| 84 | +For more information, see [Create logical networks](/azure/aks/aksarc/aks-networks?tabs=azurecli). |
| 85 | + |
| 86 | +> [!NOTE] |
| 87 | +> Creating logical networks can be created through CLI only ; the operations through the portal isn't supported. For more information, see [Azure Local VM limitations](../manage/disconnected-operations-arc-vm.md#limitations). |
| 88 | +
|
| 89 | +### Create the cluster |
| 90 | + |
| 91 | +To create the AKS cluster, we recommend you use CLI. For more information, see [Create an AKS cluster through CLI](/azure/aks/aksarc/aks-create-clusters-cli#create-a-kubernetes-cluster). |
| 92 | + |
| 93 | +To use the Azure portal, see [Create a Kubernetes cluster using the Azure portal](/azure/aks/aksarc/aks-create-clusters-portal#create-a-kubernetes-cluster). To create the SSH keys, see [Generate and store SSH keys with the Azure CLI](/azure/virtual-machines/ssh-keys-azure-cli). |
| 94 | + |
| 95 | +Use the `az aksarc create` cmdlet to create a Kubernetes cluster. |
| 96 | + |
| 97 | +```azurecli |
| 98 | +az aksarc create -n $aksclustername -g $resource_group --custom-location $customlocationID --vnet-ids $logicnetId --generate-ssh-keys |
| 99 | +``` |
| 100 | + |
| 101 | +> [!NOTE] |
| 102 | +> You should get JSON-formatted information about the cluster once the creation is complete. |
| 103 | +
|
| 104 | +Here's an example script to create logical networks and an AKS Arc cluster. |
| 105 | + |
| 106 | +```azurecli |
| 107 | +# Check and update variables according to your environment. |
| 108 | +
|
| 109 | +$subscriptionId = “ ” # Update the Starter Subscription Id of your environment |
| 110 | +$location = "autonomous" |
| 111 | +$resourceGroupName = " " # Update the resource group name |
| 112 | +$customLocationResourceName = " " # This name would be referenced in resource group |
| 113 | +$customLocationResourceId = "/subscriptions/$SubscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.ExtendedLocation/customLocations/$customLocationResourceName" |
| 114 | + |
| 115 | +# IP config detail. |
| 116 | + |
| 117 | +$aszhost = <Host Machine> # update with host machine name |
| 118 | +# YAML file would be information on the following: |
| 119 | +$vmSwitchName= # The value of vswitchname |
| 120 | +$addressPrefixes= # The value of ipaddressprefix |
| 121 | +$gateway= # The value of gateway |
| 122 | +$dnsservers= # The value of dnsservers |
| 123 | +$ipPoolStart= # Set this according to $addressPrefixes, don’t overlap k8snodeippoolstart and k8snodeippoolend |
| 124 | +$ipPoolEnd= # Set this according to $addressPrefixes, don't overlap k8snodeippoolstart and k8snodeippoolend |
| 125 | + |
| 126 | +# Create Logical Network for AKS cluster. |
| 127 | +
|
| 128 | +$lNetName = "aksarc-lnet-static" |
| 129 | +az stack-hci-vm network lnet create ` |
| 130 | +--resource-group $resourceGroupName ` |
| 131 | +--custom-location $customLocationResourceId ` |
| 132 | +--location $location ` |
| 133 | +--name $lNetName ` |
| 134 | +--ip-allocation-method "Static" ` |
| 135 | +--address-prefixes $addressPrefixes ` |
| 136 | +--ip-pool-start $ipPoolStart ` |
| 137 | +--ip-pool-end $ipPoolEnd ` |
| 138 | +--gateway $gateway ` |
| 139 | +--dns-servers $dnsservers ` |
| 140 | +--vm-switch-name $vmSwitchName |
| 141 | + |
| 142 | +# Create AKS cluster using az cli. |
| 143 | + |
| 144 | +$logicNetId = (az stack-hci-vm network lnet show --resource-group $resourceGroupName --name $lNetName --query id -o tsv) |
| 145 | +$aksClusterName = " " # please enter the clustername |
| 146 | +$controlPlaneIp = # Set this according to $addressPrefixes, please don't overlap $ipPoolStart and $ipPoolEnd |
| 147 | +az aksarc create -n $aksClusterName ` |
| 148 | +--resource-group $resourceGroupName ` |
| 149 | +--custom-location $customLocationResourceId ` |
| 150 | +--node-count 2 ` |
| 151 | +--vnet-ids $logicNetId ` |
| 152 | +--generate-ssh-keys ` |
| 153 | +--control-plane-ip $controlPlaneIp ` |
| 154 | +--only-show-errors |
| 155 | +# --node-vm-size 'Standard_D8s_v3' ` |
| 156 | +``` |
| 157 | + |
| 158 | +### Retrieve `kubeconfig` |
| 159 | + |
| 160 | +To retrieve the `kubeconfig` file for the AKS cluster, use the `az aksarc get-credentials` cmdlet. Make sure you use your admin credentials. |
| 161 | + |
| 162 | +Here's an example: |
| 163 | + |
| 164 | +```azurecli |
| 165 | +az aksarc get-credentials --resource-group myResourceGroup --name myAKSCluster --admin |
| 166 | +``` |
| 167 | + |
| 168 | +To retrieve the certificate-based admin kubeconfig for an AKS cluster enabled by Azure Arc. |
| 169 | + |
| 170 | +Here's an example: |
| 171 | + |
| 172 | +```azurecli |
| 173 | +az aksarc get-credentials --name "sample-aksarccluster" --resource-group "sample-rg" --file C:\AksArc\config-admin --adminkubectl --kubeconfig C:\AksArc\config-admin get ns |
| 174 | +``` |
| 175 | + |
| 176 | +For more information, see [Retrieve kubeconfig](/azure/aks/aksarc/retrieve-admin-kubeconfig#retrieve-the-certificate-based-admin-kubeconfig-using-az-cli). |
| 177 | + |
| 178 | +### Delete an AKS cluster |
| 179 | + |
| 180 | +You can use the `az aksarc delete` cmdlet to delete the AKS cluster you created. |
| 181 | + |
| 182 | +```azurecli |
| 183 | +az aksarc delete --name $aksclustername --resource-group $resource_group |
| 184 | +``` |
| 185 | + |
| 186 | +## Related content |
| 187 | + |
| 188 | +- [AKS on Azure Local architecture](/azure/aks/aksarc/cluster-architecture). |
| 189 | + |
| 190 | +- [AKS enabled by Azure Arc network requirements](/azure/aks/aksarc/aks-hci-network-system-requirements). |
| 191 | + |
| 192 | +- [Manage node pools for an AKS cluster](/azure/aks/aksarc/manage-node-pools). |
| 193 | + |
| 194 | +- [Use cluster autoscaler on an AKS arc cluster](/azure/aks/aksarc/auto-scale-aks-arc). |
| 195 | + |
| 196 | +::: moniker-end |
| 197 | + |
| 198 | +::: moniker range="<=azloc-2505" |
| 199 | + |
| 200 | +This feature is available only in Azure Local 2506. |
| 201 | + |
| 202 | +::: moniker-end |
0 commit comments