Skip to content

Commit 368950d

Browse files
authored
Merge pull request #16605 from MicrosoftDocs/main
12/17/2024 AM Publish
2 parents b8317c6 + bb35ab8 commit 368950d

File tree

5 files changed

+13
-331
lines changed

5 files changed

+13
-331
lines changed

AKS-Hybrid/TOC.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,6 @@
6060
href: create-clusters-bicep.md
6161
- name: Terraform
6262
href: create-clusters-terraform.md
63-
- name: Quickstart template
64-
href: /samples/azure/azure-quickstart-templates/aks-on-ashci
6563
- name: Azure Resource Manager template
6664
href: resource-manager-quickstart.md
6765
- name: Networking

AKS-Hybrid/create-clusters-terraform.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ms.date: 11/15/2024
1010

1111
# Create Kubernetes clusters using Terraform (preview)
1212

13-
This article describes how to create Kubernetes cluster in Azure Local using Terraform and Azure Verified Module. Th workflow is as follows:
13+
This article describes how to create Kubernetes clusters in Azure Local using Terraform and the Azure Verified Module. The workflow is as follows:
1414

1515
- Create an SSH key pair.
1616
- Create a Kubernetes cluster in Azure Local 23H2 using Terraform. By default, the cluster is Azure Arc-connected.

AKS-Hybrid/resource-manager-quickstart.md

