Skip to content

Commit 371c03a

Browse files
authored
Merge branch 'main' into azl-rebrand-manage-services
2 parents dd01096 + 7f3f4be commit 371c03a

File tree

53 files changed

+530
-1427
lines changed

Some content is hidden

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

53 files changed

+530
-1427
lines changed

.openpublishing.redirection.aks.json

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1454,6 +1454,41 @@
14541454
"source_path": "AKS-Arc/kubernetes-rbac-23h2.md",
14551455
"redirect_url": "/azure/aks/aksarc/kubernetes-rbac-local",
14561456
"redirect_document_id": false
1457+
},
1458+
{
1459+
"source_path": "AKS-Arc/tutorial-kubernetes-prepare-application.md",
1460+
"redirect_url": "/azure/aks/aksarc/overview",
1461+
"redirect_document_id": false
1462+
},
1463+
{
1464+
"source_path": "AKS-Arc/tutorial-kubernetes-prepare-azure-container-registry.md",
1465+
"redirect_url": "/azure/aks/aksarc/overview",
1466+
"redirect_document_id": false
1467+
},
1468+
{
1469+
"source_path": "AKS-Arc/tutorial-kubernetes-deploy-cluster.md",
1470+
"redirect_url": "/azure/aks/aksarc/overview",
1471+
"redirect_document_id": false
1472+
},
1473+
{
1474+
"source_path": "AKS-Arc/tutorial-kubernetes-deploy-application.md",
1475+
"redirect_url": "/azure/aks/aksarc/overview",
1476+
"redirect_document_id": false
1477+
},
1478+
{
1479+
"source_path": "AKS-Arc/tutorial-kubernetes-scale.md",
1480+
"redirect_url": "/azure/aks/aksarc/overview",
1481+
"redirect_document_id": false
1482+
},
1483+
{
1484+
"source_path": "AKS-Arc/tutorial-kubernetes-app-update.md",
1485+
"redirect_url": "/azure/aks/aksarc/overview",
1486+
"redirect_document_id": false
1487+
},
1488+
{
1489+
"source_path": "AKS-Arc/tutorial-kubernetes-upgrade-cluster.md",
1490+
"redirect_url": "/azure/aks/aksarc/overview",
1491+
"redirect_document_id": false
14571492
}
14581493
]
14591494
}

AKS-Arc/TOC.yml

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@
7676
href: deploy-load-balancer-portal.md
7777
# - name: Troubleshoot issues
7878
# href: load-balancer-troubleshoot.md
79+
- name: Security
80+
items:
81+
- name: Encrypt etcd secrets
82+
href: encrypt-etcd-secrets.md
7983
- name: AI and Machine Learning
8084
items:
8185
- name: Deploy an AI model with the AI toolchain operator
@@ -360,23 +364,6 @@
360364
href: setup.md
361365
- name: Create a Kubernetes cluster
362366
href: create-kubernetes-cluster.md
363-
- name: Tutorial
364-
items:
365-
- name: 1 - Prepare an application
366-
href: tutorial-kubernetes-prepare-application.md
367-
- name: 2 - Create container registry
368-
href: tutorial-kubernetes-prepare-azure-container-registry.md
369-
- name: 3 - Deploy a Kubernetes cluster
370-
href: tutorial-kubernetes-deploy-cluster.md
371-
- name: 4 - Run an application
372-
href: tutorial-kubernetes-deploy-application.md
373-
- name: 5 - Scale an application
374-
href: tutorial-kubernetes-scale.md
375-
- name: 6 - Update an application
376-
href: tutorial-kubernetes-app-update.md
377-
- name: 7 - Upgrade Kubernetes cluster
378-
# Remove this, we don tneed to upgrade K8s in this tutorial.
379-
href: tutorial-kubernetes-upgrade-cluster.md
380367
- name: Concepts
381368
items:
382369
- name: Quotas and resource limits

