Skip to content

Commit 8837a11

Browse files
authored
Merge pull request #17218 from MicrosoftDocs/main
2/27/2025 PM Publish
2 parents 66c2e21 + 74da221 commit 8837a11

29 files changed

+611
-434
lines changed

.openpublishing.redirection.azure-local.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1909,6 +1909,11 @@
19091909
"source_path": "azure-local/security-update/security-update-jan-2025.md",
19101910
"redirect_url": "/azure/azure-local/security-update/security-update",
19111911
"redirect_document_id": false
1912+
},
1913+
{
1914+
"source_path": "azure-local/manage/trusted-launch-vm-deploy.md",
1915+
"redirect_url": "/azure/azure-local/manage/trusted-launch-vm-overview",
1916+
"redirect_document_id": false
19121917
}
19131918
]
1914-
}
1919+
}

AKS-Arc/TOC.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,10 @@
146146
items:
147147
- name: Troubleshoot & known issues
148148
href: aks-troubleshoot.md
149+
- name: Control plane configuration validation errors
150+
href: control-plane-validation-errors.md
151+
- name: Connectivity issues with MetalLB
152+
href: load-balancer-issues.md
149153
- name: K8sVersionValidation error
150154
href: cluster-k8s-version.md
151155
- name: Use diagnostic checker

AKS-Arc/configure-ssh-keys.md

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Configure SSH keys for a cluster in AKS enabled by Azure Arc
33
description: Learn how to configure SSH keys for an AKS Arc cluster.
4-
ms.date: 01/10/2025
4+
ms.date: 02/26/2025
55
ms.topic: how-to
66
author: sethmanheim
77
ms.author: sethm
@@ -71,16 +71,9 @@ You have three options for SSH key configuration:
7171
- Use an existing key stored in Azure and select from the stored keys.
7272
- Use an existing public key by providing the SSH public key value.
7373

74-
## Error message
74+
## Error messages
7575

