Skip to content

Commit 7b4d4fa

Browse files
committed
update workaround for Arc registration error
2 parents 88542e9 + a935723 commit 7b4d4fa

File tree

452 files changed

+2674
-2039
lines changed

Some content is hidden

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

452 files changed

+2674
-2039
lines changed

.acrolinx-config.edn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
{:allowed-branchname-matches ["main" "release-.*"]
2-
:allowed-filename-matches ["azure-stack" "AKS-Hybrid" "azure-managed-lustre" "azure-local"]}
2+
:allowed-filename-matches ["azure-stack" "azure-managed-lustre" "azure-local" "(?i)(AKS-Arc)(?!/reference)"]}

.openpublishing.redirection.json

Lines changed: 56 additions & 56 deletions
Large diffs are not rendered by default.

AKS-Arc/TOC.yml

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
items:
66
- name: What is AKS enabled by Azure Arc?
77
href: aks-overview.md
8+
- name: Compare AKS across platforms
9+
href: aks-platforms-compare.md
810
- name: Supported Kubernetes versions
911
href: supported-kubernetes-versions.md
1012
- name: Data collection
@@ -45,7 +47,7 @@
4547
- name: Quickstarts
4648
items:
4749
- name: Jumpstart HCIBox (external link)
48-
href: https://arcjumpstart.com/azure_jumpstart_hcibox/getting_started
50+
href: https://jumpstart.azure.com/azure_arc_jumpstart
4951
- name: How-to
5052
items:
5153
- name: Create Kubernetes clusters
@@ -60,6 +62,8 @@
6062
href: create-clusters-terraform.md
6163
- name: Azure Resource Manager template
6264
href: resource-manager-quickstart.md
65+
- name: REST API
66+
href: aks-create-clusters-api.md
6367
- name: Networking
6468
items:
6569
- name: Create logical networks
@@ -125,7 +129,7 @@
125129
href: cluster-labels.md
126130
- name: Taints
127131
href: aks-arc-use-node-taints.md
128-
- name: Use auto-scaler
132+
- name: Use autoscaler
129133
href: auto-scale-aks-arc.md
130134
- name: Upgrade Kubernetes clusters
131135
href: cluster-upgrade.md
@@ -155,12 +159,14 @@
155159
items:
156160
- name: Troubleshoot and known issues
157161
href: aks-troubleshoot.md
162+
- name: Get support
163+
href: help-support.md
164+
- name: Use diagnostic checker
165+
href: aks-arc-diagnostic-checker.md
158166
- name: Control plane configuration validation errors
159167
href: control-plane-validation-errors.md
160168
- name: K8sVersionValidation error
161169
href: cluster-k8s-version.md
162-
- name: Use diagnostic checker
163-
href: aks-arc-diagnostic-checker.md
164170
- name: KubeAPIServer unreachable error
165171
href: kube-api-server-unreachable.md
166172
- name: Can't create/scale AKS cluster due to image issues
@@ -185,6 +191,12 @@
185191
href: network-validation-errors.md
186192
- name: Network validation error due to .local domain
187193
href: network-validation-error-local.md
194+
- name: Entra authentication prompts when running kubectl
195+
href: entra-prompts.md
196+
- name: BGP with FRR not working
197+
href: connectivity-troubleshoot.md
198+
- name: Cluster status stuck during upgrade
199+
href: cluster-upgrade-status.md
188200
- name: Reference
189201
items:
190202
- name: Azure CLI
@@ -597,8 +609,6 @@
597609
href: known-issues.yml
598610
- name: Support policies
599611
href: support-policies.md
600-
- name: Get support
601-
href: help-support.md
602612
- name: File bugs
603613
href: https://aka.ms/AKS-hybrid-issues
604614
- name: Release notes

AKS-Arc/aks-arc-diagnostic-checker.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn how to diagnose common causes for failures in AKS Arc.
44
ms.topic: troubleshooting
55
author: sethmanheim
66
ms.author: sethm
7-
ms.date: 01/30/2025
7+
ms.date: 06/27/2025
88
ms.reviewer: abha
99