AKS-Arc/aks-edge-software-license-terms.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ These license terms are an agreement between you and Microsoft Corporation (or o
6868

6969
**10. APPLICABLE LAW AND PLACE TO RESOLVE DISPUTES.** If you acquired the software in the United States or Canada, the laws of the state or province where you live (or, if a business, where your principal place of business is located) govern the interpretation of this agreement, claims for its breach, and all other claims (including consumer protection, unfair competition, and tort claims), regardless of conflict of laws principles, except that the FAA governs everything related to arbitration. If you acquired the software in any other country, its laws apply, except that the FAA governs everything related to arbitration. If U.S. federal jurisdiction exists, you and Microsoft consent to exclusive jurisdiction and venue in the federal court in King County, Washington for all disputes heard in court (excluding arbitration). If not, you and Microsoft consent to exclusive jurisdiction and venue in the Superior Court of King County, Washington for all disputes heard in court (excluding arbitration).
7070

71-
**11. CONSUMER RIGHTS; REGIONAL VARIATIONS.** This agreement describes certain legal rights. You may have other rights, including consumer rights, under the laws of your state, province, or country. Separate and apart from your relationship with Microsoft, you may also have rights with respect to the party from which you acquired the software. This agreement does not change those other rights if the laws of your state, province, or country do not permit it to do so. For example, if you acquired the software in one of the below regions, or mandatory country law applies, then the following provisions apply to you:
71+
**11. CONSUMER RIGHTS; REGIONAL VARIATIONS.** This agreement describes certain legal rights. You may have other rights, including consumer rights, under the laws of your state, province, or country/region. Separate and apart from your relationship with Microsoft, you may also have rights with respect to the party from which you acquired the software. This agreement does not change those other rights if the laws of your state, province, or country/region do not permit it to do so. For example, if you acquired the software in one of the below regions, or mandatory country/region law applies, then the following provisions apply to you:
7272

7373
**a) Australia.** You have statutory guarantees under the Australian Consumer Law and nothing in this agreement is intended to affect those rights.
7474

@@ -86,7 +86,7 @@ Subject to the foregoing clause ii., Microsoft will only be liable for slight ne
8686
**13. LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR RECOVERING DAMAGES DESPITE THE PRECEDING DISCLAIMER OF WARRANTY, YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES.**
8787

8888
**This limitation applies to (a) anything related to the software, services, content (including code) on third party Internet sites, or third party applications; and (b) claims for breach of contract, warranty, guarantee, or condition; strict liability, negligence, or other tort; or any other claim; in each case to the extent permitted by applicable law.
89-
It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your state, province, or country may not allow the exclusion or limitation of incidental, consequential, or other damages.**
89+
It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your state, province, or country/region may not allow the exclusion or limitation of incidental, consequential, or other damages.**
9090

9191
**Please note: As this software is distributed in Canada, some of the clauses in this agreement are provided below in French.**
9292

AKS-Arc/aks-overview.md

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: What is AKS enabled by Azure Arc?
33
description: Learn about AKS enabled by Azure Arc and available deployment options.
44
ms.topic: overview
5-
ms.date: 05/28/2024
5+
ms.date: 04/14/2025
66
author: sethmanheim
77
ms.author: sethm
88
ms.reviewer: abha
@@ -39,16 +39,11 @@ The following list describes some of the common use cases for AKS, but is not an
3939

4040
The available deployment options are as follows:
4141

