Skip to content

Commit 1a32646

Browse files
committed
Merge branch 'master' of https://github.com/MicrosoftDocs/azure-docs-pr into rolyon-landing-sdks
2 parents ff7786f + f571e09 commit 1a32646

File tree

4 files changed

+177
-22
lines changed

4 files changed

+177
-22
lines changed

articles/aks/use-multiple-node-pools.md

Lines changed: 97 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ title: Use multiple node pools in Azure Kubernetes Service (AKS)
33
description: Learn how to create and manage multiple node pools for a cluster in Azure Kubernetes Service (AKS)
44
services: container-service
55
ms.topic: article
6-
ms.date: 02/14/2020
6+
ms.date: 03/10/2020
77

88
---
99

1010
# Create and manage multiple node pools for a cluster in Azure Kubernetes Service (AKS)
1111

12-
In Azure Kubernetes Service (AKS), nodes of the same configuration are grouped together into *node pools*. These node pools contain the underlying VMs that run your applications. The initial number of nodes and their size (SKU) are defined when you create an AKS cluster, which creates a *default node pool*. To support applications that have different compute or storage demands, you can create additional node pools. For example, use these additional node pools to provide GPUs for compute-intensive applications, or access to high-performance SSD storage.
12+
In Azure Kubernetes Service (AKS), nodes of the same configuration are grouped together into *node pools*. These node pools contain the underlying VMs that run your applications. The initial number of nodes and their size (SKU) is defined when you create an AKS cluster, which creates a *default node pool*. To support applications that have different compute or storage demands, you can create additional node pools. For example, use these additional node pools to provide GPUs for compute-intensive applications, or access to high-performance SSD storage.
1313

1414
> [!NOTE]
1515
> This feature enables higher control over how to create and manage multiple node pools. As a result, separate commands are required for create/update/delete. Previously cluster operations through `az aks create` or `az aks update` used the managedCluster API and were the only option to change your control plane and a single node pool. This feature exposes a separate operation set for agent pools through the agentPool API and require use of the `az aks nodepool` command set to execute operations on an individual node pool.
@@ -29,8 +29,8 @@ The following limitations apply when you create and manage AKS clusters that sup
2929
* The AKS cluster must use the Standard SKU load balancer to use multiple node pools, the feature is not supported with Basic SKU load balancers.
3030
* The AKS cluster must use virtual machine scale sets for the nodes.
3131
* The name of a node pool may only contain lowercase alphanumeric characters and must begin with a lowercase letter. For Linux node pools the length must be between 1 and 12 characters, for Windows node pools the length must be between 1 and 6 characters.
32-
* All node pools must reside in the same vnet and subnet.
33-
* When creating multiple node pools at cluster create time, all Kubernetes versions used by node pools must match the version set for the control plane. This can be updated after the cluster has been provisioned by using per node pool operations.
32+
* All node pools must reside in the same virtual network and subnet.
33+
* When creating multiple node pools at cluster create time, all Kubernetes versions used by node pools must match the version set for the control plane. This version can be updated after the cluster has been provisioned by using per node pool operations.
3434

3535
## Create an AKS cluster
3636

@@ -191,11 +191,11 @@ An AKS cluster has two cluster resource objects with Kubernetes versions associa
191191

192192
A control plane maps to one or many node pools. The behavior of an upgrade operation depends on which Azure CLI command is used.
193193

194-
Upgrading an AKS control plane requires using `az aks upgrade`. This upgrades the control plane version and all node pools in the cluster.
194+
Upgrading an AKS control plane requires using `az aks upgrade`. This command upgrades the control plane version and all node pools in the cluster.
195195

196196
Issuing the `az aks upgrade` command with the `--control-plane-only` flag upgrades only the cluster control plane. None of the associated node pools in the cluster are changed.
197197

198-
Upgrading individual node pools requires using `az aks nodepool upgrade`. This upgrades only the target node pool with the specified Kubernetes version
198+
Upgrading individual node pools requires using `az aks nodepool upgrade`. This command upgrades only the target node pool with the specified Kubernetes version
199199

200200
### Validation rules for upgrades
201201

