Skip to content

Commit 6ef2d49

Browse files
committed
address feedback from PR reviewer
1 parent 148d826 commit 6ef2d49

13 files changed

+47
-42
lines changed

articles/aks/cluster-configuration.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Cluster configuration in Azure Kubernetes Services (AKS)
33
description: Learn how to configure a cluster in Azure Kubernetes Service (AKS)
44
services: container-service
55
ms.topic: article
6-
ms.date: 09/27/2022
6+
ms.date: 09/29/2022
77
---
88

99
# Configure an AKS cluster
@@ -46,7 +46,7 @@ By using `containerd` for AKS nodes, pod startup latency improves and node resou
4646
* You can no longer access the docker engine, `/var/run/docker.sock`, or use Docker-in-Docker (DinD).
4747

4848
* If you currently extract application logs or monitoring data from Docker Engine, use [Container insights](../azure-monitor/containers/container-insights-enable-new-cluster.md) instead. Additionally AKS doesn't support running any out of band commands on the agent nodes that could cause instability.
49-
* When using Docker, building images and directly using the Docker engine using the methods above is not recommended. Kubernetes isn't fully aware of those consumed resources, and those approaches present numerous issues detailed [here](https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/) and [here](https://securityboulevard.com/2018/05/escaping-the-whale-things-you-probably-shouldnt-do-with-docker-part-1/), for example.
49+
* Building images and directly using the Docker engine using the methods above isn't recommended. Kubernetes isn't fully aware of those consumed resources, and those approaches present numerous issues detailed [here](https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/) and [here](https://securityboulevard.com/2018/05/escaping-the-whale-things-you-probably-shouldnt-do-with-docker-part-1/), for example.
5050

5151
* Building images - You can continue to use your current docker build workflow as normal, unless you're building images inside your AKS cluster. In this case, consider switching to the recommended approach for building images using [ACR Tasks](../container-registry/container-registry-quickstart-task-cli.md), or a more secure in-cluster option like [docker buildx](https://github.com/docker/buildx).
5252

@@ -84,19 +84,19 @@ Like the temporary disk, an ephemeral OS disk is included in the price of the vi
8484
> [!IMPORTANT]
8585
>When you don't explicitly request managed disks for the OS, AKS will default to ephemeral OS if possible for a given node pool configuration.
8686
87-
When using ephemeral OS, the OS disk must fit in the VM cache. The sizes for VM cache are available in the [Azure documentation](../virtual-machines/dv3-dsv3-series.md) in parentheses next to IO throughput ("cache size in GiB").
87+
If you chose to use an ephemeral OS, the OS disk must fit in the VM cache. The sizes for VM cache are available in the [Azure documentation](../virtual-machines/dv3-dsv3-series.md) in parentheses next to IO throughput ("cache size in GiB").
8888

89-
Using the AKS default VM size [Standard_DS2_v2](../virtual-machines/dv2-dsv2-series.md#dsv2-series) with the default OS disk size of 100 GB, this VM size supports ephemeral OS but only has 86 GB of cache size. This configuration would default to managed disks if you don't explicitly specify it. If you do request an ephemeral OS, you'll receive a validation error.
89+
If you chose to use the AKS default VM size [Standard_DS2_v2](../virtual-machines/dv2-dsv2-series.md#dsv2-series) SKU with the default OS disk size of 100 GB, this VM size supports ephemeral OS but only has 86 GB of cache size. This configuration would default to managed disks if you don't explicitly specify it. If you do request an ephemeral OS, you'll receive a validation error.
9090

91-
If you requests the same [Standard_DS2_v2](../virtual-machines/dv2-dsv2-series.md#dsv2-series) with a 60GB OS disk, this configuration would default to ephemeral OS: the requested size of 60GB is smaller than the maximum cache size of 86 GB.
91+
If you request the same [Standard_DS2_v2](../virtual-machines/dv2-dsv2-series.md#dsv2-series) SKU with a 60GB OS disk, this configuration would default to ephemeral OS: the requested size of 60GB is smaller than the maximum cache size of 86 GB.
9292

93-
Using [Standard_D8s_v3](../virtual-machines/dv3-dsv3-series.md#dsv3-series) with 100 GB OS disk, this VM size supports ephemeral OS and has 200 GB of cache space. If you don't specify the OS disk type, the node pool would receive ephemeral OS by default.
93+
If you select the [Standard_D8s_v3](../virtual-machines/dv3-dsv3-series.md#dsv3-series) SKU with 100 GB OS disk, this VM size supports ephemeral OS and has 200 GB of cache space. If you don't specify the OS disk type, the node pool would receive ephemeral OS by default.
9494

95-
The latest generation of VM series doesn't have a dedicated cache, but only temporary storage. Let's assume to use the [Standard_E2bds_v5](../virtual-machines/ebdsv5-ebsv5-series.md#ebdsv5-series) VM size with the default OS disk size of 100 GiB as an example. This VM size supports ephemeral OS disks but only has 75 GiB of temporary storage. This configuration would default to managed OS disks if you don't explicitly specify it. If you do request an ephemeral OS disks, you'll receive a validation error.
95+
The latest generation of VM series doesn't have a dedicated cache, but only temporary storage. Let's assume to use the [Standard_E2bds_v5](../virtual-machines/ebdsv5-ebsv5-series.md#ebdsv5-series) VM size with the default OS disk size of 100 GiB as an example. This VM size supports ephemeral OS disks but only has 75 GiB of temporary storage. This configuration would default to managed OS disks if you don't explicitly specify it. If you do request an ephemeral OS disk, you'll receive a validation error.
9696

9797
If you request the same [Standard_E2bds_v5](../virtual-machines/ebdsv5-ebsv5-series.md#ebdsv5-series) VM size with a 60 GiB OS disk, this configuration would default to ephemeral OS disks. The requested size of 60 GiB is smaller than the maximum temporary storage of 75 GiB.
9898

99-
Using [Standard_E4bds_v5](../virtual-machines/ebdsv5-ebsv5-series.md#ebdsv5-series) with 100 GiB OS disk, this VM size supports ephemeral OS and has 150 GiB of temporary storage. If you don't specify the OS disk type, the node pool is provisioned with an ephemeral OS by default.
99+
If you chose to use [Standard_E4bds_v5](../virtual-machines/ebdsv5-ebsv5-series.md#ebdsv5-series) SKU with 100 GiB OS disk, this VM size supports ephemeral OS and has 150 GiB of temporary storage. If you don't specify the OS disk type, the node pool is provisioned with an ephemeral OS by default.
100100

101101
Ephemeral OS requires at least version 2.15.0 of the Azure CLI.
102102

articles/aks/csi-secrets-store-driver.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ms.custom: template-how-to, devx-track-azurecli
1111

1212
# Use the Azure Key Vault Provider for Secrets Store CSI Driver in an AKS cluster
1313

14-
The Azure Key Vault Provider for Secrets Store CSI Driver allows for the integration of an Azure key vault as a secrets store with an Azure Kubernetes Service (AKS) cluster via a [CSI volume][kube-csi].
14+
The Azure Key Vault Provider for Secrets Store CSI Driver allows for the integration of an Azure key vault as a secret store with an Azure Kubernetes Service (AKS) cluster via a [CSI volume][kube-csi].
1515

1616
## Limitations
1717

articles/aks/csi-secrets-store-identity-access.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ An Azure AD workload identity (preview) is an identity used by an application ru
2020
> [!NOTE]
2121
> This authentication method replaces pod-managed identity (preview).
2222
23-
### Prerequsites
23+
### Prerequisites
2424

2525
- You have installed the latest version of the `aks-preview` extension, version 0.5.102 or later. To learn more, see [How to install extensions][how-to-install-extensions].
2626

articles/aks/developer-best-practices-pod-security.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ Work with your cluster operator to determine what security context settings you
6262
6363
## Limit credential exposure
6464
65-
**Best practice guidance** - Don't define credentials in your application code. Use managed identities for Azure resources to let your pod request access to other resources. A digital vault, such as Azure Key Vault, should also be used to store and retrieve digital keys and credentials. Pod managed identities is intended for use with Linux pods and container images only.
65+
**Best practice guidance** - Don't define credentials in your application code. Use managed identities for Azure resources to let your pod request access to other resources. A digital vault, such as Azure Key Vault, should also be used to store and retrieve digital keys and credentials. Pod-managed identities are intended for use with Linux pods and container images only.
6666
6767
To limit the risk of credentials being exposed in your application code, avoid the use of fixed or shared credentials. Credentials or keys shouldn't be included directly in your code. If these credentials are exposed, the application needs to be updated and redeployed. A better approach is to give pods their own identity and way to authenticate themselves, or automatically retrieve credentials from a digital vault.
6868

articles/aks/learn/tutorial-kubernetes-workload-identity.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ This tutorial assumes a basic understanding of Kubernetes concepts. For more inf
2626

2727
- You have installed the latest version of the `aks-preview` extension, version 0.5.102 or later.
2828

29-
- The identity you are using to create your cluster has the appropriate minimum permissions. For more details on access and identity for AKS, see [Access and identity options for Azure Kubernetes Service (AKS)][aks-identity-concepts].
29+
- The identity you are using to create your cluster has the appropriate minimum permissions. For more information on access and identity for AKS, see [Access and identity options for Azure Kubernetes Service (AKS)][aks-identity-concepts].
3030

3131
- If you have multiple Azure subscriptions, select the appropriate subscription ID in which the resources should be billed using the
3232
[az account][az-account] command.
@@ -189,7 +189,7 @@ metadata:
189189
EOF
190190
```
191191

192-
The following output resemble successful creation of the identity:
192+
The following output resembles successful creation of the identity:
193193

194194
```output
195195
Serviceaccount/workload-identity-sa created
-11 KB
Loading

articles/aks/operator-best-practices-cluster-security.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -154,10 +154,10 @@ AppArmor profiles are added using the `apparmor_parser` command.
154154
command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ]
155155
```
156156

157-
1. With the pod deployed, use verify the *hello-apparmor* pod shows as *blocked*:
157+
1. With the pod deployed, verify the *hello-apparmor* pod shows a *blocked* status by running the following command:
158158

159159
```
160-
$ kubectl get pods
160+
kubectl get pods
161161
162162
NAME READY STATUS RESTARTS AGE
163163
aks-ssh 1/1 Running 0 4m2s
@@ -272,7 +272,7 @@ To see seccomp in action, create a filter that prevents changing permissions on
272272
* The `chmod` command is prevented from running by the seccomp filter, as shown in the following example output:
273273

274274
```
275-
$ kubectl get pods
275+
kubectl get pods
276276

277277
NAME READY STATUS RESTARTS AGE
278278
chmod-prevented 0/1 Error 0 7s
@@ -315,8 +315,8 @@ To check the versions that are available for your cluster, use the [Get-AzAksUpg
315315

316316
```azurepowershell-interactive
317317
Get-AzAksUpgradeProfile -ResourceGroupName myResourceGroup -ClusterName myAKSCluster |
318-
Select-Object -Property Name, ControlPlaneProfileKubernetesVersion -ExpandProperty ControlPlaneProfileUpgrade |
319-
Format-Table -Property *
318+
Select-Object -Property Name, ControlPlaneProfileKubernetesVersion -ExpandProperty ControlPlaneProfileUpgrade |
319+
Format-Table -Property *
320320
```
321321

322322
You can then upgrade your AKS cluster using the [Set-AzAksCluster][set-azakscluster] command. The upgrade process safely:
@@ -354,7 +354,7 @@ Each evening, Linux nodes in AKS get security patches through their distro updat
354354

355355
### Node image upgrades
356356

357-
Unattended upgrades apply updates to the Linux node OS, but the image used to create nodes for your cluster remains unchanged. If a new Linux node is added to your cluster, the original image is used to create the node. This new node will receive all the security and kernel updates available during the automatic check every night but will remain unpatched until all checks and restarts are complete. You can use node image upgrade to check for and update node images used by your cluster. For more details on node image upgrade, see [Azure Kubernetes Service (AKS) node image upgrade][node-image-upgrade].
357+
Unattended upgrades apply updates to the Linux node OS, but the image used to create nodes for your cluster remains unchanged. If a new Linux node is added to your cluster, the original image is used to create the node. This new node will receive all the security and kernel updates available during the automatic check every night but will remain unpatched until all checks and restarts are complete. You can use node image upgrade to check for and update node images used by your cluster. For more information on node image upgrade, see [Azure Kubernetes Service (AKS) node image upgrade][node-image-upgrade].
358358

359359
## Process Windows Server node updates
360360

articles/aks/operator-best-practices-identity.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ With Azure AD-integrated clusters in AKS, you create *Roles* or *ClusterRoles* d
4040
1. The developer performs an action using the Azure AD token, such as `kubectl create pod`.
4141
1. Kubernetes validates the token with Azure AD and fetches the developer's group memberships.
4242
1. Kubernetes RBAC and cluster policies are applied.
43-
1. Developer's request is successful based on previous validation of Azure AD group membership and Kubernetes RBAC and policies.
43+
1. The developer's request is successful based on previous validation of Azure AD group membership and Kubernetes RBAC and policies.
4444

4545
To create an AKS cluster that uses Azure AD, see [Integrate Azure Active Directory with AKS][aks-aad].
4646

@@ -96,7 +96,7 @@ To learn how to use Azure AD groups to control access to Kubernetes resources us
9696
9797
There are two levels of access needed to fully operate an AKS cluster:
9898
99-
1. Access the AKS resource on your Azure subscription.
99+
* Access the AKS resource on your Azure subscription.
100100
101101
This access level allows you to:
102102
@@ -105,7 +105,7 @@ There are two levels of access needed to fully operate an AKS cluster:
105105

106106
To learn how to control access to the AKS resource and the `kubeconfig`, see [Limit access to cluster configuration file](control-kubeconfig-access.md).
107107

108-
2. Access to the Kubernetes API.
108+
* Access to the Kubernetes API.
109109

110110
This access level is controlled either by:
111111

@@ -136,21 +136,21 @@ With pod-managed identities (preview) for Azure resources, you automatically req
136136

137137
Azure Active Directory pod-managed identity (preview) supports two modes of operation:
138138

139-
1. **Standard** mode: In this mode, the following 2 components are deployed to the AKS cluster:
139+
* **Standard** mode: In this mode, the following 2 components are deployed to the AKS cluster:
140140

141141
* [Managed Identity Controller(MIC)](https://azure.github.io/aad-pod-identity/docs/concepts/mic/): A Kubernetes controller that watches for changes to pods, [AzureIdentity](https://azure.github.io/aad-pod-identity/docs/concepts/azureidentity/) and [AzureIdentityBinding](https://azure.github.io/aad-pod-identity/docs/concepts/azureidentitybinding/) through the Kubernetes API Server. When it detects a relevant change, the MIC adds or deletes [AzureAssignedIdentity](https://azure.github.io/aad-pod-identity/docs/concepts/azureassignedidentity/) as needed. Specifically, when a pod is scheduled, the MIC assigns the managed identity on Azure to the underlying virtual machine scale set used by the node pool during the creation phase. When all pods using the identity are deleted, it removes the identity from the virtual machine scale set of the node pool, unless the same managed identity is used by other pods. The MIC takes similar actions when AzureIdentity or AzureIdentityBinding are created or deleted.
142142

143143
* [Node Managed Identity (NMI)](https://azure.github.io/aad-pod-identity/docs/concepts/nmi/): is a pod that runs as a DaemonSet on each node in the AKS cluster. NMI intercepts security token requests to the [Azure Instance Metadata Service](../virtual-machines/linux/instance-metadata-service.md?tabs=linux) on each node. It redirects requests to itself and validates if the pod has access to the identity it's requesting a token for, and fetch the token from the Azure Active Directory tenant on behalf of the application.
144144

145-
2. **Managed** mode: In this mode, there's only NMI. The identity needs to be manually assigned and managed by the user. For more information, see [Pod Identity in Managed Mode](https://azure.github.io/aad-pod-identity/docs/configure/pod_identity_in_managed_mode/). In this mode, when you use the [az aks pod-identity add](/cli/azure/aks/pod-identity#az-aks-pod-identity-add) command to add a pod identity to an Azure Kubernetes Service (AKS) cluster, it creates the [AzureIdentity](https://azure.github.io/aad-pod-identity/docs/concepts/azureidentity/) and [AzureIdentityBinding](https://azure.github.io/aad-pod-identity/docs/concepts/azureidentitybinding/) in the namespace specified by the `--namespace` parameter, while the AKS resource provider assigns the managed identity specified by the `--identity-resource-id` parameter to virtual machine scale set of each node pool in the AKS cluster.
145+
* **Managed** mode: In this mode, there's only NMI. The identity needs to be manually assigned and managed by the user. For more information, see [Pod Identity in Managed Mode](https://azure.github.io/aad-pod-identity/docs/configure/pod_identity_in_managed_mode/). In this mode, when you use the [az aks pod-identity add](/cli/azure/aks/pod-identity#az-aks-pod-identity-add) command to add a pod identity to an Azure Kubernetes Service (AKS) cluster, it creates the [AzureIdentity](https://azure.github.io/aad-pod-identity/docs/concepts/azureidentity/) and [AzureIdentityBinding](https://azure.github.io/aad-pod-identity/docs/concepts/azureidentitybinding/) in the namespace specified by the `--namespace` parameter, while the AKS resource provider assigns the managed identity specified by the `--identity-resource-id` parameter to virtual machine scale set of each node pool in the AKS cluster.
146146

147147
> [!NOTE]
148148
> If you instead decide to install the Azure Active Directory pod-managed identity using the [AKS cluster add-on](./use-azure-ad-pod-identity.md), setup uses the `managed` mode.
149149

150150
The `managed` mode provides the following advantages over the `standard`:
151151

152-
1. Identity assignment on the virtual machine scale set of a node pool can take up 40-60s. With cronjobs or applications that require access to the identity and can't tolerate the assignment delay, it's best to use `managed` mode as the identity is pre-assigned to the virtual machine scale set of the node pool. Either manually or using the [az aks pod-identity add](/cli/azure/aks/pod-identity#az-aks-pod-identity-add) command.
153-
2. In `standard` mode, MIC requires write permissions on the virtual machine scale set used by the AKS cluster and `Managed Identity Operator` permission on the user-assigned managed identities. While running in `managed mode`, since there's no MIC, the role assignments aren't required.
152+
* Identity assignment on the virtual machine scale set of a node pool can take up 40-60s. With cronjobs or applications that require access to the identity and can't tolerate the assignment delay, it's best to use `managed` mode as the identity is pre-assigned to the virtual machine scale set of the node pool. Either manually or using the [az aks pod-identity add](/cli/azure/aks/pod-identity#az-aks-pod-identity-add) command.
153+
* In `standard` mode, MIC requires write permissions on the virtual machine scale set used by the AKS cluster and `Managed Identity Operator` permission on the user-assigned managed identities. When running in `managed mode`, since there's no MIC, the role assignments aren't required.
154154

155155
Instead of manually defining credentials for pods, pod-managed identities request an access token in real time, using it to access only their assigned resources. In AKS, there are two components that handle the operations to allow pods to use managed identities:
156156

articles/aks/use-azure-ad-pod-identity.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,9 @@ az identity delete -g ${IDENTITY_RESOURCE_GROUP} -n ${IDENTITY_NAME}
297297

298298
For more information on managed identities, see [Managed identities for Azure resources][az-managed-identities].
299299

300+
<!-- LINKS - internal -->
301+
[workload-identity-overview]: workload-identity-overview.md
302+
300303
<!-- LINKS - external -->
301304
[az-aks-create]: /cli/azure/aks#az_aks_create
302305
[az-aks-get-credentials]: /cli/azure/aks#az_aks_get_credentials

0 commit comments

Comments
 (0)