42-
- **AKS on Azure Local**: AKS on Azure Local uses Azure Arc to create new Kubernetes clusters on Azure Local directly from Azure. It enables you to use familiar tools like the Azure portal and Azure Resource Manager templates to create and manage your Kubernetes clusters running on Azure Local.
43-
- **AKS Edge Essentials**: AKS Edge Essentials includes a lightweight Kubernetes distribution with a small footprint and simple installation experience, making it easy for you to deploy Kubernetes on PC-class or "light" edge hardware.
44-
- **AKS on Windows Server**: Azure Kubernetes Service on Windows Server (and on Azure Local 22H2) is an on-premises Kubernetes implementation of AKS that automates running containerized applications at scale, using Windows PowerShell and Windows Admin Center. It simplifies deployment and management of AKS on Windows Server 2019/2022 Datacenter and Azure Local 22H2.
45-
- **AKS on VMWare (preview)**: AKS on VMware (preview) enables you to use Azure Arc to create new Kubernetes clusters on VMware vSphere. With AKS on VMware, you can manage your AKS clusters running on VMware vSphere using familiar tools like Azure CLI.
42+
- [**AKS on Azure Local**](aks-whats-new-local.md): AKS on Azure Local uses Azure Arc to create new Kubernetes clusters on Azure Local directly from Azure. It enables you to use familiar tools like the Azure portal and Azure Resource Manager templates to create and manage your Kubernetes clusters running on Azure Local.
43+
- [**AKS Edge Essentials**](aks-edge-overview.md): AKS Edge Essentials includes a lightweight Kubernetes distribution with a small footprint and simple installation experience, making it easy for you to deploy Kubernetes on PC-class or "light" edge hardware.
44+
- [**AKS on VMWare (preview)**](aks-vmware-overview.md): AKS on VMware (preview) enables you to use Azure Arc to create new Kubernetes clusters on VMware vSphere. With AKS on VMware, you can manage your AKS clusters running on VMware vSphere using familiar tools like Azure CLI.
45+
- [**AKS on Windows Server**](overview.md): AKS on Windows Server is an on-premises Kubernetes implementation of AKS that automates running containerized applications at scale, using Windows PowerShell and Windows Admin Center. It simplifies deployment and management of AKS on Windows Server 2019/2022 Datacenter.
4646

4747
## Next steps
4848