76-
If you don't provide valid SSH key information during cluster creation and no SSH key exists, you receive error messages like the following:
77-
78-
- An RSA key file or key value must be supplied to SSH Key Value.
79-
- Control Plane: Missing Security Keys in Cluster Configuration.
80-
- LinuxProfile SSH public keys should be valid and non-empty.
81-
- Global LinuxProfile SSH public keys should be valid and non-empty.
82-
83-
To mitigate the issue, see [Create and manage SSH keys with the Azure CLI](/azure/virtual-machines/ssh-keys-azure-cli#generate-new-keys) to create the SSH keys. Then, see [Create Kubernetes clusters](aks-create-clusters-cli.md) for the interface you're using. If you're using the REST API, see [provisioned cluster instances](/rest/api/hybridcontainer/provisioned-cluster-instances) to create the provisioned cluster instance.
76+
For information about error messages that can occur when you create and deploy an AKS cluster on Azure Local, see the [Control plane configuration validation errors](control-plane-validation-errors.md) article.
8477

8578
## Next steps
8679

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
title: Control plane configuration validation errors
3+
description: Learn details about each control plane configuration validation error.
4+
author: sethmanheim
5+
ms.author: sethm
6+
ms.topic: concept-article
7+
ms.date: 02/26/2025
8+
9+
---
10+
11+
# Control plane configuration validation errors
12+
13+
This article describes how to identify and resolve [ControlPlaneConfigurationValidation](configure-ssh-keys.md) error codes that can occur when you create and deploy an AKS cluster on Azure Local.
14+
15+
## Symptoms
16+
17+
When you try to create an AKS Arc cluster, you receive an error message that appears as follows:
18+
19+
```json
20+
admission webhook "vhybridakscluster.kb.io" denied the request: {
21+
   "result": "Failed",
22+
   "validationChecks": [
23+
      {
24+
         "name": "ControlPlaneConfigurationValidation",
25+
         "message": "ControlPlane: Global LinuxProfile SSH public keys should be valid and non-empty. ssh: no key found",
26+
         "recommendation": "Please check https://aka.ms/AKSArcValidationErrors/ControlPlaneConfigurationValidation for recommendations"
27+
      }
28+
   ]
29+
}
30+
```
31+
32+
The following section describes the error messages that you might see when you encounter the **ControlPlaneConfigurationValidation** error code.
33+
34+
## Global LinuxProfile SSH public keys must be valid and non-empty
35+
36+
If you don't provide valid SSH key information during Kubernetes cluster creation and no SSH key exists, you receive error messages similar to the following:
37+
38+
- An RSA key file or key value must be supplied to SSH Key Value.
39+
- Control Plane: Missing Security Keys in Cluster Configuration.
40+
- LinuxProfile SSH public keys should be valid and non-empty.
41+
- Global LinuxProfile SSH public keys should be valid and non-empty.
42+
43+
To mitigate the issue, see [Generate and store SSH keys with the Azure CLI](/azure/virtual-machines/ssh-keys-azure-cli#generate-new-keys) to create the SSH keys. Then, see [Create Kubernetes clusters](aks-create-clusters-cli.md) for the interface you're using. If you're using the REST API, see [provisioned cluster instances](/rest/api/hybridcontainer/provisioned-cluster-instances) to create the provisioned cluster instance.
44+
45+
## Control plane count and VM size
46+
47+
In Kubernetes, control plane nodes manage and orchestrate the cluster. They run key components such as API Server, etcd, scheduler, etc. Control plane nodes maintain cluster state, schedule workloads, and ensure high availability, often using multiple nodes for redundancy.
48+
49+
To successfully create an AKS Arc cluster, you must specify at least one control plane node count. Also, to maintain etcd quorum, the control plane node count should be an odd number. For more information about supported count and VM SKU options, see [Scale requirements for AKS on Azure Local](scale-requirements.md#support-count-for-aks-on-azure-local).
50+
51+
## Next steps
52+
53+
[Troubleshoot issues in AKS enabled by Azure Arc](aks-troubleshoot.md)

AKS-Arc/docfx.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
"feedback_product_url": "https://feedback.azure.com/d365community/forum/a2f8da29-b853-ec11-8f8e-0022481f2fe7",
5656
"breadcrumb_path": "/azure/aks/aksarc/breadcrumb/toc.json",
5757
"extendBreadcrumb": false,
58-
"manager":"femila",
58+
"manager":"lizross",
5959
"ms.service": "azure-stack",
6060
"recommendations": true,
6161
"zone_pivot_group_filename": "../azure-stack/zone-pivot-groups.json"

AKS-Arc/load-balancer-issues.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
title: Intermittent connectivity issues with MetalLB or Kubernetes services of type Load Balancer
3+
description: Learn how to mitigate connection issues with MetalLB or Kubernetes services of type Load Balancer.
4+
author: sethmanheim
5+
ms.author: sethm
6+
ms.topic: concept-article
7+
ms.date: 02/26/2025
8+
9+
---
10+
11+
# Intermittent connectivity issues with MetalLB or Kubernetes services of type Load Balancer
12+
13+
You might sometimes experience intermittent connectivity issues when accessing a Kubernetes service of type **LoadBalancer** using the assigned external IP address. This article describes how to identify and resolve connection issues with MetalLB or Kubernetes services of type **LoadBalancer**.
14+
15+
## Symptoms
16+
17+
- The service is accessible sometimes, but not consistently.
18+
- The client experiences unexpected disconnects.
19+
- The external IP intermittently appears and disappears from the control plane when running `Get-VMNetworkAdapter`:
20+
21+
```powershell
22+
Get-VMNetworkAdapter -VMName * | select name, ipaddresses
23+
24+
...
25+
26+
# The external IP appears in the get-vmnetworkadapter output
27+
28+
nocpip26-55bc418a-control-plane-kjqcm-nic-b607b1e0
29+
{172.16.0.11, 172.16.0.10, ***172.16.100.0***, fe80::ec:d3ff:fe8b:1}
30+
31+
# Now it's gone
32+
33+
Get-VMNetworkAdapter -VMName * | select name, ipaddresses
34+
35+
...
36+
37+
nocpip26-55bc418a-control-plane-kjqcm-nic-b607b1e0
38+
{172.16.0.11, 172.16.0.10, ***Now it is gone*** fe80::ec:d3ff:fe8b:1}
39+
40+
# Now it's back
41+
42+
Get-VMNetworkAdapter -VMName * | select name, ipaddresses
43+
44+
...
45+
46+
nocpip26-55bc418a-control-plane-kjqcm-nic-b607b1e0
47+
{172.16.0.11, 172.16.0.10, ***172.16.100.0***, fe80::ec:d3ff:fe8b:1}
48+
```
49+
50+
## Mitigation
51+
52+
This issue was fixed in [AKS on Azure Local, version 2411](aks-whats-new-23h2.md#release-2411).
53+
54+
If you're on an older build, please update to Azure Local, version 2411. Once you update to 2411, you can:
55+
56+
- Create a new AKS cluster. The new AKS cluster should not have any intermittent load balancer connectivity issues.
57+
- [Upgrade the Kubernetes version](cluster-upgrade.md) of your existing AKS cluster to get the fix.
58+
59+
## Next steps
60+
61+
[Troubleshoot issues in AKS enabled by Azure Arc](aks-troubleshoot.md)

azure-local/TOC.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -275,11 +275,11 @@ items:
275275

276276
- name: Trusted launch for Arc VMs
277277
items:
278-
- name: What is Trusted Launch for Arc VMs?
278+
- name: What is Trusted launch for Arc VMs?
279279
href: manage/trusted-launch-vm-overview.md
280-
- name: Deploy Trusted Launch for Arc VMs
281-
href: manage/trusted-launch-vm-deploy.md
282-
- name: Manage guest state protection key
280+
- name: Automatic virtual TPM state transfer
281+
href: manage/trusted-launch-automatic-state-transfer.md
282+
- name: Manual backup and recovery
283283
href: manage/trusted-launch-vm-import-key.md
284284

285285
- name: Non Arc VMs

azure-local/deploy/single-server.md

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ ms.author: robess
66
ms.topic: how-to
77
ms.reviewer: kimlam
88
ms.lastreviewed: 01/17/2023
9-
ms.date: 01/31/2024
9+
ms.date: 02/27/2025
1010
---
1111

1212
# Deploy Azure Stack HCI on a single server
@@ -23,9 +23,9 @@ Currently you can't use Windows Admin Center to deploy Azure Stack HCI on a sing
2323

2424
## Prerequisites
2525

26-
- A server from the [Azure Stack HCI Catalog](https://hcicatalog.azurewebsites.net/#/catalog) that's certified for use as a single-node cluster and configured with all NVMe or all SSD drives.
26+
- A server from the [Azure Stack HCI Catalog](https://hcicatalog.azurewebsites.net/#/catalog) certified for use as a single-node cluster and configured with all NVMe or all SSD drives.
2727
- For network, hardware and other requirements, see [Azure Stack HCI network and domain requirements](../deploy/operating-system.md#determine-hardware-and-network-requirements).
28-
- Optionally, [install Windows Admin Center](/windows-server/manage/windows-admin-center/deploy/install) to register and manage the server once it has been deployed.
28+
- Optionally, [install Windows Admin Center](/windows-server/manage/windows-admin-center/deploy/install) to register and manage the server after it's deployed.
2929

3030
## Deploy on a single server
3131

@@ -38,8 +38,10 @@ Here are the steps to install the Azure Stack HCI OS on a single server, create
3838
```
3939
4040
1. Install the Azure Stack HCI OS on your server. For more information, see [Deploy the Azure Stack HCI OS](../deploy/operating-system.md#manual-deployment) onto your server.
41+
4142
1. Configure the server utilizing the [Server Configuration Tool](/windows-server/administration/server-core/server-core-sconfig) (SConfig).
42-
1. Install the required roles and features using the following command, then reboot before continuing.
43+
44+
1. Install the required roles and features using the following command, then reboot before you continue.
4345
4446
```powershell
4547
Install-WindowsFeature -Name "BitLocker", "Data-Center-Bridging", "Failover-Clustering", "FS-FileServer", "FS-Data-Deduplication", "Hyper-V", "Hyper-V-PowerShell", "RSAT-AD-Powershell", "RSAT-Clustering-PowerShell", "NetworkATC", "Storage-Replica", -IncludeAllSubFeature -IncludeManagementTools
@@ -60,10 +62,11 @@ Here are the steps to install the Azure Stack HCI OS on a single server, create
6062
```
6163

6264
> [!NOTE]
63-
> - The cluster name should not exceed 15 characters.
64-
> - The `New-Cluster` command will also require the `StaticAddress` parameter if the node is not using DHCP for its IP address assignment. This parameter should be supplied with a new, available IP address on the node's subnet.
65+
> - The cluster name shouldn't exceed 15 characters.
66+
> - The `New-Cluster` command requires the `StaticAddress` parameter if the node isn't using DHCP for its IP address assignment. This parameter should be supplied with a new, available IP address on the node's subnet.
6567
6668
1. Use [PowerShell](../deploy/register-with-azure.md?tab=power-shell#register-a-cluster) or [Windows Admin Center](../deploy/register-with-azure.md?tab=windows-admin-center#register-a-cluster) to register the cluster.
69+
6770
1. [Create volumes](/windows-server/storage/storage-spaces/create-volumes).
6871

6972
## Updating single-node clusters
@@ -76,16 +79,20 @@ For solution updates (such as driver and firmware updates), see your solution ve
7679

7780
## Change a single-node to a multi-node cluster (optional)
7881

79-
You can add servers to your single-node cluster, also known as scaling out, though there are some manual steps you must take to properly configure Storage Spaces Direct fault domains (`FaultDomainAwarenessDefault`) in the process. These steps aren't present when adding servers to clusters with two or more servers.
82+
You can add servers to your single-node cluster, also known as scaling out, though there are some manual steps you must take to properly configure Storage Spaces Direct fault domains (`FaultDomainAwarenessDefault`) in the process. These steps aren't present when you add servers to clusters with two or more servers.
8083

8184
1. Validate the cluster by specifying the existing server and the new server: [Validate an Azure Stack HCI cluster - Azure Stack HCI | Microsoft Docs](../deploy/validate.md).
85+
8286
2. If cluster validation was successful, add the new server to the cluster: [Add or remove servers for an Azure Stack HCI cluster - Azure Stack HCI | Microsoft Docs](../manage/add-cluster.md).
87+
8388
3. Once the server is added, change the cluster's fault domain awareness from PhysicalDisk to ScaleScaleUnit: [Inline fault domain changes](../manage/single-node-scale-out.md#inline-fault-domain-changes).
89+
8490
4. Optionally, if more resiliency is needed, adjust the volume resiliency type from a 2-way mirror to a Nested 2-way mirror: [Single-server to two-node cluster](../manage/single-node-scale-out.md#single-server-to-two-node-cluster).
91+
8592
5. [Set up a cluster witness](../manage/witness.md).
8693

8794
## Next steps
8895

89-
- [Deploy workload – AVD](../deploy/virtual-desktop-infrastructure.md)
90-
- [Deploy workload – AKS-HCI](/azure-stack/aks-hci/overview)
91-
- [Deploy workload – Azure Arc-enabled data services](/azure/azure-arc/data/overview)
96+
- [Deploy workload – AVD](../deploy/virtual-desktop-infrastructure.md).
97+
- [Deploy workload – AKS-HCI](/azure-stack/aks-hci/overview).
98+
- [Deploy workload – Azure Arc-enabled data services](/azure/azure-arc/data/overview).

azure-local/manage/create-arc-virtual-machines.md

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,33 @@ Here we create a VM that uses specific memory and processor counts on a specifie
136136
| **storage-path-id** |The associated storage path where the VM configuration and the data are saved. |
137137
| **proxy-configuration** |Use this optional parameter to configure a proxy server for your VM. For more information, see [Create a VM with proxy configured](#create-a-vm-with-proxy-configured). |
138138
139-
1. Run the following command to create a VM.
139+
1. Run the following commands to create the applicable VM.
140+
141+
**To create a Trusted launch Arc VM:**
142+
143+
1. Specify additional flags to enable secure boot, enable virtual TPM, and choose security type. Note, when you specify security type as Trusted launch, you must enable secure boot and vTPM, otherwise Trusted launch VM creation will fail.
144+
145+
```azurecli
146+
az stack-hci-vm create --name $vmName --resource-group $resource_group --admin-username $userName --admin-password $password --computer-name $computerName --image $imageName --location $location --authentication-type all --nics $nicName --custom-location $customLocationID --hardware-profile memory-mb="8192" processors="4" --storage-path-id $storagePathId --enable-secure-boot true --enable-vtpm true --security-type "TrustedLaunch"
147+
```
148+
149+
1. Once the VM is created, to verify the security type of the VM is `Trusted launch`, do the following.
150+
151+
1. Run the following cmdlet (on one of the cluster nodes) to find the owner node of the VM:
152+
153+
```azurecli
154+
Get-ClusterGroup $vmName
155+
```
156+
157+
1. Run the following cmdlet on the owner node of the VM:
158+
159+
```azurecli
160+
(Get-VM $vmName).GuestStateIsolationType
161+
```
162+
163+
1. Ensure a value of `TrustedLaunch` is returned.
164+
165+
**To create a standard Arc VM:**
140166
141167
```azurecli
142168
az stack-hci-vm create --name $vmName --resource-group $resource_group --admin-username $userName --admin-password $password --computer-name $computerName --image $imageName --location $location --authentication-type all --nics $nicName --custom-location $customLocationID --hardware-profile memory-mb="8192" processors="4" --storage-path-id $storagePathId
@@ -247,7 +273,7 @@ Follow these steps in Azure portal for your Azure Local.
247273

248274
**The Virtual machine kind** is automatically set to **Azure Local**.
249275

250-
1. **Security type** - For the security of your VM, select **Standard** or **Trusted Launch virtual machines**. For more information on what are Trusted Launch Arc virtual machines, see [What is Trusted Launch for Azure Arc Virtual Machines?](./trusted-launch-vm-overview.md).
276+
1. **Security type** - For the security of your VM, select **Standard** or **Trusted launch virtual machines**. For more information on what are Trusted launch Arc virtual machines, see [What is Trusted launch for Azure Arc Virtual Machines?](./trusted-launch-vm-overview.md).
251277

252278
1. **Storage path** - Select the storage path for your VM image. Select **Choose automatically** to have a storage path with high availability automatically selected. Select **Choose manually** to specify a storage path to store VM images and configuration files on your Azure Local. In this case, ensure that the selected storage path has sufficient storage space.
253279

Binary file not shown.

0 commit comments

Comments
 (0)