@@ -208,7 +208,7 @@ The valid Kubernetes upgrades for a cluster's control plane and node pools are v
208208

209209
* Rules for submitting an upgrade operation:
210210
* You cannot downgrade the control plane or a node pool Kubernetes version.
211-
* If a node pool Kubernetes version is not specified, behavior depends on the client being used. Declaration in Resource Manager templates fall back to the existing version defined for the node pool if used, if none is set the control plane version is used to fall back on.
211+
* If a node pool Kubernetes version is not specified, behavior depends on the client being used. Declaration in Resource Manager templates falls back to the existing version defined for the node pool if used, if none is set the control plane version is used to fall back on.
212212
* You can either upgrade or scale a control plane or a node pool at a given time, you cannot submit multiple operations on a single control plane or node pool resource simultaneously.
213213

214214
## Scale a node pool manually
@@ -445,12 +445,50 @@ Events:
445445

446446
Only pods that have this taint applied can be scheduled on nodes in *gpunodepool*. Any other pod would be scheduled in the *nodepool1* node pool. If you create additional node pools, you can use additional taints and tolerations to limit what pods can be scheduled on those node resources.
447447

448-
## Specify a tag for a node pool
448+
## Specify a taint, label, or tag for a node pool
449449

450-
You can apply an Azure tag to node pools in your AKS cluster. Tags applied to a node pool are applied to each node within the node pool and are persisted through upgrades. Tags are also applied to new nodes added to a node pool during scale out operations. Adding a tag can help with tasks such as policy tracking or cost estimation.
450+
When creating a node pool, you can add taints, labels, or tags to that node pool. When you add a taint, label, or tag, all nodes within that node pool also get that taint, label, or tag.
451+
452+
To create a node pool with a taint, use [az aks nodepool add][az-aks-nodepool-add]. Specify the name *taintnp* and use the `--node-taints` parameter to specify *sku=gpu:NoSchedule* for the taint.
453+
454+
```azurecli-interactive
455+
az aks nodepool add \
456+
--resource-group myResourceGroup \
457+
--cluster-name myAKSCluster \
458+
--name taintnp \
459+
--node-count 1 \
460+
--node-taints sku=gpu:NoSchedule \
461+
--no-wait
462+
```
463+
464+
The following example output from the [az aks nodepool list][az-aks-nodepool-list] command shows that *taintnp* is *Creating* nodes with the specified *nodeTaints*:
465+
466+
```console
467+
$ az aks nodepool list -g myResourceGroup --cluster-name myAKSCluster
468+
469+
[
470+
{
471+
...
472+
"count": 1,
473+
...
474+
"name": "taintnp",
475+
"orchestratorVersion": "1.15.7",
476+
...
477+
"provisioningState": "Creating",
478+
...
479+
"nodeTaints": {
480+
"sku": "gpu:NoSchedule"
481+
},
482+
...
483+
},
484+
...
485+
]
486+
```
487+
488+
The taint information is visible in Kubernetes for handling scheduling rules for nodes.
451489

452490
> [!IMPORTANT]
453-
> To use node pool tags, you need the *aks-preview* CLI extension version 0.4.29 or higher. Install the *aks-preview* Azure CLI extension using the [az extension add][az-extension-add] command, then check for any available updates using the [az extension update][az-extension-update] command:
491+
> To use node pool labels and tags, you need the *aks-preview* CLI extension version 0.4.35 or higher. Install the *aks-preview* Azure CLI extension using the [az extension add][az-extension-add] command, then check for any available updates using the [az extension update][az-extension-update] command:
454492
>
455493
> ```azurecli-interactive
456494
> # Install the aks-preview extension
@@ -460,7 +498,51 @@ You can apply an Azure tag to node pools in your AKS cluster. Tags applied to a
460498
> az extension update --name aks-preview
461499
> ```
462500

