Skip to content

Commit 00fb7d0

Browse files
author
Jill Grant
authored
Merge pull request #271157 from dramasamy/bugfix
[NotReleaseSpecific] Removed isolation domain commands from quick-start and provided a lin…
2 parents 3d195c2 + ef7d5d8 commit 00fb7d0

File tree

4 files changed

+34
-144
lines changed

4 files changed

+34
-144
lines changed

articles/operator-nexus/howto-kubernetes-cluster-agent-pools.md

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,32 +14,35 @@ ms.custom: template-how-to-pattern #Required; leave this attribute/value as-is.
1414
In this article, you learn how to work with agent pools in a Nexus Kubernetes cluster. Agent pools serve as groups of nodes with the same configuration and play a key role in managing your applications.
1515

1616
Nexus Kubernetes clusters offer two types of agent pools.
17-
* System agent pools are designed for hosting critical system pods like CoreDNS and metrics-server.
18-
* User agent pools are designed for hosting your application pods.
1917

20-
Application pods can be scheduled on system node pools if you wish to only have one pool in your Kubernetes cluster. Nexus Kubernetes cluster must have an initial agent pool that includes at least one system node pool with at least one node.
18+
* System agent pools are designed for hosting critical system pods like CoreDNS and metrics-server.
19+
* User agent pools are designed for hosting your application pods.
20+
21+
Application pods can be scheduled on system agent pools if you wish to only have one pool in your Kubernetes cluster. Nexus Kubernetes cluster must have an initial agent pool that includes at least one system agent pool with at least one node.
2122

2223
## Prerequisites
2324

2425
Before proceeding with this how-to guide, it's recommended that you:
2526

26-
* Refer to the Nexus Kubernetes cluster [QuickStart guide](./quickstarts-kubernetes-cluster-deployment-bicep.md) for a comprehensive overview and steps involved.
27-
* Ensure that you meet the outlined prerequisites to ensure smooth implementation of the guide.
27+
* Refer to the Nexus Kubernetes cluster [QuickStart guide](./quickstarts-kubernetes-cluster-deployment-bicep.md) for a comprehensive overview and steps involved.
28+
* Ensure that you meet the outlined prerequisites to ensure smooth implementation of the guide.
2829

2930
## Limitations
30-
* You can delete system node pools, provided you have another system node pool to take its place in the Nexus Kubernetes cluster.
31-
* System pools must contain at least one node.
32-
* You can't change the VM size of a node pool after you create it.
33-
* Each Nexus Kubernetes cluster requires at least one system node pool.
34-
* Don't run application workloads on Kubernetes control plane nodes, as they're designed only for managing the cluster, and doing so can harm its performance and stability.
31+
32+
* You can delete system agent pools, provided you have another system agent pool to take its place in the Nexus Kubernetes cluster.
33+
* System pools must contain at least one node.
34+
* You can't change the VM size of an agent pool after you create it.
35+
* Each Nexus Kubernetes cluster requires at least one system agent pool.
36+
* Don't run application workloads on Kubernetes control plane nodes, as they're designed only for managing the cluster, and doing so can harm its performance and stability.
3537

3638
## System pool
37-
For a system node pool, Nexus Kubernetes automatically assigns the label `kubernetes.azure.com/mode: system` to its nodes. This label causes Nexus Kubernetes to prefer scheduling system pods on node pools that contain this label. This label doesn't prevent you from scheduling application pods on system node pools. However, we recommend you isolate critical system pods from your application pods to prevent misconfigured or rogue application pods from accidentally killing system pods.
3839

39-
You can enforce this behavior by creating a dedicated system node pool. Use the `CriticalAddonsOnly=true:NoSchedule` taint to prevent application pods from being scheduled on system node pools. If you intend to use the system pool for application pods (not dedicated), don't apply any application specific taints to the pool, as applying such taints can lead to cluster creation failures.
40+
For a system agent pool, Nexus Kubernetes automatically assigns the label `kubernetes.azure.com/mode: system` to its nodes. This label causes Nexus Kubernetes to prefer scheduling system pods on agent pools that contain this label. This label doesn't prevent you from scheduling application pods on system agent pools. However, we recommend you isolate critical system pods from your application pods to prevent misconfigured or rogue application pods from accidentally killing system pods.
41+
42+
You can enforce this behavior by creating a dedicated system agent pool. Use the `CriticalAddonsOnly=true:NoSchedule` taint to prevent application pods from being scheduled on system agent pools. If you intend to use the system pool for application pods (not dedicated), don't apply any application specific taints to the pool, as applying such taints can lead to cluster creation failures.
4043

