diff --git a/docs/docs-content/clusters/public-cloud/azure/aks.md b/docs/docs-content/clusters/public-cloud/azure/aks.md index 4a2baf03c9..4187db8f93 100644 --- a/docs/docs-content/clusters/public-cloud/azure/aks.md +++ b/docs/docs-content/clusters/public-cloud/azure/aks.md @@ -116,7 +116,7 @@ The following steps need to be performed to provision a new cluster: 2. Fill the basic cluster profile information such as **Name**, **Description**, **Tags** and **Cloud Account**. -3. In the **Cloud Account** dropdown list, select the Azure Cloud account or create a new one. See the +3. In the **Cloud Account** dropdown list, select the Azure Cloud account or create a new one. Refer to the [Creating an Azure Cloud Account](azure-cloud.md) section above. 4. Next, in the **Cluster profile** tab from the **Managed Kubernetes** list, pick **AKS**, and select the AKS cluster @@ -174,9 +174,9 @@ A complete AKS cluster contains the following:
-1. As a mandatory primary **System Node Pool**, this pool will run the pods necessary to run a Kubernetes cluster, like - the control plane and etcd. All system pools must have at least a single node for a development cluster; one (1) node - is enough for high availability production clusters, and three (3) or more is recommended. +1. As a mandatory primary **System Node Pool**, this pool will host the pods necessary to operate a Kubernetes cluster, + like the control plane and etcd. All system pools must have at least a single node for a development cluster; one + node is enough for high availability production clusters, and three nodes or more is recommended. 2. **Worker Node** pools consist of one (1) or more per workload requirements. Worker node pools can be sized to zero (0) nodes when not in use. @@ -220,8 +220,18 @@ During cluster creation, you will default to a single pool. 6. Enter the **Managed Disk** information and its size. -7. If you are including additional or multiple nodes to make a node pool, click the **Add Worker Pool** button to - create the next node. + :::info + + You can add more worker node pools after creating the system node pool to customize specific worker nodes for + specialized workloads. For example, you can configure the system worker pool with the _Standard_D2_v2_ instance type + for general-purpose workloads, and another worker pool with the _Standard_NC12s_v3_ instance type for GPU workloads. + + You can also select **OS Type** as **Windows** to create a worker pool specifically for Windows workloads. + + ::: + +7. If you require additional or multiple node pools for different types of workloads, click the **Add Worker Pool** + button to create the next node pool. ## Configure Node Pools @@ -253,13 +263,14 @@ In all types of node pools, configure the following. :::info - New worker pools may be added if you want to customize specific worker nodes to run specialized workloads. As an - example, the default worker pool may be configured with the Standard_D2_v2 instance types for general-purpose - workloads, and another worker pool with the instance type Standard_NC12s_v3 can be configured to run GPU - workloads. + You can add new worker pools to customize specific worker nodes for specialized workloads. As an example, you can + configure the default worker pool with the _Standard_D2_v2_ instance type for general-purpose workloads, and another + worker pool with the _Standard_NC12s_v3_ instance type for GPU workloads. ::: +
+ - Provide the disk type via the **Managed Disk** dropdown and the size in Gigabytes (GB) in the **Disk size** field. :::info @@ -307,7 +318,7 @@ following are the steps to create the custom user _kubeconfig_ file: 4. Once the roles and role bindings are created, these roles can be linked to the Groups created in Azure AD. 5. The users can now access the Azure clusters with the complete benefits of AAD. To get the user-specific _kubeconfig_ - file, please run the following command: + file, please issue the following command: ```shell az aks get-credentials --resource-group --name diff --git a/docs/docs-content/clusters/public-cloud/azure/azure.md b/docs/docs-content/clusters/public-cloud/azure/azure.md index 93c0cf324d..91446879b2 100644 --- a/docs/docs-content/clusters/public-cloud/azure/azure.md +++ b/docs/docs-content/clusters/public-cloud/azure/azure.md @@ -29,6 +29,8 @@ To learn more about Palette and Azure cluster creation and its capabilities chec - [Create and Manage Azure AKS Cluster](aks.md) +- [Deploy Windows Workloads](windows.md) + - [Create and Manage IaaS Azure Cluster](create-azure-cluster.md) - [Deleting an Azure Cluster](../../cluster-management/remove-clusters.md) diff --git a/docs/docs-content/clusters/public-cloud/azure/windows.md b/docs/docs-content/clusters/public-cloud/azure/windows.md new file mode 100644 index 0000000000..e86c568ec2 --- /dev/null +++ b/docs/docs-content/clusters/public-cloud/azure/windows.md @@ -0,0 +1,159 @@ +--- +sidebar_label: "Deploy Windows Workloads" +title: "Deploy Microsoft Windows Workloads on an Azure AKS Cluster" +description: + "How to create and manage Windows Node Pools and deploy a Windows-based application on an Azure AKS Cluster." +hide_table_of_contents: false +tags: ["public cloud", "azure"] +sidebar_position: 35 +--- + +Palette supports the deployment of Microsoft Windows applications on [Azure AKS clusters](../azure/aks.md). For the +Windows applications to work, Palette requires a Windows-based node pool created within the cluster. This section guides +you on creating a Windows node pool within an existing AKS cluster managed by Palette and configuring your Windows +application to be deployed to that node pool. + +## Prerequisites + +- An AKS cluster created as described in the [Create and Manage Azure AKS Cluster](./aks.md) guide. + +- A Linux-based node pool configured as the system node pool as described in the + [Create a System Node Pool](../azure/aks.md#create-a-system-node-pool) section of the + [Create and Manage Azure AKS Cluster](../azure/aks.md) guide. + +- A Windows node pool configured as described in the [Create a Windows Node Pool](#create-a-windows-node-pool) section. + +## Enablement + +### Create a Windows Node Pool + +Follow the steps below to create a Windows node pool within an existing AKS cluster. Refer to the +[Node Pools](../../cluster-management/node-pool.md) page for more information about node pool configuration. + +:::info + +Palette also allows you to add a Windows node pool during the creation of an AKS cluster. Refer to the +[Create and Manage Azure AKS CLuster - Create and Remove Node Pools](./aks#create-and-remove-node-pools) page to learn +more. + +::: + +1. Log in to Palette, navigate to the left **Main Menu**, and click on **Clusters**. + +2. Select your Azure AKS cluster. + +3. Navigate to the **Nodes** tab and click on **New Node Pool**. + +4. Provide a name for your node pool. When naming a node pool, it is good practice to include a name that matches the + node and operating system (OS) in Azure. + +5. If auto-scaling is necessary, enable the **Enable Autoscaler** option. + + :::warning + + Do not select the **System Node Pool** option. System node pools must be Linux-based, and choosing this option will + remove the ability to create a Windows node pool. + + ::: + +6. Enter the **Number of nodes in the pool**, or set the **Minimum Size** and **Maximum Size** if you have enabled + Autoscaler. + +7. Include **Additional Labels** if desired. This step is optional. + +8. Enable **Taints**. This step is also optional. + +9. Choose the **Instance type**. Once selected, the cost details will be displayed. + +10. For the **OS Type**, choose **Windows**. + +11. Select the **Managed Disk** information and its size. + +12. Last, click on **Confirm** to create the Windows node pool. + +The video below showcases the process of creating a Windows node pool within an existing AKS cluster. + +
+ + + +
+ +### Create an Add-on Profile with a Windows Workload + +After creating your Windows node pool, use the following steps to create an add-on cluster profile with a Windows +workload. + +13. Follow the + [Add a Manifest to an Add-on Profile](../../../profiles/cluster-profiles/create-cluster-profiles/create-addon-profile/create-manifest-addon.md#add-manifest-to-add-on-profile) + guide to create an add-on cluster profile with a custom manifest. + +14. Use the manifest provided below for a sample ASP.NET application. Alternatively, use your own Windows application + manifest. It is essential to include in the **spec** block of the manifest the **nodeSelector: "kubernetes.io/os": + windows** specification. This specification is required for Kubernetes to know that the application needs to be + deployed on a Windows node. + + ```yaml {20-22} + apiVersion: v1 + kind: Namespace + metadata: + name: win-pack + --- + apiVersion: apps/v1 + kind: Deployment + metadata: + namespace: win-pack + name: sample + labels: + app: sample + spec: + replicas: 1 + template: + metadata: + name: sample + labels: + app: sample + spec: + nodeSelector: + "kubernetes.io/os": windows + containers: + - name: sample + image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp + resources: + limits: + cpu: 1 + memory: 800M + ports: + - containerPort: 80 + selector: + matchLabels: + app: sample + --- + apiVersion: v1 + kind: Service + metadata: + name: sample + namespace: win-pack + spec: + type: LoadBalancer + ports: + - protocol: TCP + port: 80 + selector: + app: sample + ``` + +### Deploy a Windows Add-on Profile to an Existing AKS Cluster + +Lastly, after creating your add-on cluster profile, attach it to your AKS cluster that has the previously created +Windows node pool. Follow the steps outlined in the +[Attach an Add-on Profile](../../../clusters/imported-clusters/attach-add-on-profile.md#attach-an-add-on-profile) guide +to attach your add-on cluster profile to the AKS cluster. + +## Validate + +1. In Palette, navigate to the left **Main Menu** and select **Clusters**. + +2. Next, click on your AKS cluster, which will open the cluster's **Overview** page. + +3. Click on the exposed **Services** URL to access the Windows application landing page. diff --git a/static/assets/videos/clusters/public-cloud/azure/add-windows-node-pool.mp4 b/static/assets/videos/clusters/public-cloud/azure/add-windows-node-pool.mp4 new file mode 100644 index 0000000000..c484191d02 Binary files /dev/null and b/static/assets/videos/clusters/public-cloud/azure/add-windows-node-pool.mp4 differ