463-
Create a node pool using the [az aks node pool add][az-aks-nodepool-add]. Specify the name *tagnodepool* and use the `--tag` parameter to specify *dept=IT* and *costcenter=9999* for tags.
501+
You can also add labels to a node pool during node pool creation. Labels set at the node pool are added to each node in the node pool. These [labels are visible in Kubernetes][kubernetes-labels] for handling scheduling rules for nodes.
502+
503+
To create a node pool with a label, use [az aks nodepool add][az-aks-nodepool-add]. Specify the name *labelnp* and use the `--labels` parameter to specify *dept=IT* and *costcenter=9999* for labels.
504+
505+
```azurecli-interactive
506+
az aks nodepool add \
507+
--resource-group myResourceGroup \
508+
--cluster-name myAKSCluster \
509+
--name labelnp \
510+
--node-count 1 \
511+
--labels dept=IT costcenter=9999 \
512+
--no-wait
513+
```
514+
515+
> [!NOTE]
516+
> Label can only be set for node pools during node pool creation. Labels must also be a key/value pair and have a [valid syntax][kubernetes-label-syntax].
517+
518+
The following example output from the [az aks nodepool list][az-aks-nodepool-list] command shows that *labelnp* is *Creating* nodes with the specified *nodeLabels*:
519+
520+
```console
521+
$ az aks nodepool list -g myResourceGroup --cluster-name myAKSCluster
522+
523+
[
524+
{
525+
...
526+
"count": 1,
527+
...
528+
"name": "labelnp",
529+
"orchestratorVersion": "1.15.7",
530+
...
531+
"provisioningState": "Creating",
532+
...
533+
"nodeLabels": {
534+
"dept": "IT",
535+
"costcenter": "9999"
536+
},
537+
...
538+
},
539+
...
540+
]
541+
```
542+
543+
You can apply an Azure tag to node pools in your AKS cluster. Tags applied to a node pool are applied to each node within the node pool and are persisted through upgrades. Tags are also applied to new nodes added to a node pool during scale-out operations. Adding a tag can help with tasks such as policy tracking or cost estimation.
544+
545+
Create a node pool using the [az aks nodepool add][az-aks-nodepool-add]. Specify the name *tagnodepool* and use the `--tag` parameter to specify *dept=IT* and *costcenter=9999* for tags.
464546