1010
#Customer intent: As an AKS user, I want to use the diagnostic checker to run diagnostic checks on my AKS cluster to find out common causes for AKS cluster create failure.
@@ -13,14 +13,14 @@ ms.reviewer: abha
1313

1414
# Use the diagnostic checker to diagnose and fix environment issues for AKS cluster creation failure (preview)
1515

16-
It can be difficult to identify environment-related issues, such as networking configurations, that can result in an AKS cluster creation failure. The diagnostic checker is a PowerShell-based tool that can help you identify AKS cluster creation failures due to potential issues in the environment.
16+
It can be difficult to identify environment-related issues, such as networking configuration, that can result in an AKS cluster creation failure. The diagnostic checker is a PowerShell tool that can help you identify AKS cluster creation failures due to potential issues in the environment.
1717

1818
> [!NOTE]
19-
> You can only use the diagnostic checker tool if an AKS cluster was created, but is in a failed state. You can't use the tool if you don't see an AKS cluster on the Azure portal. If the AKS cluster creation fails before an Azure Resource Manager resource is created, [file a support request](aks-troubleshoot.md#open-a-support-request).
19+
> You can only use the diagnostic checker tool if an AKS cluster was created, but is in a failed state. You can't use the tool if you don't see an AKS cluster on the Azure portal. If the AKS cluster creation fails before an Azure Resource Manager resource is created, [file a support request](help-support.md).
2020
2121
## Before you begin
2222

23-
Before you begin, make sure you have the following prerequisites. If you don't meet the requirements for running the diagnostic checker tool, [file a support request](aks-troubleshoot.md#open-a-support-request):
23+
Before you begin, make sure you have the following prerequisites. If you don't meet the requirements for running the diagnostic checker tool, [file a support request](help-support.md):
2424

2525
- Direct access to the Azure Local cluster where you created the AKS cluster. This access can be through remote desktop (RDP), or you can also sign in to one of the Azure Local physical nodes.
2626
- Review the [networking concepts for creating an AKS cluster](aks-hci-network-system-requirements.md) and the [AKS cluster architecture](cluster-architecture.md).
@@ -43,17 +43,17 @@ VMName IPAddresses
4343
<cluster-name>-XXXXXX-control-plane-XXXXXX {172.16.0.10, 172.16.0.4, fe80::ec:d3ff:fea0:1}
4444
```
4545

46-
If you don't see a control plane VM as shown in the previous output, [file a support request](aks-troubleshoot.md#open-a-support-request).
46+
If you don't see a control plane VM as shown in the previous output, [file a support request](help-support.md).
4747

4848
If you see a control plane VM, and it has:
4949

50-
- 0 IPv4 addresses: file a [support request](aks-troubleshoot.md#open-a-support-request).
50+
- 0 IPv4 addresses: file a [support request](help-support.md).
5151
- 1 IP address: use the IPv4 address as the input for `vmIP` parameter.
5252
- 2 IP addresses: use any one of the IPv4 address as an input for `vmIP` parameter in the diagnostic checker.
5353

5454
## Run the diagnostic checker script
5555

56-
Copy the following PowerShell script `run_diagnostic.ps1` into any one node of your Azure Local cluster:
56+
Copy the following PowerShell script named `run_diagnostic.ps1` into any one node of your Azure Local cluster:
5757

5858
```powershell
5959
<#
@@ -288,4 +288,4 @@ The following table provides a summary of each test performed by the script, inc
288288

289289
## Next steps
290290

291-
If the problem persists, collect [AKS cluster logs](get-on-demand-logs.md) before you [create a support request](aks-troubleshoot.md#open-a-support-request).
291+
If the problem persists, collect [AKS cluster logs](get-on-demand-logs.md) before you [create a support request](help-support.md).

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
---

0 commit comments

Comments
 (0)