49-
To get started with AKS enabled by Azure Arc, see the following deployment option overviews:
50-
5149
- [What's new in AKS on Azure Local](aks-whats-new-local.md)
52-
- [AKS on Windows Server](overview.md)
53-
- [AKS Edge Essentials](aks-edge-overview.md)
54-
- [AKS on VMware (preview)](aks-vmware-overview.md)

AKS-Arc/deploy-gpu-node-pool-22h2.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Use GPUs for compute-intensive workloads
2+
title: Use GPUs for compute-intensive workloads in AKS on Windows Server
33
description: Learn how to deploy GPU-enabled node pools in AKS on Windows Server.
44
author: sethmanheim
55
ms.topic: how-to
@@ -11,7 +11,7 @@ ms.lastreviewed: 03/21/2023
1111
# Keyword: Run GPU workloads on Kubernetes
1212
---
1313

14-
# Use GPUs for compute-intensive workloads
14+
# Use GPUs for compute-intensive workloads in AKS on Windows Server
1515

1616
[!INCLUDE [aks-hybrid-applies-to-azure-stack-hci-windows-server-sku](includes/aks-hci-applies-to-skus/aks-hybrid-applies-to-azure-stack-hci-windows-server-sku.md)]
1717

AKS-Arc/deploy-gpu-node-pool.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Use GPUs for compute-intensive workloads in AKS on Azure Local
33
description: Learn how to deploy GPU-enabled node pools in AKS enabled by Arc on Azure Local.
44
author: sethmanheim
55
ms.topic: how-to
6-
ms.date: 03/25/2025
6+
ms.date: 04/14/2025
77
ms.author: sethm
88
ms.lastreviewed: 03/21/2025
99
ms.reviewer: abha
@@ -17,7 +17,7 @@ ms.reviewer: abha
1717
[!INCLUDE [hci-applies-to-23h2](includes/hci-applies-to-23h2.md)]
1818

1919
> [!NOTE]
20-
> For information about GPUs in AKS on Azure Local 22H2, see [Use GPUs (Azure Local 22H2)](deploy-gpu-node-pool-22h2.md).
20+
> For information about GPUs in AKS on Windows Server, see [Use GPUs in AKS on Windows Server](deploy-gpu-node-pool-22h2.md).
2121
2222
Graphical Processing Units (GPU) are used for compute-intensive workloads such as machine learning, deep learning, and more. This article describes how to use GPUs for compute-intensive workloads in AKS enabled by Azure Arc.
2323

@@ -241,5 +241,5 @@ If an upgrade is triggered on a cluster without extra GPU resources to facilitat
241241
## Next steps
242242

243243
- [Supported VM sizes](scale-requirements.md)
244-
- [Use GPUs (AKS on Azure Local 22H2)](deploy-gpu-node-pool-22h2.md)
245-
- [AKS overview](aks-hybrid-options-overview.md)
244+
- [Use GPUs in AKS on Windows Server](deploy-gpu-node-pool-22h2.md)
245+
- [AKS overview](aks-overview.md)

AKS-Arc/encrypt-etcd-secrets.md

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
---
2+
title: Encrypt etcd secrets for Kubernetes clusters in AKS on Azure Local
3+
description: Learn how to encrypt etcd secrets in AKS on Azure Local.
4+
author: sethmanheim
5+
ms.topic: how-to
6+
ms.date: 04/11/2025
7+
ms.author: sethm
8+
ms.lastreviewed: 04/10/2025
9+
ms.reviewer: khareanushka
10+
# Intent: As an IT Pro, I want to learn about encrypted etcd secrets and how they are used in my AKS deployment.
11+
# Keyword: etcd secrets AKS Windows Server
12+
13+
---
14+
15+
# How to: Encrypt etcd secrets for Kubernetes clusters
16+
17+
[!INCLUDE [hci-applies-to-23h2](includes/hci-applies-to-23h2.md)]
18+
19+
A [*secret*](https://kubernetes.io/docs/concepts/configuration/secret/) in Kubernetes is an object that contains a small amount of sensitive data, such as passwords and SSH keys. In the Kubernetes API server, secrets are stored in *etcd*, which is a highly available key value store used as the Kubernetes backing store for all cluster data.
20+
21+
Azure Kubernetes Service (AKS) on Azure Local comes with encryption of etcd secrets using a **Key Management Service (KMS) plugin**. All Kubernetes clusters in Azure Local have a built-in KMS plugin enabled by default. This plugin generates the [Key Encryption Key (KEK)](https://kubernetes.io/docs/tasks/administer-cluster/kms-provider/#kms-encryption-and-per-object-encryption-keys)
22+
and automatically rotates it every 30 days.
23+
24+
This article describes how to verify that the data is encrypted. For more information, see the [official Kubernetes documentation for the KMS plugin](https://kubernetes.io/docs/tasks/administer-cluster/kms-provider/).
25+
26+
> [!NOTE]
27+
> The KMS plugin currently uses the KMS v1 protocol.
28+
29+
## Before you begin
30+
31+
Before you begin, ensure that you have the following prerequisites:
32+
33+
- To interact with Kubernetes clusters, you must install [**kubectl**](https://kubernetes.io/docs/tasks/tools/) and [**kubelogin**](https://azure.github.io/kubelogin/install.html).
34+
- To view or manage secrets, ensure you have the necessary entitlements to access them. For more information, see [Access and identity](concepts-security-access-identity.md#built-in-roles).
35+
36+
## Access your Microsoft Entra-enabled cluster
37+
38+
Get the user credentials to access your cluster using the [az aksarc get-credentials](/cli/azure/aksarc#az-aksarc-get-credentials) command. You need the **Microsoft.HybridContainerService/provisionedClusterInstances/listUserKubeconfig/action** resource, which is included in the **Azure Kubernetes Service Arc Cluster User** role permission:
39+
40+
```azurecli
41+
az aksarc get-credentials --resource-group $resource_group --name $aks_cluster_name
42+
```
43+
44+
## Verify that the KMS plugin is enabled
45+
46+
To verify that the KMS plugin is enabled, run the following command and ensure that the health status of **kms-providers** is **OK**:
47+
48+
```azurecli
49+
kubectl get --raw='/readyz?verbose'
50+
```
51+
52+
```output
53+
[+]ping ok
54+
[+]Log ok
55+
[+]etcd ok
56+
[+]kms-providers ok
57+
[+]poststarthook/start-encryption-provider-config-automatic-reload ok
58+
```
59+
60+
## Verify that the data is encrypted
61+
62+
To verify that secrets and data has been encrypted using a KMS plugin, [see the Kubernetes documentation](https://kubernetes.io/docs/tasks/administer-cluster/kms-provider/#verifying-that-the-data-is-encrypted). You can use the following commands to verify that the data is encrypted:
63+
64+
```azurecli
65+
kubectl exec --stdin --tty <etcd pod name> -n kube-system --etcdctl --cacert /etc/kubernetes/pki/etcd/ca.crt --key /etc/kubernetes/pki/etcd/server.key --cert /etc/kubernetes/pki/etcd/server.crt get /registry/secrets/default/db-user-pass -w fields
66+
```
67+
68+
- `kubectl exec`: This is the kubectl command used to execute a command inside a running pod. It enables you to run commands within the container of a pod.
69+
- `--stdin`: This flag enables you to send input (stdin) to the command you are running inside the pod.
70+
- `--tty`: This flag allocates a TTY (terminal) for the command, making it behave as though you're interacting with a terminal session.
71+
- `<etcd pod name>`: to find the etcd pod name, run the following command:
72+
73+
```azurecli
74+
kubectl get pods -n kube-system | findstr etcd-moc
75+
```
76+
77+
- `-n kube-system`: Specifies the namespace where the pod is located. **kube-system** is the default namespace used by Kubernetes for system components, such as etcd and other control plane services.
78+
- `--etcdctl`: Reads the secret from etcd. Additional fields are used for authentication before you get access to etcd.
79+
80+
The following fields are returned in the command output:
81+
82+
```output
83+
"ClusterID" : <cluster id>
84+
"MemberID" : <member id>
85+
"Revision" : <revision number>
86+
"RaftTerm" : 2
87+
"Key" : <path to the key>
88+
"CreateRevision" : <revision number at the time the key was created>
89+
"ModRevision" : <revision number at the time the key was modified>
90+
"Version" : <version of the key-value pair in etcd>
91+
"Value" : "k8s:enc:kms:v1:kms-plugin: <encrypted secret value>"
92+
"Lease" : <lease associated with the secret>
93+
"More" : <indicates if there are more results>
94+
"Count" : <number of key-value pairs returned>
95+
```
96+
97+
After you run the command, examine the `Value` field in the output in the terminal window. This output shows the value stored in the etcd secret store for this key, which is the encrypted value of the secret. The value is encrypted using a KMS plugin. The `k8s:enc:kms:v1:` prefix indicates that Kubernetes is using the KMS v1 plugin to store the secret in an encrypted format.
98+
99+
> [!NOTE]
100+
> If you use the `kubectl describe secrets` command to retrieve secrets, it returns them in base64-encoded format, but unencrypted. The `kubectl describe` command retrieves the details of a Kubernetes resource via the API server, which manages encryption and decryption automatically. For sensitive data such as secrets, even if they are mounted on a pod, the API server ensures that they are decrypted when accessed. As a result, running the `kubectl describe` command does not display secrets in their encrypted form, but rather in their decrypted form if they are being used by a resource.
101+
102+
## Troubleshooting
103+
104+
If you encounter any errors with the KMS plugin, follow the procedure on the [Troubleshooting page](aks-troubleshoot.md) to troubleshoot the issue.
105+
106+
## Next steps
107+
108+
- [Create Kubernetes clusters](aks-create-clusters-cli.md#deploy-the-application-and-load-balancer)
109+
- [Deploy a Linux application on a Kubernetes cluster](deploy-linux-application.md)
110+

AKS-Arc/includes/supported-gpu-models.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
author: sethmanheim
33
ms.author: sethm
44
ms.topic: include
5-
ms.date: 03/25/2025
5+
ms.date: 04/14/2025
66
ms.reviewer: abha
7-
ms.lastreviewed: 03/25/2025
7+
ms.lastreviewed: 04/14/2025
88

99
---
1010

1111
## Supported GPU models
1212

13-
The following GPU models are supported by AKS on Azure Local, version 23H2:
13+
The following GPU models are supported by AKS on Azure Local.
1414

1515
| Manufacturer | GPU model | Supported version |
1616
|--------------|-----------|-------------------|
@@ -20,7 +20,7 @@ The following GPU models are supported by AKS on Azure Local, version 23H2:
2020

2121
## Supported GPU VM sizes
2222

23-
The following VM sizes for each GPU model are supported by AKS on Azure Local, version 23H2.
23+
The following VM sizes for each GPU model are supported by AKS on Azure Local.
2424

2525
### Nvidia T4 is supported by NK T4 SKUs
2626

0 commit comments

Comments
 (0)