465547
```azurecli-interactive
466548
az aks nodepool add \
@@ -613,13 +695,13 @@ It may take a few minutes to update your AKS cluster depending on the node pool
613695
> [!WARNING]
614696
> During the preview of assigning a public IP per node, it cannot be used with the *Standard Load Balancer SKU in AKS* due to possible load balancer rules conflicting with VM provisioning. As a result of this limitation, Windows agent pools are not supported with this preview feature. While in preview you must use the *Basic Load Balancer SKU* if you need to assign a public IP per node.
615697

616-
AKS nodes do not require their own public IP addresses for communication. However, some scenarios may require nodes in a node pool to have their own public IP addresses. An example is gaming, where a console needs to make a direct connection to a cloud virtual machine to minimize hops. This can be achieved by registering for a separate preview feature, Node Public IP (preview).
698+
AKS nodes do not require their own public IP addresses for communication. However, some scenarios may require nodes in a node pool to have their own public IP addresses. An example is gaming, where a console needs to make a direct connection to a cloud virtual machine to minimize hops. This scenario can be achieved by registering for a separate preview feature, Node Public IP (preview).
617699

618700
```azurecli-interactive
619701
az feature register --name NodePublicIPPreview --namespace Microsoft.ContainerService
620702
```
621703

622-
After successful registration, deploy an Azure Resource Manager template following the same instructions as [above](#manage-node-pools-using-a-resource-manager-template) and add the boolean value property `enableNodePublicIP` to agentPoolProfiles. Set the value to `true` as by default it is set as `false` if not specified. This is a create-time only property and requires a minimum API version of 2019-06-01. This can be applied to both Linux and Windows node pools.
704+
After successful registration, deploy an Azure Resource Manager template following the same instructions as [above](#manage-node-pools-using-a-resource-manager-template) and add the boolean value property `enableNodePublicIP` to agentPoolProfiles. Set the value to `true` as by default it is set as `false` if not specified. This property is a create-time only property and requires a minimum API version of 2019-06-01. This can be applied to both Linux and Windows node pools.
623705

624706
## Clean up resources
625707

@@ -648,6 +730,8 @@ To create and use Windows Server container node pools, see [Create a Windows Ser
648730
[kubectl-get]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get
649731
[kubectl-taint]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#taint
650732
[kubectl-describe]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#describe
733+
[kubernetes-labels]: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
734+
[kubernetes-label-syntax]: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set
651735

652736
<!-- INTERNAL LINKS -->
653737
[aks-windows]: windows-container-cli.md

articles/batch/quick-create-portal.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ This quickstart shows how to use the Azure portal to create a Batch account, a *
2020

2121
## Sign in to Azure
2222

23-
Sign in to the Azure portal at https://portal.azure.com.
23+
Sign in to the Azure portal at [https://portal.azure.com](https://portal.azure.com).
2424

2525
## Create a Batch account
2626

@@ -149,4 +149,4 @@ In this quickstart, you created a Batch account, a Batch pool, and a Batch job.
149149

150150
[task_create]: ./media/quick-create-portal/task-create.png
151151

152-
[task_output]: ./media/quick-create-portal/task-output.png
152+
[task_output]: ./media/quick-create-portal/task-output.png

articles/key-vault/private-link-service.md

Lines changed: 77 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
title: Integrate with Azure Private Link Service
33
description: Learn how to integrate Azure Key Vault with Azure Private Link Service
4-
author: msmbaldwin
5-
ms.author: mbaldwin
6-
ms.date: 01/28/2020
4+
author: ShaneBala-keyvault
5+
ms.author: sudbalas
6+
ms.date: 03/08/2020
77
ms.service: key-vault
88
ms.topic: quickstart
99

1010
---
1111

12-
# Integrate Key Vault with Azure Private Link (Preview)
12+
# Integrate Key Vault with Azure Private Link
1313

1414
Azure Private Link Service enables you to access Azure Services (for example, Azure Key Vault, Azure Storage, and Azure Cosmos DB) and Azure hosted customer/partner services over a Private Endpoint in your virtual network.
1515

@@ -30,7 +30,7 @@ Your private endpoint and virtual network must be in the same region. When you s
3030

3131
Your private endpoint uses a private IP address in your virtual network.
3232

33-
## Establish a private link connection to key vault
33+
## Establish a private link connection to Key Vault using the Azure portal
3434

3535
First, create a virtual network by following the steps in [Create a virtual network using the Azure portal](../virtual-network/quick-create-portal.md)
3636

@@ -77,6 +77,60 @@ You can choose to create a private endpoint for any Azure resource in using this
7777
![Image](./media/private-link-service-3.png)
7878
![Image](./media/private-link-service-4.png)
7979

80+
## Establish a private link connection to Key Vault using CLI
81+
82+
### Login to Azure CLI
83+
```console
84+
az login
85+
```
86+
### Select your Azure Subscription
87+
```console
88+
az account set --subscription {AZURE SUBSCRIPTION ID}
89+
```
90+
### Create a new Resource Group
91+
```console
92+
az group create -n {RG} -l {AZURE REGION}
93+
```
94+
### Register Microsoft.KeyVault as a provider
95+
```console
96+
az provider register -n Microsoft.KeyVault
97+
```
98+
### Create a new Key Vault
99+
```console
100+
az keyvault create --name {KEY VAULT NAME} --resource-group {RG} --location {AZURE REGION}
101+
```
102+
### Create a Virtual Network
103+
```console
104+
az network vnet create --resource-group {RG} --name {vNet NAME} --location {AZURE REGION}
105+
```
106+
### Add a subnet
107+
```console
108+
az network vnet subnet create --resource-group {RG} --vnet-name {vNet NAME} --name {subnet NAME} --address-prefixes {addressPrefix}
109+
```
110+
### Disable Virtual Network Policies
111+
```console
112+
az network vnet subnet update --name {subnet NAME} --resource-group {RG} --vnet-name {vNet NAME} --disable-private-endpoint-network-policies true
113+
```
114+
### Add a Private DNS Zone
115+
```console
116+
az network private-dns zone create --resource-group {RG} --name privatelink.vaultcore.azure.net
117+
```
118+
### Link Private DNS Zone to Virtual Network
119+
```console
120+
az network private-dns link vnet create --resoruce-group {RG} --virtual-network {vNet NAME} --zone-name privatelink.vaultcore.azure.net --name {dnsZoneLinkName} --registration-enabled true
121+
```
122+
### Create a Private Endpoint (Automatically Approve)
123+
```console
124+
az network private-endpoint create --resource-group {RG} --vnet-name {vNet NAME} --subnet {subnet NAME} --name {Private Endpoint Name} --private-connection-resource-id "/subscriptions/{AZURE SUBSCRIPTION ID}/resourceGroups/{RG}/providers/Microsoft.KeyVault/vaults/ {KEY VAULT NAME}" --group-ids vault --connection-name {Private Link Connection Name} --location {AZURE REGION}
125+
```
126+
### Create a Private Endpoint (Manually Request Approval)
127+
```console
128+
az network private-endpoint create --resource-group {RG} --vnet-name {vNet NAME} --subnet {subnet NAME} --name {Private Endpoint Name} --private-connection-resource-id "/subscriptions/{AZURE SUBSCRIPTION ID}/resourceGroups/{RG}/providers/Microsoft.KeyVault/vaults/ {KEY VAULT NAME}" --group-ids vault --connection-name {Private Link Connection Name} --location {AZURE REGION} --manual-request
129+
```
130+
### Show Connection Status
131+
```console
132+
az network private-endpoint show --resource-group {RG} --name {Private Endpoint Name}
133+
```
80134
## Manage private link connection
81135

82136
When you create a private endpoint, the connection must be approved. If the resource for which you are creating a private endpoint is in your directory, you will be able to approve the connection request provided you have sufficient permissions; if you are connecting to an Azure resource in another directory, you must wait for the owner of that resource to approve your connection request.
@@ -90,7 +144,7 @@ There are four provisioning states:
90144
| Reject | Rejected | Connection was rejected by the private link resource owner. |
91145
| Remove | Disconnected | Connection was removed by the private link resource owner, the private endpoint becomes informative and should be deleted for cleanup. |
92146

93-
### How to manage a private endpoint connection to key vault
147+
### How to manage a private endpoint connection to Key Vault using the Azure portal
94148

95149
1. Log in to the Azure portal.
96150
1. In the search bar, type in "key vaults"
@@ -103,6 +157,23 @@ There are four provisioning states:
103157

104158
![Image](./media/private-link-service-7.png)
105159

160+
## How to manage a private endpoint connection to Key Vault using Azure CLI
161+
162+
### Approve a Private Link Connection Request
163+
```console
164+
az keyvault private-endpoint-connection approve --approval-description {"OPTIONAL DESCRIPTION"} --resource-group {RG} --vault-name {KEY VAULT NAME} –name {PRIVATE LINK CONNECTION NAME}
165+
```
166+
167+
### Deny a Private Link Connection Request
168+
```console
169+
az keyvault private-endpoint-connection reject --rejection-description {"OPTIONAL DESCRIPTION"} --resource-group {RG} --vault-name {KEY VAULT NAME} –name {PRIVATE LINK CONNECTION NAME}
170+
```
171+
172+
### Delete a Private Link Connection Request
173+
```console
174+
az keyvault private-endpoint-connection delete --resource-group {RG} --vault-name {KEY VAULT NAME} --name {PRIVATE LINK CONNECTION NAME}
175+
```
176+
106177
## Validate that the private link connection works
107178

108179
You should validate that the resources within the same subnet of the private endpoint resource are connecting to your key vault over a private IP address, and that they have the correct private DNS zone integration.

articles/machine-learning/how-to-save-write-experiment-files.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ms.service: machine-learning
1111
ms.subservice: core
1212
ms.workload: data-services
1313
ms.topic: conceptual
14-
ms.date: 11/04/2019
14+
ms.date: 03/10/2020
1515

1616
---
1717
# Where to save and write files for Azure Machine Learning experiments

0 commit comments

Comments
 (0)