Skip to content

Commit 3dd37b5

Browse files
committed
Updated links
2 parents 031cb48 + dc00473 commit 3dd37b5

File tree

389 files changed

+855
-459
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

389 files changed

+855
-459
lines changed

AKS-Arc/TOC.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@
6262
href: create-clusters-terraform.md
6363
- name: Azure Resource Manager template
6464
href: resource-manager-quickstart.md
65+
- name: REST API
66+
href: aks-create-clusters-api.md
6567
- name: Networking
6668
items:
6769
- name: Create logical networks
@@ -187,6 +189,8 @@
187189
href: network-validation-errors.md
188190
- name: Network validation error due to .local domain
189191
href: network-validation-error-local.md
192+
- name: BGP with FRR not working
193+
href: connectivity-troubleshoot.md
190194
- name: Reference
191195
items:
192196
- name: Azure CLI

AKS-Arc/aks-create-clusters-api.md

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
---
2+
title: Create Kubernetes clusters using REST APIs
3+
description: Learn how to create Kubernetes clusters in Azure Local using REST API for the Hybrid Container Service.
4+
ms.topic: how-to
5+
author: rcheeran
6+
ms.date: 06/19/2025
7+
ms.author: rcheeran
8+
ms.lastreviewed: 06/19/2025
9+
ms.reviewer: rjaini
10+
---
11+
12+
# Create Kubernetes clusters using the REST API
13+
14+
[!INCLUDE [hci-applies-to-23h2](includes/hci-applies-to-23h2.md)]
15+
16+
This article describes how to create Kubernetes clusters on Azure Local using the REST API. The Azure resource type for [AKS Arc provisioned clusters](/azure/templates/microsoft.hybridcontainerservice/provisionedclusterinstances?pivots=deployment-language-arm-template) is **"Microsoft.HybridContainerService/provisionedClusterInstances"**. This resource is an extension of the [connected clusters](/azure/templates/microsoft.kubernetes/connectedclusters?pivots=deployment-language-arm-template) resource type, **"Microsoft.Kubernetes/connectedClusters"**. Due to this dependency, you must first create a connected cluster resource before creating an AKS Arc resource.
17+
18+
## Before you begin
19+
20+
Before you begin, make sure you have the following details from your on-premises infrastructure administrator:
21+
22+
- **Azure subscription ID**: The Azure subscription ID that Azure Local uses for deployment and registration.
23+
- **Custom Location ID**: The Azure Resource Manager ID of the custom location. The custom location is configured during the Azure Local cluster deployment. Your infrastructure admin should give you the Resource Manager ID of the custom location. This parameter is required in order to create Kubernetes clusters. If the infrastructure admin provides a custom location name and resource group name, you can also get the Resource Manager ID using the following command:
24+
25+
```azurecli
26+
az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv
27+
```
28+
29+
- **Network ID**: The Azure Resource Manager ID of the Azure Local logical network you created [following these steps](aks-networks.md). Your admin should give you the ID of the logical network. This parameter is required in order to create Kubernetes clusters. If you know the resource group in which the logical network was created, you can also get the Azure Resource Manager ID using the following command:
30+
31+
```azurecli
32+
az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv
33+
```
34+
35+
- **Create an SSH key pair**: Create an SSH key pair in Azure and store the private key file for troubleshooting and log collection purposes. For detailed instructions, see [Create and store SSH keys with the Azure CLI](/azure/virtual-machines/ssh-keys-azure-cli), or with the [Azure portal](/azure/virtual-machines/ssh-keys-portal).
36+
- To connect to the Kubernetes cluster from anywhere, create a Microsoft Entra group and add members to it. All the members in the Microsoft Entra group have cluster administrator access to the cluster. Make sure to add yourself as a member to the Microsoft Entra group. If you don't add yourself, you can't access the Kubernetes cluster using **kubectl**. For more information about creating Microsoft Entra groups and adding users, see [Manage Microsoft Entra groups and group membership](/entra/fundamentals/how-to-manage-groups).
37+
38+
## Step 1: Create a connected cluster resource
39+
40+
See the API definition for [connected clusters](/rest/api/hybridkubernetes/connected-cluster/create) and create a **PUT** request with the `kind` property set to `ProvisionedCluster`. The following example is a sample **PUT** request to create a connected cluster resource using the REST API:
41+
42+
```http
43+
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kubernetes/connectedClusters/{connectedClusterName}?api-version=2024-01-01
44+
Content-Type: application/json
45+
Authorization: Bearer <access_token>
46+
47+
{
48+
"location": "<region>",
49+
"identity": {
50+
"type": "SystemAssigned"
51+
},
52+
"kind": "ProvisionedCluster",
53+
"properties": {
54+
"agentPublicKeyCertificate": "",
55+
"azureHybridBenefit": "NotApplicable",
56+
"distribution": "AKS",
57+
"distributionVersion": "1.0",
58+
"aadProfile": {
59+
"enableAzureRBAC": true,
60+
"adminGroupObjectIDs": [
61+
"<entra-group-id>"
62+
],
63+
"tenantID": "<tenant-id>"
64+
},
65+
}
66+
}
67+
```
68+
69+
Replace all placeholder values with your actual details. For more information, see the [connected clusters API documentation](/rest/api/hybridkubernetes/connected-cluster/create).
70+
71+
## Step 2: Create a provisioned cluster resource
72+
73+
See the API definition for [provisioned clusters](/rest/api/hybridcontainer/provisioned-cluster-instances/create-or-update). In this **PUT** call, pass the Azure Resource Manager identifier created in the previous step as the URI parameter. The following code is an example HTTP **PUT** request to create a provisioned cluster resource with only the required parameters:
74+
75+
```http
76+
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridContainerService/provisionedClusterInstances/{clusterName}?api-version=2024-01-01-preview
77+
Content-Type: application/json
78+
Authorization: Bearer <access_token>
79+
80+
{
81+
"extendedLocation": {
82+
"type": "CustomLocation",
83+
"name": "<ARM ID of Custom Location>"
84+
},
85+
"properties": {
86+
"controlPlane": {
87+
"count": 1,
88+
"vmSize": "Standard_A4_v2"
89+
},
90+
"agentPoolProfiles": [
91+
{
92+
"name": "default-nodepool-1",
93+
"count": 1,
94+
"vmSize": "Standard_A4_v2",
95+
"osType": "Linux",
96+
}
97+
],
98+
"linuxProfile": {
99+
"ssh": {
100+
"publicKeys": [
101+
{
102+
"keyData": "<SSH public key>"
103+
}
104+
]
105+
}
106+
},
107+
"cloudProviderProfile": {
108+
"infraNetworkProfile": {
109+
"vnetSubnetIds": [
110+
"<ARM ID of logical network>"
111+
]
112+
}
113+
},
114+
}
115+
}
116+
117+
```
118+
119+
Replace the placeholder values with your actual details. For more information, see the [provisioned clusters API documentation](/rest/api/hybridcontainer/provisioned-cluster-instances/create-or-update).
120+
121+
## Connect to the Kubernetes cluster
122+
123+
Now you can connect to your Kubernetes cluster by running the `az connectedk8s proxy` command from your development machine. Make sure you sign in to Azure before running this command. If you have multiple Azure subscriptions, select the appropriate subscription ID using the [az account set](/cli/azure/account#az-account-set) command.
124+
125+
This command downloads the **kubeconfig** of your Kubernetes cluster to your development machine and opens a proxy connection channel to your on-premises Kubernetes cluster. The channel is open for as long as the command runs. Let this command run for as long as you want to access your cluster. If it times out, close the CLI window, open a fresh one, and then run the command again.
126+
127+
You must have Contributor permissions on the resource group that hosts the Kubernetes cluster in order to successfully run the following command:
128+
129+
```azurecli
130+
az connectedk8s proxy --name $aksclustername --resource-group $resource_group --file .\aks-arc-kube-config
131+
```
132+
133+
Expected output:
134+
135+
```output
136+
Proxy is listening on port 47011
137+
Merged "aks-workload" as current context in .\\aks-arc-kube-config
138+
Start sending kubectl requests on 'aks-workload' context using
139+
kubeconfig at .\\aks-arc-kube-config
140+
Press Ctrl+C to close proxy.
141+
```
142+
143+
Keep this session running and connect to your Kubernetes cluster from a different terminal or command prompt. Verify that you can connect to your Kubernetes cluster by running the `kubectl get` command. This command returns a list of the cluster nodes:
144+
145+
```azurecli
146+
kubectl get node -A --kubeconfig .\aks-arc-kube-config
147+
```
148+
149+
The following example output shows the node you created in the previous steps. Make sure the node status is **Ready**:
150+
151+
```output
152+
NAME STATUS ROLES AGE VERSION
153+
moc-l0ttdmaioew Ready control-plane,master 34m v1.24.11
154+
moc-ls38tngowsl Ready <none> 32m v1.24.11
155+
```
156+
157+
## Next steps
158+
159+
[AKS Arc overview](overview.md)

AKS-Arc/aks-edge-concept-clusters-nodes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: AKS Edge Essentials clusters and nodes
33
description: Learn about clusters and nodes running on AKS Edge Essentials.
44
author: sethmanheim
55
ms.author: sethm
6-
ms.topic: conceptual
6+
ms.topic: concept-article
77
ms.date: 07/11/2024
88
ms.custom: template-concept
99
---

AKS-Arc/aks-edge-concept-networking.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: AKS Edge Essentials networking
33
description: Basic networking concepts for AKS Edge Essentials
44
author: sethmanheim
55
ms.author: sethm
6-
ms.topic: conceptual
6+
ms.topic: article
77
ms.date: 03/10/2025
88
ms.custom: template-concept
99
---

AKS-Arc/aks-edge-deployment-config-json.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: AKS Edge Essentials deployment configuration JSON parameters
33
description: Description of deployment configuration JSON parameters in AKS Edge Essentials.
44
author: sethmanheim
55
ms.author: sethm
6-
ms.topic: conceptual
6+
ms.topic: article
77
ms.date: 03/10/2025
88
ms.custom: template-concept
99
---

AKS-Arc/aks-edge-help-support.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Get support for AKS Edge Essentials
33
description: Learn about how to get support and open a support request for AKS Edge Essentials.
44
author: sethmanheim
5-
ms.topic: conceptual
5+
ms.topic: how-to
66
ms.date: 04/07/2025
77
ms.author: sethm
88

AKS-Arc/aks-edge-system-requirements.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: AKS Edge Essentials system requirements
33
description: Requirements and supported versions for AKS Edge Essentials.
44
author: sethmanheim
55
ms.author: sethm
6-
ms.topic: conceptual
6+
ms.topic: article
77
ms.date: 03/10/2025
88
ms.custom: template-concept
99
---

AKS-Arc/aks-edge-troubleshoot-overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Troubleshoot common issues in AKS Edge Essentials
33
description: Learn about common issues and workarounds in AKS Edge Essentials.
44
author: sethmanheim
55
ms.author: sethm
6-
ms.topic: conceptual
6+
ms.topic: troubleshooting-general
77
ms.date: 12/12/2024
88
ms.custom: template-concept
99
---

AKS-Arc/aks-hci-ip-address-planning.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: IP address planning for AKS enabled by Azure Arc
33
description: Learn about how to plan for IP addresses and reservation, to deploy AKS Arc in production.
4-
ms.topic: conceptual
4+
ms.topic: article
55
ms.date: 11/19/2024
66
author: sethmanheim
77
ms.author: sethm

AKS-Arc/aks-platforms-compare.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Azure Kubernetes Service (AKS) Cloud, Edge, and On-Premises Comparison
33
description: Learn about Azure Kubernetes Service (AKS) features, capabilities, and pricing across cloud, edge, and on-premises environments to choose the best deployment for your needs.
44
author: sethmanheim
55
ms.topic: concept-article
6-
ms.date: 06/12/2025
6+
ms.date: 06/16/2025
77
ms.author: sethm
88
ms.reviewer: rmody
99
---
@@ -23,7 +23,7 @@ This article describes how AKS extends features across multiple platforms and hi
2323
2424
## General comparison of AKS across platforms
2525

26-
| Platform | Azure (Cloud) | Azure Local (Edge/On-premises) | Edge Essentials (Edge/On-premises, Windows IoT client/server) | Windows Server (Edge/On-premises) |
26+
| Feature | Azure (Cloud) | Azure Local (Edge/On-premises) | Edge Essentials (Edge/On-premises, Windows IoT client/server) | Windows Server (Edge/On-premises) |
2727
| --- | --- | --- | --- | --- |
2828
| Supported infrastructure for Kubernetes cluster | Azure cloud | Azure Local, version 23H2 or later | - Windows 10/11 IoT Enterprise<br>- Windows 10/11 Enterprise<br>- Windows 10/11 Pro<br>- Windows Server 2019/2022 | - Windows Server 2019<br>- Windows Server 2022 |
2929
| CNCF conformant | Yes | Yes | Yes | Yes |
@@ -38,7 +38,7 @@ This article describes how AKS extends features across multiple platforms and hi
3838

3939
## Monitoring and diagnostic capabilities
4040

41-
| Feature | Azure Cloud | AKS on Azure Local | Edge Essentials (Windows IoT client/server) | Windows Server |
41+
| Feature | Azure (Cloud) | Azure Local (Edge/On-premises) | Edge Essentials (Edge/On-premises, Windows IoT client/server) | Windows Server (Edge/On-premises) |
4242
| --- | --- | --- | --- | --- |
4343
| Azure Monitor Container Insights | Yes | Yes, via Arc extensions | Yes, via Arc extensions | Yes, via Arc extensions |
4444
| Azure Monitor Managed Prometheus and control plane metrics scraping | Yes | Yes, via Arc extensions | Yes, via Arc extensions | Yes, via Arc extensions |
@@ -48,7 +48,7 @@ This article describes how AKS extends features across multiple platforms and hi
4848

4949
## Node pool capabilities
5050

51-
|  Feature | Azure Cloud | AKS on Azure Local | Edge Essentials (Windows IoT client/server) | Windows Server |
51+
| Feature | Azure (Cloud) | Azure Local (Edge/On-premises) | Edge Essentials (Edge/On-premises, Windows IoT client/server) | Windows Server (Edge/On-premises) |
5252
| --- | --- | --- | --- | --- |
5353
| Windows node pool support | - Yes<br>- Windows Server 2019 Datacenter<br>- Windows Server 2022 Datacenter | - Yes<br>- Windows Server 2019 Datacenter<br>- Windows Server 2022 Datacenter | - Yes<br>- Windows Server 2022 Datacenter (Core) | - Yes<br>- Windows Server 2019 Datacenter<br>- Windows Server 2022 Datacenter |
5454
| Linux OS offerings | - Ubuntu 18.04<br>- Azure Linux | [CBL-Mariner](https://github.com/microsoft/CBL-Mariner) | [CBL-Mariner](https://github.com/microsoft/CBL-Mariner) | [CBL-Mariner](https://github.com/microsoft/CBL-Mariner) |
@@ -67,7 +67,7 @@ This article describes how AKS extends features across multiple platforms and hi
6767

6868
## Networking capabilities
6969

70-
|  Feature | Azure Cloud | AKS on Azure Local | Edge Essentials (Windows IoT /Client/Server) | Windows Server |
70+
| Feature | Azure (Cloud) | Azure Local (Edge/On-premises) | Edge Essentials (Edge/On-premises, Windows IoT client/server) | Windows Server (Edge/On-premises) |
7171
| --- | --- | --- | --- | --- |
7272
| Network creation and management | By default, Azure creates a virtual network and subnet for you. You can also choose an existing virtual network in which to create your AKS clusters. | Setting up networking parameters is a required prerequisite to deploy AKS on Azure Local. Network must have connectivity and IP address availability for successful operation of the cluster. | You must provide the IP address range for node IPs and service IPs that are available and have the right connection. The network configuration needed for the cluster is handled by AKS. See [AKS Edge Essentials networking](aks-edge-concept-networking.md). | You must create the network in Windows Server before creating an AKS cluster. Network must have connectivity and IP address availability for successful operation of the cluster. |
7373
| Supported networking option | Bring your own Azure virtual network for AKS clusters. | Static IP networks with/without VLAN ID. | Static IP address or use reserved IPs when using DHCP. | - DHCP networks with/without VLAN ID.<br>- Static IP networks with/without VLAN ID. |
@@ -79,7 +79,7 @@ This article describes how AKS extends features across multiple platforms and hi
7979

8080
## Storage features
8181

82-
| Feature | Azure Cloud | AKS on Azure Local | Edge Essentials (Windows IoT /Client/Server) | Windows Server |
82+
| Feature | Azure (Cloud) | Azure Local (Edge/On-premises) | Edge Essentials (Edge/On-premises, Windows IoT client/server) | Windows Server (Edge/On-premises) |
8383
| --- | --- | --- | --- | --- |
8484
| Types of supported persistent volumes | - Read Write Once<br>- Read Write Many | - VHDX – Read Write Once<br>- SMB or NFS – Read Write Many<br>- ACSA - Read Write Many | - PVC using local storage<br>- ACSA | - VHDX – Read Write Once<br>- SMB or NFS - Read Write Many |
8585
| Container storage interface (CSI) support | Yes | Yes | Yes | Yes |
@@ -90,7 +90,7 @@ This article describes how AKS extends features across multiple platforms and hi
9090

9191
## Security and authentication options
9292

93-
| Feature | Azure Cloud | AKS on Azure Local | Edge Essentials (Windows IoT /Client/Server) | Windows Server |
93+
| Feature | Azure (Cloud) | Azure Local (Edge/On-premises) | Edge Essentials (Edge/On-premises, Windows IoT client/server) | Windows Server (Edge/On-premises) |
9494
| --- | --- | --- | --- | --- |
9595
| Access to Kubernetes cluster | Kubectl | Kubectl | Kubectl | Kubectl |
9696
| Kubernetes cluster authorization (RBAC) | - Kubernetes RBAC<br>- Azure RBAC | - Kubernetes RBAC<br>- Azure RBAC | Kubernetes RBAC | Kubernetes RBAC |
@@ -107,15 +107,15 @@ This article describes how AKS extends features across multiple platforms and hi
107107

108108
## Pricing and SLA details
109109

110-
| Feature | Azure Cloud | AKS on Azure Local | Edge Essentials (Windows IoT client/server) | Windows Server |
110+
| Feature | Azure (Cloud) | Azure Local (Edge/On-premises) | Edge Essentials (Edge/On-premises, Windows IoT client/server) | Windows Server (Edge/On-premises) |
111111
| --- | --- | --- | --- | --- |
112112
| Pricing | - Unlimited free clusters, pay for on-demand compute of worker node VMs.<br>- Paid tier available with uptime SLA, support for 5k nodes. | Included in Azure Local at no extra cost. | Cost is per device per month. | Pricing is based on the number of workload cluster vCPUs. Control plane nodes and load balancer VMs are free. |
113113
| Azure Hybrid Benefit support | Not applicable | Not applicable - AKS already included at no extra cost. | No | Yes |
114114
| SLA | Paid uptime SLA clusters for production with fixed cost on the API + worker node compute, storage and networking costs. | No SLA offered as the Kubernetes cluster is running on premises. | No SLA offered as the Kubernetes cluster is running on premises. | No SLA offered as the Kubernetes cluster is running on premises. |
115115

116116
### AI/ML capabilities offered in each platform
117117

118-
| Feature | Azure Cloud | AKS on Azure Local | Edge Essentials (Windows IoT /Client/Server) | Windows Server |
118+
| Feature | Azure (Cloud) | Azure Local (Edge/On-premises) | Edge Essentials (Edge/On-premises, Windows IoT client/server) | Windows Server (Edge/On-premises) |
119119
| --- | --- | --- | --- | --- |
120120
| GPU support | Yes | Yes | Yes | Yes |
121121
| KAITO (Kubernetes AI toolchain operator) | Yes | Yes, via Arc extensions | No | No |

0 commit comments

Comments
 (0)