Skip to content

Commit 771d5e8

Browse files
committed
Merge branch 'patch-70' of https://github.com/abhilashaagarwala/azure-stack-docs-pr into aa-contrib
2 parents 427b528 + 843a68c commit 771d5e8

12 files changed

+284
-39
lines changed

AKS-Hybrid/TOC.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
href: resource-manager-quickstart.md
6363
- name: Networking
6464
items:
65-
- name: Create logical networks for Kubernetes clusters
65+
- name: Create logical networks
6666
href: aks-networks.md
6767
- name: Use MetalLB load balancer
6868
items:
@@ -72,6 +72,8 @@
7272
href: deploy-load-balancer-portal.md
7373
# - name: Troubleshoot issues
7474
# href: load-balancer-troubleshoot.md
75+
- name: Use Arc Gateway
76+
href: arc-gateway-aks-arc.md
7577
- name: Authentication and authorization
7678
items:
7779
- name: Enable Microsoft Entra ID authentication for Kubernetes clusters

AKS-Hybrid/aks-create-clusters-cli.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ az extension add -n connectedk8s --upgrade
4747
Use the `az aksarc create` command to create a Kubernetes cluster in AKS Arc. Make sure you sign in to Azure before running this command. If you have multiple Azure subscriptions, select the appropriate subscription ID using the [az account set](/cli/azure/account#az-account-set) command.
4848

4949
```azurecli
50-
az aksarc create -n $aksclustername -g $resource_group --custom-location $customlocationID --vnet-ids $logicnetId --aad-admin-group-object-ids $aadgroupID --generate-ssh-keys --load-balancer-count 0 --control-plane-ip $controlplaneIP
50+
az aksarc create -n $aksclustername -g $resource_group --custom-location $customlocationID --vnet-ids $logicnetId --aad-admin-group-object-ids $aadgroupID --generate-ssh-keys
5151
```
5252

5353
After a few minutes, the command completes and returns JSON-formatted information about the cluster.

AKS-Hybrid/aks-hci-ip-address-planning.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ In the following scenario walk-through, you reserve IP addresses from a single n
2222

2323
| IP address requirement | Minimum number of IP addresses | How and where to make this reservation |
2424
|------------------|---------|---------------|
25-
| AKS Arc VM IPs | Reserve one IP address for every worker node in your Kubernetes cluster. For example, if you want to create 3 node pools with 3 nodes in each node pool, you need to have 9 IP addresses in your IP pool. | Reserve IP addresses for AKS Arc VMs through IP pools in Arc VM logical network. |
26-
| AKS Arc K8s version upgrade IPs | Because AKS Arc performs rolling upgrades, reserve one IP address for every AKS Arc cluster for Kubernetes version upgrade operations. | Reserve IP addresses for K8s version upgrade operations through IP pools in Arc VM logical networks. |
27-
| Control plane IP | Reserve one IP address for every Kubernetes cluster in your environment. For example, if you want to create 5 clusters in total, reserve 5 IP addresses, one for each Kubernetes cluster. | Reserve IP addresses for control plane IPs in the same subnet as the Arc VM logical network, but outside the specified IP pool. |
28-
| Load balancer IPs | The number of IP addresses reserved depends on your application deployment model. As a starting point, you can reserve one IP address for every Kubernetes service. | Reserve IP addresses for control plane IPs in the same subnet as the Arc VM logical network, but outside the specified IP pool. |
25+
| AKS Arc VM IPs | Reserve one IP address for every worker node in your Kubernetes cluster. For example, if you want to create 3 node pools with 3 nodes in each node pool, you need to have 9 IP addresses in your IP pool. | Reserve IP addresses through IP pools in Arc VM logical network. |
26+
| AKS Arc K8s version upgrade IPs | Because AKS Arc performs rolling upgrades, reserve one IP address for every AKS Arc cluster for Kubernetes version upgrade operations. | Reserve IP addresses through IP pools in Arc VM logical network. |
27+
| Control plane IP | Reserve one IP address for every Kubernetes cluster in your environment. For example, if you want to create 5 clusters in total, reserve 5 IP addresses, one for each Kubernetes cluster. | Reserve IP addresses through IP pools in Arc VM logical network. |
28+
| Load balancer IPs | The number of IP addresses reserved depends on your application deployment model. As a starting point, you can reserve one IP address for every Kubernetes service. | Reserve IP addresses in the same subnet as the Arc VM logical network, but outside the IP pool. |
2929

3030
### Example walkthrough for IP address reservation for Kubernetes clusters and applications
3131

@@ -48,8 +48,7 @@ Continuing with this example, and adding it to the following table, you get:
4848

4949
| Parameter | Number of IP addresses | How and where to make this reservation |
5050
|------------------|---------|---------------|
51-
| AKS Arc VMs and K8s version upgrade | Reserve 14 IP addresses | Make this reservation through IP pools in the Azure Local logical network. |
52-
| Control plane IP | Reserve 2 IP addresses, one for AKS Arc cluster | Use the `controlPlaneIP` parameter to pass the IP address for control plane IP. Ensure that this IP is in the same subnet as the Arc logical network, but outside the IP pool defined in the Arc logical network. |
51+
| AKS Arc VMs, K8s version upgrade and control plane IP | Reserve 16 IP addresses | Make this reservation through IP pools in the Azure Local logical network. |
5352
| Load balancer IPs | 3 IP address for Kubernetes services, for Jane's voting application. | These IP addresses are used when you install a load balancer on cluster A. You can use the MetalLB Arc extension, or bring your own 3rd party load balancer. Ensure that this IP is in the same subnet as the Arc logical network, but outside the IP pool defined in the Arc VM logical network. |
5453

5554
### LNETs considerations for AKS clusters and Arc VMs

AKS-Hybrid/aks-hci-network-system-requirements.md

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,10 @@ This article introduces core networking concepts for your VMs and applications i
1717

1818
In this conceptual article, the following key components are introduced. These components need a static IP address in order for the AKS Arc cluster and applications to create and operate successfully:
1919

20-
- AKS cluster VMs
21-
- AKS control plane IP
20+
- Logical network for AKS Arc VMs and control plane IP
2221
- Load balancer for containerized applications
2322

24-
## Networking for AKS cluster VMs
23+
## Logical network for AKS Arc VMs and control plane IP
2524

2625
Kubernetes nodes are deployed as specialized virtual machines in AKS enabled by Arc. These VMs are allocated IP addresses to enable communication between Kubernetes nodes. AKS Arc uses Azure Local logical networks to provide IP addresses and networking for the underlying VMs of the Kubernetes clusters. For more information about logical networks, see [Logical networks for Azure Local](/azure-stack/hci/manage/create-logical-networks?tabs=azurecli). You must plan to reserve one IP address per AKS cluster node VM in your Azure Local environment.
2726

@@ -37,16 +36,13 @@ The following parameters are required in order to use a logical network for AKS
3736
| `--dns-servers` | Space-separated list of DNS server IP addresses. Usage: `--dns-servers 10.220.32.16 10.220.32.17`. | ![Supported](media/aks-hybrid-networks/check.png) |
3837
| `--gateway` | Gateway. The gateway IP address must be within the scope of the address prefix. Usage: `--gateway 10.220.32.16`. | ![Supported](media/aks-hybrid-networks/check.png) |
3938
| `--ip-allocation-method` | The IP address allocation method. Supported values are "Static". Usage: `--ip-allocation-method "Static"`. | ![Supported](media/aks-hybrid-networks/check.png) |
40-
| `--ip-pool-start` | The start IP address of your IP pool. The address must be in range of the address prefix. Usage: `--ip-pool-start "10.220.32.18"`. | ![Supported](media/aks-hybrid-networks/check.png) |
41-
| `--ip-pool-end` | The end IP address of your IP pool. The address must be in range of the address prefix. Usage: `--ip-pool-end "10.220.32.38"`. | ![Supported](media/aks-hybrid-networks/check.png) |
4239
| `--vm-switch-name` | The name of the VM switch. Usage: `--vm-switch-name "vm-switch-01"`. | ![Supported](media/aks-hybrid-networks/check.png) |
4340

44-
## Control plane IP
41+
### Control plane IP
4542

46-
Kubernetes uses a control plane to ensure every component in the Kubernetes cluster is kept in the desired state. The control plane also manages and maintains the worker nodes that hold the containerized applications. AKS enabled by Arc deploys the KubeVIP load balancer to ensure that the API server IP address of the Kubernetes control plane is available at all times. This KubeVIP instance requires a single immutable "control plane IP address" to function correctly.
43+
Kubernetes uses a control plane to ensure every component in the Kubernetes cluster is kept in the desired state. The control plane also manages and maintains the worker nodes that hold the containerized applications. AKS enabled by Arc deploys the KubeVIP load balancer to ensure that the API server IP address of the Kubernetes control plane is available at all times. This KubeVIP instance requires a single immutable "control plane IP address" to function correctly. AKS Arc automatically chooses a control plane IP for you from the logical network passed during the Kubernetes cluster create operation.
4744

48-
> [!NOTE]
49-
> The control plane IP is a required parameter to create a Kubernetes cluster. You must ensure that the control plane IP address of a Kubernetes cluster does not overlap with anything else, including Arc VM logical networks, infrastructure network IPs, load balancers, etc. The control plane IP also must be within the scope of the address prefix of the logical network, but outside the IP pool. This is because the IP pool is only used for VMs, and if you choose an IP address from the IP pool for the control plane, an IP address conflict can result. Overlapping IP addresses can lead to unexpected failures for both the AKS cluster and any other place the IP address is being used. You must plan to reserve one IP address per Kubernetes cluster in your environment.
45+
You also have the option of passing a control plane IP. In such cases, the control plane IP must be within the scope of the address prefix of the logical network. You must ensure that the control plane IP address does not overlap with anything else, including Arc VM logical networks, infrastructure network IPs, load balancers, etc. Overlapping IP addresses can lead to unexpected failures for both the AKS cluster and any other place the IP address is being used. You must plan to reserve one IP address per Kubernetes cluster in your environment.
5046

5147
## Load balancer IPs for containerized applications
5248

@@ -60,7 +56,7 @@ Whether you choose the Arc extension for MetalLB, or bring your own load balance
6056
- Provide IP addresses for your services from the same subnet as the AKS Arc VMs.
6157
- Use a different network and list of IP addresses if your application needs external load balancing.
6258

63-
Regardless of the option you choose, you must ensure that the IP addresses allocated to the load balancer don't conflict with the IP addresses in the logical network or control plane IPs for your Kubernetes clusters. Conflicting IP addresses can lead to unforeseen failures in your AKS deployment and applications.
59+
Regardless of the option you choose, you must ensure that the IP addresses allocated to the load balancer don't conflict with the IP addresses in the logical network. Conflicting IP addresses can lead to unforeseen failures in your AKS deployment and applications.
6460

6561
## Proxy settings
6662

AKS-Hybrid/aks-networks.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ Get-VmSwitch -SwitchType External
3636
```
3737

3838
```output
39-
Name SwitchType NetAdapterInterfaceDescription
40-
---- ---------- ----------------------------
41-
ConvergedSwitch(management_compute_storage) External Teamed-Interface
39+
Name SwitchType NetAdapterInterfaceDescription
40+
---- ---------- ----------------------------
41+
ConvergedSwitch(management_compute_storage) External Teamed-Interface
4242
```
4343

4444
## Create the logical network
@@ -64,6 +64,7 @@ For static IP, the required parameters are as follows:
6464
| `--ip-allocation-method` | The IP address allocation method. Supported values are "Static". Usage: `--ip-allocation-method "Static"`. |
6565
| `--ip-pool-start` | The start IP address of your IP pool. The address must be in range of the address prefix. Usage: `--ip-pool-start "10.220.32.18"`. |
6666
| `--ip-pool-end` | The end IP address of your IP pool. The address must be in range of the address prefix. Usage: `--ip-pool-end "10.220.32.38"`. |
67+
6768
```azurecli
6869
az stack-hci-vm network lnet create --subscription $subscription --resource-group $resource_group --custom-location $customLocationID --name $lnetName --vm-switch-name $vmSwitchName --ip-allocation-method "Static" --address-prefixes $addressPrefixes --gateway $gateway --dns-servers $dnsServers --ip-pool-start $ipPoolStart --ip-pool-end $ipPoolEnd
6970
```

AKS-Hybrid/arc-gateway-aks-arc.md

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
---
2+
title: Simplify network configuration requirements with Azure Arc gateway (preview)
3+
description: Learn how to enable Arc gateway on AKS Arc clusters to simplify network configuration requirements
4+
ms.topic: how-to
5+
ms.date: 11/18/2024
6+
author: sethmanheim
7+
ms.author: sethm
8+
ms.reviewer: abha
9+
ms.lastreviewed: 11/18/2024
10+
11+
---
12+
13+
# Simplify network configuration requirements with Azure Arc Gateway (preview)
14+
15+
If you use enterprise proxies to manage outbound traffic, the Azure Arc gateway (preview) can help simplify the process of enabling connectivity.
16+
17+
The Azure Arc gateway (preview) lets you:
18+
19+
- Connect to Azure Arc by opening public network access to only seven fully qualified domain names (FQDNs).
20+
- View and audit all traffic that the Arc agents send to Azure via the Arc gateway.
21+
22+
> [!IMPORTANT]
23+
> Azure Arc gateway is currently in preview.
24+
>
25+
> See the [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/) for legal terms that apply to Azure features that are in beta, preview, or otherwise not yet released into general availability.
26+
27+
## How the Azure Arc gateway works
28+
29+
The Arc gateway works by introducing two new components:
30+
31+
- The **Arc gateway resource** is an Azure Resource that serves as a common front end for Azure traffic. The gateway resource is served on a specific domain/URL. You must create this resource by following the steps outlined in this article. After you successfully create the gateway resource, this domain/URL is included in the success response.
32+
- The **Arc Proxy** is a new component that runs as its own pod (called "Azure Arc Proxy"). This component acts as a forward proxy used by Azure Arc agents and extensions. There is no configuration required on your part for the Azure Arc Proxy.
33+
34+
Visit [how the Azure Arc gateway works](https://learn.microsoft.com/azure/azure-arc/kubernetes/arc-gateway-simplify-networking?tabs=azure-cli) to learn more.
35+
36+
> [!IMPORTANT]
37+
> Note that Azure Local and AKS do not support TLS terminating proxies, ExpressRoute/site-to-site VPN or private endpoints.
38+
> In addition, there is a limit of five Arc gateway resources per Azure subscription.
39+
40+
## Before you begin
41+
- Ensure you've gone through the [pre-requisites for creating AKS clusters on Azure Local](/aks-hci-network-system-requirements.md)
42+
- **The following Azure permissions are required** to create Arc gateway resources and manage their association with AKS Arc clusters:
43+
- `Microsoft.Kubernetes/connectedClusters/settings/default/write`
44+
- `Microsoft.hybridcompute/gateways/read`
45+
- `Microsoft.hybridcompute/gateways/write`
46+
- **An Arc gateway resource** can be created using Azure CLI or Azure portal. Visit [create the Arc gateway resource in Azure](/hci/deploy/deployment-azure-arc-gateway-overview#create-the-arc-gateway-resource-in-azure) for more information on how to create an Arc gateway resource for your AKS clusters and Azure Local. Once you've created the Arc gateway resource, get the gateway resource ID by running the following command:
47+
48+
```
49+
$gatewayId = "(az arcgateway show --name <gateway's name> --resource-group <resource group> --query id -o tsv)"
50+
```
51+
52+
53+
## Confirm access to required URLs
54+
55+
Ensure your Arc gateway URL and all of the URLs below are allowed through your enterprise firewall:
56+
57+
|URL |Purpose |
58+
|---------|---------|
59+
|`[Your URL prefix].gw.arc.azure.com`| Your gateway URL. This URL can be obtained by running `az arcgateway list` after you create the resource. |
60+
|`management.azure.com` |Azure Resource Manager Endpoint, required for ARM control channel. |
61+
|`<region>.obo.arc.azure.com` |Required when [Cluster connect](conceptual-cluster-connect.md) is configured. |
62+
|`login.microsoftonline.com`, `<region>.login.microsoft.com` | Microsoft Entra ID endpoint, used for acquiring identity access tokens. |
63+
|`gbl.his.arc.azure.com`, `<region>.his.arc.azure.com` |The cloud service endpoint for communicating with Arc Agents. Uses short names, for example `eus` for East US. |
64+
|`mcr.microsoft.com`, `*.data.mcr.microsoft.com` |Required to pull container images for Azure Arc agents. |
65+
66+
## Create AKS Arc clusters with Arc gateway enabled
67+
Run the following command to create AKS Arc clusters with Arc gateway enabled
68+
69+
```azcli
70+
az aksarc create -n $clusterName -g $resourceGroup --custom-location $customlocationID --vnet-ids $arcVmLogNetId --aad-admin-group-object-ids $aadGroupID --gateway-id $gatewayId --generate-ssh-keys
71+
```
72+
73+
## Monitor traffic
74+
75+
To audit your gateway's traffic, view the gateway router's logs:
76+
77+
1. Run `kubectl get pods -n azure-arc`
78+
2. Identify the Arc Proxy pod (its name will begin with `arc-proxy-`).
79+
3. Run `kubectl logs -n azure-arc <Arc Proxy pod name>`
80+
81+
## Additional scenarios
82+
83+
During the public preview, Arc gateway covers endpoints required for AKS Arc clusters, and a portion of endpoints required for additional Arc-enabled scenarios. Based on the scenarios you adopt, additional endpoints are still required to be allowed in your proxy.
84+
85+
All endpoints listed for the following scenarios must be allowed in your enterprise proxy when Arc gateway is in use:
86+
87+
- [Container insights in Azure Monitor](/azure/azure-monitor/containers/kubernetes-monitoring-firewall):
88+
- `*.ods.opinsights.azure.com`
89+
- `*.oms.opinsights.azure.com`
90+
- `*.monitoring.azure.com`
91+
- [Azure Key Vault](/azure/key-vault/general/access-behind-firewall):
92+
- `<vault-name>.vault.azure.net`
93+
- [Azure Policy](/azure/governance/policy/concepts/policy-for-kubernetes):
94+
- `data.policy.core.windows.net`
95+
- `store.policy.core.windows.net`
96+
- [Microsoft Defender for Containers](/azure/defender-for-cloud/defender-for-containers-enable?pivots=defender-for-container-arc&toc=%2Fazure%2Fazure-arc%2Fkubernetes%2Ftoc.json&bc=%2Fazure%2Fazure-arc%2Fkubernetes%2Fbreadcrumb%2Ftoc.json&tabs=aks-deploy-portal%2Ck8s-deploy-asc%2Ck8s-verify-asc%2Ck8s-remove-arc%2Caks-removeprofile-api):
97+
- `*.ods.opinsights.azure.com`
98+
- `*.oms.opinsights.azure.com`
99+
- [Azure Arc-enabled data services](/azure/azure-arc/network-requirements-consolidated?tabs=azure-cloud)
100+
- `*.ods.opinsights.azure.com`
101+
- `*.oms.opinsights.azure.com`
102+
- `*.monitoring.azure.com`
103+
104+
## Next steps
105+
- [Deploy extension for MetalLB for Azure Arc enabled Kubernetes clusters](/deploy-load-balancer-cli.md).

0 commit comments

Comments
 (0)