4144
> [!IMPORTANT]
42-
> If you run a single system node pool for your Nexus Kubernetes cluster in a production environment, we recommend you use at least three nodes for the node pool.
45+
> If you run a single system agent pool for your Nexus Kubernetes cluster in a production environment, we recommend you use at least three nodes for the agent pool.
4346
4447
## User pool
4548

@@ -49,6 +52,6 @@ The user pool, on the other hand, is designed for your applications. This dedica
4952

5053
Choosing how to utilize your system pool and user pool depends largely on your specific requirements and use case. Both dedicated and shared methods offer unique advantages. Dedicated pools can isolate workloads and provide guaranteed resources, while shared pools can optimize resource usage across the cluster.
5154

52-
Always consider your cluster's resource capacity, the nature of your workloads, and the required level of resiliency when making your decision. By managing and understanding these node pools effectively, you can optimize your Nexus Kubernetes cluster to best fit your operational needs.
55+
Always consider your cluster's resource capacity, the nature of your workloads, and the required level of resiliency when making your decision. By managing and understanding these agent pools effectively, you can optimize your Nexus Kubernetes cluster to best fit your operational needs.
5356

5457
Refer to the [QuickStart guide](./quickstarts-kubernetes-cluster-deployment-bicep.md#add-an-agent-pool) to add new agent pools and experiment with configurations in your Nexus Kubernetes cluster.

articles/operator-nexus/includes/l2-isolation-domain.md

Lines changed: 0 additions & 33 deletions
This file was deleted.

articles/operator-nexus/includes/l3-isolation-domain.md

Lines changed: 0 additions & 57 deletions
This file was deleted.

articles/operator-nexus/quickstarts-tenant-workload-prerequisites.md

Lines changed: 17 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -32,49 +32,25 @@ You need to create various networks based on your workload needs. The following
3232
- Determine the BGP peering info for each network, and whether the networks need to talk to each other. You should group networks that need to talk to each other into the same L3 isolation domain, because each L3 isolation domain can support multiple L3 networks.
3333
- The platform provides a proxy to allow your VM to reach other external endpoints. Creating a `cloudservicesnetwork` instance requires the endpoints to be proxied, so gather the list of endpoints. You can modify the list of endpoints after the network creation.
3434

35-
## Create networks for tenant workloads
36-
37-
The following sections explain the steps to create networks for tenant workloads (VMs and Kubernetes clusters).
38-
39-
### Create isolation domains
40-
41-
Isolation domains enable creation of layer 2 (L2) and layer 3 (L3) connectivity between network functions running on Azure Operator Nexus. This connectivity enables inter-rack and intra-rack communication between the workloads.
42-
You can create as many L2 and L3 isolation domains as needed.
43-
44-
You should have the following information already:
45-
46-
- The network fabric resource ID to create isolation domains.
47-
- VLAN and subnet info for each L3 network.
48-
- Which networks need to talk to each other. (Remember to put VLANs and subnets that need to talk to each other into the same L3 isolation domain.)
49-
- BGP peering and network policy information for your L3 isolation domains.
50-
- VLANs for all your L2 networks.
51-
- VLANs for all your trunked networks.
52-
- MTU values for your networks.
53-
54-
#### L2 isolation domain
55-
56-
[!INCLUDE [l2-isolation-domain](./includes/l2-isolation-domain.md)]
57-
58-
#### L3 isolation domain
35+
## Create isolation domains
5936

60-
[!INCLUDE [l3-isolation-domain](./includes/l3-isolation-domain.md)]
37+
The isolation-domains enable communication between workloads hosted in the same rack (intra-rack communication) or different racks (inter-rack communication). You can find more details about creating isolation domains [here](./howto-configure-isolation-domain.md).
6138

62-
### Create networks for tenant workloads
39+
## Create networks for tenant workloads
6340

6441
The following sections describe how to create these networks:
6542

6643
- Layer 2 network
6744
- Layer 3 network
6845
- Trunked network
69-
- Cloud services network
7046

71-
#### Create an L2 network
47+
### Create an L2 network
7248

7349
Create an L2 network, if necessary, for your workloads. You can repeat the instructions for each required L2 network.
7450

75-
Gather the resource ID of the L2 isolation domain that you [created](#l2-isolation-domain) to configure the VLAN for this network.
51+
Gather the resource ID of the L2 isolation domain that you created to configure the VLAN for this network.
7652

77-
### [Azure CLI](#tab/azure-cli)
53+
#### [Azure CLI](#tab/azure-cli)
7854

7955
```azurecli-interactive
8056
az networkcloud l2network create --name "<YourL2NetworkName>" \
@@ -85,7 +61,7 @@ Gather the resource ID of the L2 isolation domain that you [created](#l2-isolati
8561
--l2-isolation-domain-id "<YourL2IsolationDomainId>"
8662
```
8763

88-
### [Azure PowerShell](#tab/azure-powershell)
64+
#### [Azure PowerShell](#tab/azure-powershell)
8965

9066
```azurepowershell-interactive
9167
New-AzNetworkCloudL2Network -Name "<YourL2NetworkName>" `
@@ -100,19 +76,19 @@ New-AzNetworkCloudL2Network -Name "<YourL2NetworkName>" `
10076

10177
---
10278

103-
#### Create an L3 network
79+
### Create an L3 network
10480

10581
Create an L3 network, if necessary, for your workloads. Repeat the instructions for each required L3 network.
10682

10783
You need:
10884

109-
- The `resourceID` value of the L3 isolation domain that you [created](#l3-isolation-domain) to configure the VLAN for this network.
85+
- The `resourceID` value of the L3 isolation domain that you created to configure the VLAN for this network.
11086
- The `ipv4-connected-prefix` value, which must match the `i-pv4-connected-prefix` value that's in the L3 isolation domain.
11187
- The `ipv6-connected-prefix` value, which must match the `i-pv6-connected-prefix` value that's in the L3 isolation domain.
11288
- The `ip-allocation-type` value, which can be `IPv4`, `IPv6`, or `DualStack` (default).
11389
- The `vlan` value, which must match what's in the L3 isolation domain.
11490

115-
### [Azure CLI](#tab/azure-cli)
91+
#### [Azure CLI](#tab/azure-cli)
11692

11793
```azurecli-interactive
11894
az networkcloud l3network create --name "<YourL3NetworkName>" \
@@ -127,7 +103,7 @@ You need:
127103
--vlan <YourNetworkVlan>
128104
```
129105

130-
### [Azure PowerShell](#tab/azure-powershell)
106+
#### [Azure PowerShell](#tab/azure-powershell)
131107

132108
```azurepowershell-interactive
133109
New-AzNetworkCloudL3Network -Name "<YourL3NetworkName>" `
@@ -144,13 +120,13 @@ New-AzNetworkCloudL3Network -Name "<YourL3NetworkName>" `
144120

145121
---
146122

147-
#### Create a trunked network
123+
### Create a trunked network
148124

149125
Create a trunked network, if necessary, for your VM. Repeat the instructions for each required trunked network.
150126

151127
Gather the `resourceId` values of the L2 and L3 isolation domains that you created earlier to configure the VLANs for this network. You can include as many L2 and L3 isolation domains as needed.
152128

153-
### [Azure CLI](#tab/azure-cli)
129+
#### [Azure CLI](#tab/azure-cli)
154130

155131
```azurecli-interactive
156132
az networkcloud trunkednetwork create --name "<YourTrunkedNetworkName>" \
@@ -167,7 +143,8 @@ Gather the `resourceId` values of the L2 and L3 isolation domains that you creat
167143
"<YourL3IsolationDomainId3>" \
168144
--vlans <YourVlanList>
169145
```
170-
### [Azure PowerShell](#tab/azure-powershell)
146+
147+
#### [Azure PowerShell](#tab/azure-powershell)
171148

172149
```azurepowershell-interactive
173150
New-AzNetworkCloudTrunkedNetwork -Name "<YourTrunkedNetworkName>" `
@@ -183,7 +160,7 @@ New-AzNetworkCloudTrunkedNetwork -Name "<YourTrunkedNetworkName>" `
183160

184161
---
185162

186-
#### Create a cloud services network
163+
## Create a cloud services network
187164

188165
To create an Operator Nexus virtual machine (VM) or Operator Nexus Kubernetes cluster, you must have a cloud services network. Without this network, you can't create a VM or cluster.
189166

@@ -241,7 +218,7 @@ After setting up the cloud services network, you can use it to create a VM or cl
241218
>
242219
> In addition, if your ACR has dedicated data endpoints enabled, you will need to add all the new data-endpoints to the egress allow list. To find all the possible endpoints for your ACR follow the instruction [here](../container-registry/container-registry-dedicated-data-endpoints.md#dedicated-data-endpoints).
243220
244-
#### Using the proxy to reach outside of the virtual machine
221+
### Use the proxy to reach outside of the virtual machine
245222

246223
After creating your Operator Nexus VM or Operator Nexus Kubernetes cluster with this cloud services network, you need to additionally set appropriate environment variables within VM to use tenant proxy and to reach outside of virtual machine. This tenant proxy is useful if you need to access resources outside of the virtual machine, such as managing packages or installing software.
247224

0 commit comments

Comments
 (0)