Lines changed: 5 additions & 321 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Deploy a Kubernetes (AKS) cluster using an Azure Resource Manager templat
33
description: Learn how to deploy a Kubernetes cluster in AKS enabled by Azure Arc using an Azure Resource Manager template.
44
ms.topic: quickstart-arm
55
ms.custom: devx-track-arm-template, devx-track-azurecli
6-
ms.date: 12/06/2024
6+
ms.date: 12/17/2024
77
author: sethmanheim
88
ms.author: sethm
99
ms.lastreviewed: 01/31/2024
@@ -66,274 +66,7 @@ For more information about creating SSH keys, see [Create and manage SSH keys fo
6666

6767
## Step 3: Review the template
6868

69-
Create one file on your local machine named **azuredeploy.json** and another one named **parameters.json**. Make sure all the default values and input parameters are correct:
70-
71-
### azuredeploy.json
72-
73-
```json
74-
{
75-
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
76-
"contentVersion": "1.0.0.0",
77-
"parameters": {
78-
"provisionedClusterName": {
79-
"type": "string",
80-
"defaultValue": "aksarc-armcluster",
81-
"metadata": {
82-
"description": "The name of the AKS Arc cluster resource."
83-
}
84-
},
85-
"location": {
86-
"type": "string",
87-
"defaultValue": "eastus",
88-
"metadata": {
89-
"description": "The location of the AKS Arc cluster resource."
90-
}
91-
},
92-
"resourceTags": {
93-
"type": "object",
94-
"defaultValue": {}
95-
},
96-
"connectedClustersApiVersion": {
97-
"type": "String",
98-
"defaultValue": ""
99-
},
100-
"provisionedClustersApiVersion": {
101-
"type": "String",
102-
"defaultValue": ""
103-
},
104-
105-
"sshRSAPublicKey": {
106-
"type": "string",
107-
"metadata": {
108-
"description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH '"
109-
}
110-
},
111-
"enableAHUB": {
112-
"type": "string",
113-
"defaultValue": "NotApplicable",
114-
"metadata": {
115-
"description": "Azure Hybrid Benefit for Windows Server licenses. NotApplicable, True, False."
116-
}
117-
},
118-
"agentName": {
119-
"type": "string",
120-
"defaultValue": "nodepool",
121-
"metadata": {
122-
"description": "The name of the node pool."
123-
}
124-
},
125-
"agentVMSize": {
126-
"type": "string",
127-
"defaultValue": "Standard_A4_v2",
128-
"metadata": {
129-
"description": "The VM size for node pool."
130-
}
131-
},
132-
"agentCount": {
133-
"type": "int",
134-
"defaultValue": 1,
135-
"minValue": 1,
136-
"maxValue": 50,
137-
"metadata": {
138-
"description": "The size of the node pool"
139-
}
140-
},
141-
"agentOsType": {
142-
"type": "string",
143-
"defaultValue": "Linux",
144-
"metadata": {
145-
"description": "The OS Type for the node pool. The values can be Linux or Windows."
146-
}
147-
},
148-
"loadBalancerCount": {
149-
"type": "int",
150-
"defaultValue": 0,
151-
"metadata": {
152-
"description": "The number of load balancers."
153-
}
154-
},
155-
"kubernetesVersion": {
156-
"type": "string",
157-
"metadata": {
158-
"description": "The version of Kubernetes."
159-
}
160-
},
161-
"controlPlaneNodeCount": {
162-
"type": "int",
163-
"defaultValue": 1,
164-
"minValue": 1,
165-
"maxValue": 5,
166-
"metadata": {
167-
"description": "The number of control plane nodes."
168-
}
169-
},
170-
"controlPlaneIp": {
171-
"type": "string",
172-
"defaultValue": "<default_value>",
173-
"metadata": {
174-
"description": "Control plane IP address. This parameter is optional."
175-
}
176-
},
177-
"controlPlaneVMSize": {
178-
"type": "string",
179-
"defaultValue": "Standard_A4_v2",
180-
"metadata": {
181-
"description": "The VM size for control plane nodes."
182-
}
183-
},
184-
"vnetSubnetIds": {
185-
"type": "array",
186-
"metadata": {
187-
"description": "List of subnet IDs for the AKS cluster."
188-
}
189-
},
190-
"podCidr": {
191-
"type": "string",
192-
"defaultValue": "10.244.0.0/16",
193-
"metadata": {
194-
"description": "The CIDR notation IP ranges from which to assign pod IPs."
195-
}
196-
},
197-
"networkPolicy": {
198-
"type": "string",
199-
"defaultValue": "calico",
200-
"metadata": {
201-
"description": "Network policy to use for Kubernetes pods. Calico is the only supported option."
202-
}
203-
},
204-
"customLocation": {
205-
"type": "string",
206-
"metadata": {
207-
"description": "The Azure Resource Manager ID of the custom location in the target Azure Local cluster."
208-
}
209-
}
210-
},
211-
"resources": [
212-
{
213-
"apiVersion": "[parameters('connectedClustersApiVersion')]",
214-
"type": "Microsoft.Kubernetes/ConnectedClusters",
215-
"kind": "ProvisionedCluster",
216-
"location": "[parameters('location')]",
217-
"name": "[parameters('provisionedClusterName')]",
218-
"tags": "[parameters('resourceTags')]",
219-
"identity": {
220-
"type": "SystemAssigned"
221-
},
222-
"properties": {
223-
"agentPublicKeyCertificate":"" ,
224-
"aadProfile": {
225-
"enableAzureRBAC": false
226-
},
227-
"securityProfile": {
228-
"workloadIdentity": {
229-
"enabled": true
230-
}
231-
},
232-
"oidcIssuerProfile" : {
233-
"enabled" : true
234-
}
235-
}
236-
},
237-
{
238-
"apiVersion": "[parameters('provisionedClustersApiVersion')]",
239-
"type": "microsoft.hybridcontainerservice/provisionedclusterinstances",
240-
"name": "default",
241-
"scope": "[concat('Microsoft.Kubernetes/ConnectedClusters', '/', parameters('provisionedClusterName'))]",
242-
"dependsOn": [
243-
"[resourceId('Microsoft.Kubernetes/ConnectedClusters', parameters('provisionedClusterName'))]"
244-
],
245-
"properties": {
246-
"agentPoolProfiles": [
247-
{
248-
"count": "[parameters('agentCount')]",
249-
"name":"[parameters('agentName')]",
250-
"osType": "[parameters('agentOsType')]",
251-
"vmSize": "[parameters('agentVMSize')]"
252-
}
253-
],
254-
"cloudProviderProfile": {
255-
"infraNetworkProfile": {
256-
"vnetSubnetIds": "[parameters('vnetSubnetIds')]"
257-
}
258-
},
259-
"controlPlane": {
260-
"count": "[parameters('controlPlaneNodeCount')]",
261-
"controlPlaneEndpoint": {
262-
"hostIP": "[parameters('controlPlaneIp')]"
263-
},
264-
"vmSize": "[parameters('controlPlaneVMSize')]"
265-
},
266-
"licenseProfile": {
267-
"azureHybridBenefit": "[parameters('enableAHUB')]"
268-
},
269-
"kubernetesVersion": "[parameters('kubernetesVersion')]",
270-
"linuxProfile": {
271-
"ssh": {
272-
"publicKeys": [
273-
{
274-
"keyData": "[parameters('sshRSAPublicKey')]"
275-
}
276-
]
277-
}
278-
},
279-
"networkProfile": {
280-
"loadBalancerProfile": {
281-
"count": "[parameters('loadBalancerCount')]"
282-
},
283-
"networkPolicy": "[parameters('networkPolicy')]",
284-
"podCidr": "[parameters('podCidr')]"
285-
},
286-
"storageProfile": {
287-
"nfsCsiDriver": {
288-
"enabled": true
289-
},
290-
"smbCsiDriver": {
291-
"enabled": true
292-
}
293-
}
294-
},
295-
"extendedLocation": {
296-
"name": "[parameters('customLocation')]",
297-
"type": "CustomLocation"
298-
}
299-
}
300-
]
301-
}
302-
```
303-
304-
### parameters.json
305-
306-
```json
307-
{
308-
"$schema":"https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
309-
"contentVersion":"1.0.0.0",
310-
"parameters":{
311-
"provisionedClusterName":{
312-
"value":"AKSArc_Cluster_Name"
313-
},
314-
"location":{
315-
"value":"eastus"
316-
},
317-
"sshRSAPublicKey":{
318-
"value":"Your_SSH_RSA_Public_Key"
319-
},
320-
"provisionedClustersApiVersion":{
321-
"value":"2024-01-01"
322-
},
323-
"connectedClustersApiVersion":{
324-
"value":"2024-07-15-preview"
325-
},
326-
"vnetSubnetIds":{
327-
"value":[
328-
"VNET_Subnet_ARM_ID"
329-
]
330-
},
331-
"customLocation":{
332-
"value":"Custom_Location_ARM_ID"
333-
}
334-
}
335-
}
336-
```
69+
Download the template and parameter files from the [AKSArc repo](https://github.com/Azure/aksArc/tree/main/deploymentTemplates) to your local machine. Review all the default values and ensure they are correct.
33770

33871
## Step 4: Deploy the template
33972

@@ -344,7 +77,7 @@ az deployment group create \
34477
--name "<deployment-name>" \
34578
--resource-group "<resource-group-name>" \
34679
--template-file "azuredeploy.json" \
347-
--parameters "parameters.json"
80+
--parameters "azuredeploy.parameters.json"
34881
```
34982

35083
It takes a few minutes to create the cluster. Wait for the cluster to be successfully deployed before you move on to the next step.
@@ -390,56 +123,7 @@ az aksarc show --resource-group "<resource-group-name>" --name "<cluster-name>"
390123

391124
## Step 7: Deploy node pool using an Azure Resource Manager template (optional)
392125

393-
You can also deploy the node pool resource using an ARM template. Save the following template locally as **azuredeploy.json**:
394-
395-
```json
396-
{
397-
"$schema":"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
398-
"contentVersion":"1.0.0.0",
399-
"parameters":{
400-
"provisionedClusterName":{
401-
"type":"string"
402-
},
403-
"agentName":{
404-
"type":"string"
405-
},
406-
"agentVMSize":{
407-
"type":"string"
408-
},
409-
"agentCount":{
410-
"type":"int"
411-
},
412-
"agentOsType":{
413-
"type":"string"
414-
},
415-
"location":{
416-
"type":"string"
417-
}
418-
},
419-
"resources":[
420-
{
421-
"type":"Microsoft.Kubernetes/connectedClusters",
422-
"apiVersion":"2024-01-01",
423-
"name":"[parameters('provisionedClusterName')]",
424-
"location":"[parameters('location')]",
425-
"condition":false
426-
},
427-
{
428-
"type":"Microsoft.HybridContainerService/provisionedClusterInstances/agentPools",
429-
"apiVersion":"2024-01-01",
430-
"name":"[concat('default/', parameters('agentName'))]",
431-
"dependsOn":[
432-
"[resourceId('Microsoft.Kubernetes/connectedClusters', parameters('provisionedClusterName'))]"
433-
],
434-
"properties":{
435-
"count":"[parameters('agentCount')]",
436-
"osType":"[parameters('agentOsType')]",
437-
"vmSize":"[parameters('agentVMSize')]"
438-
}
439-
}
440-
]
441-
}
442-
```
126+
Similiar to step 3, download the node pool template and parameters from the [AKSArc repo](https://github.com/Azure/aksArc/tree/main/deploymentTemplates) and review the default values.
443127

444128
### Deploy the template and validate results using Azure CLI (optional)
445129

@@ -450,7 +134,7 @@ az deployment group create \
450134
--name "<deployment-name>" \
451135
--resource-group "<resource-group-name>" \
452136
--template-file "azuredeploy.json" \
453-
--parameters provisionedClusterName=<cluster-name> agentName=<nodepool-name> agentVMSize=Standard_A4_v2 agentCount=3 agentOsType=Linux location=eastus
137+
--parameters "azuredeploy.parameters.json"
454138
```
455139

456140
```azurecli

azure-local/manage/azure-arc-vm-management-overview.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ ms.author: alkohli
66
ms.topic: how-to
77
ms.service: azure-stack-hci
88
ms.custom: linux-related-content
9-
ms.date: 12/13/2024
9+
ms.date: 12/16/2024
1010
---
1111

1212
# What is Azure Arc VM management?
@@ -44,6 +44,7 @@ Consider the following limitations when managing Arc VMs on Azure Local:
4444

4545
- You can't take checkpoints on Arc VMs running on Azure Local using on-premises tools, such as Windows Admin Center or Hyper-V Manager.
4646
- Updates to Arc VM configurations, such as vCPU, memory, adding network interface or data disk via on-premises tools won't reflect in the Azure portal.
47+
- Resource group move isn't supported for Arc VMs on Azure Local and the associated resources.
4748

4849
## Components of Azure Arc VM management
4950

0 commit comments

Comments
 (0)