Many Windows Server Administrators are being confronted with application modernization. Often new applications are architected on PaaS-architecture (platform-as-a-service) or microservices architectures based on containers. These workloads often need a Kubernetes cluster which orchestrates the containerized application and workload. In this blog post we are going to have a look at how you can install and run a Kubernetes cluster on Windows Server with support for Linux and Windows Containers. For this we are going to use the Azure Kubernetes Service (AKS) hybrid deployment options running on Windows Server which you can test 60 days for free or run it even at no additional cost if you have Windows Server Software Assurance and running it on your existing hardware.
Overview
Before we get into the how, I also want to give you some background as well.
What is Kubernetes?
Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications.
Where can I run Kubernetes?
Kubernetes is open source giving you the freedom to take advantage of on-premises, hybrid, or public cloud infrastructure, letting you effortlessly move workloads to where it matters to you. Cloud providers such as Microsoft Azure, offer you also managed Kubernetes solutions and services, such as the Azure Kubernetes Service (AKS).
What is AKS (Azure Kubernetes Service)?
Azure Kubernetes Service (AKS) simplifies deploying a managed Kubernetes cluster in Azure by offloading the operational overhead to Azure. As a hosted Kubernetes service, Azure handles critical tasks, like health monitoring and maintenance.
What are AKS hybrid deployment options?
AKS hybrid deployment options simplify managing, deploying, and maintaining a Kubernetes cluster on-premises, making it quicker to get started hosting Linux and Windows containers in your datacenter. These options are designed to provide you with a similar experience of running AKS in Azure but on-premises on Windows Server or Azure Stack HCI.
As a hosted Kubernetes service, AKS hybrid handles critical day-to-day management, such as easy upgrades and automatic certificate rotations so you can focus on running and developing containerized workloads. AKS hybrid also natively connects to Azure Arc, so you have a single Azure control plane to manage all your AKS clusters running anywhere – on Azure and on-premises.
You can create an AKS cluster using:
- PowerShell
- Windows Admin Center
- The Azure CLI (preview)
- The Azure portal (preview)
- Azure Resource Manager templates (preview)
When you deploy an AKS cluster, you can choose default options that configure the Kubernetes control plane nodes and Kubernetes cluster settings for you. We offer the flexibility to configure advanced settings like Azure Active Directory (Azure AD), monitoring, and other features during and after the deployment process.
With AKS hybrid, you can connect your AKS clusters to Azure Arc while creating the cluster. Once connected to Azure Arc-enabled Kubernetes, you can access your AKS clusters running on-premises via the Azure portal and deploy management services such as GitOps, Azure Monitor, and Azure Policy. For more information about Azure Arc-enabled Kubernetes, see the Azure Arc overview.
Depending on your hardware class, compute availability and your Kubernetes adoption process, we offer multiple AKS hybrid deployment options to get started:
AKS hybrid deployment option | Host OS | Minimum compute requirement | Failover clustering support | AKS cluster management tools | Azure Arc integration |
---|---|---|---|---|---|
AKS on Windows Server | Windows Server 2019 Windows Server 2022 | Memory: 30GB per node CPU cores: 16 per node Disk Space: 128 GB per node | Single node OR 2-8 node failover cluster | Local PowerShell Windows Admin Center | Manual Azure Arc integration |
AKS on Azure Stack HCI | Azure Stack HCI 21H2 | Memory: 30GB per node CPU cores: 16 per node Disk Space: 128 GB per node | Single node OR 2-8 node Azure Stack HCI cluster | Local PowerShell Windows Admin Center | Manual Azure Arc integration |
AKS cluster provisioning from Azure (PREVIEW) | Windows Server 2019 Windows Server 2022 Azure Stack HCI 21H2 | Memory: 32GB per node CPU cores: 16 per node Disk Space: 128 GB per node | Single node OR 2 node cluster | Azure Portal Azure CLI Azure Resource Manager templates | Automatic Azure Arc integration |
AKS on Windows IOT (PREVIEW) | Windows 10/11 IoT Enterprise Windows 10/11 Enterprise Windows 10/11 Pro Windows Server 2019/2022 | Free memory: > 2GB CPU cores: 2 Clock speed: 1.8 GHz Free disk Space: 14 GB | No | Local PowerShell | Manual Azure Arc integration |
Can I run production workloads on it?
Yes, AKS hybrid is supported by Microsoft.
What does it cost? And can I try it for free? What hardware do I need?
Azure Kubernetes Service (AKS) is a subscription-based Kubernetes offering that can be run on Azure Stack HCI or Windows Server Hyper-V clusters. You can download and install AKS on your existing hardware whether in your own on-premises data center or on the edge. The pricing is based on usage and requires an Azure subscription, which you can obtain for free. The billing unit is a virtual core or vCPU. All initial AKS deployments include a free 60-day evaluation period, at the end of which a pay-as-you-go rate per vCPU (of running worker nodes) per day will be applied.
For users with Windows Server Software Assurance, Azure Hybrid benefits may apply, hence reducing or eliminating the Windows Server license fees.
Install and run Kubernetes (K8s) on Windows Server
Let’s have a look at how you can install and run Kubernetes (K8s) in Windows Server (it can also be installed on Azure Stack HCI). With our AKS hybrid deployment options, we can install Kubernetes on a single-node Windows Server or Windows Server Failover Cluster which provides high availability. In this video tutorial we are using the AKS on Windows Server deployment option which is generally available and not only supports single-node but also failover clustering.
Perquisites for Azure Kubernetes Service (AKS) on Windows Server
- Windows Server 2019 or Windows Server 2022
- Memory: 30GB per node
- CPU cores: 16 per node
- Disk Space: 128 GB per node
- Management tools
- Local PowerShell
- Windows Admin Center (for the demo we are going to use the Windows Admin Center UI)
To read more about the requirements, check out the official documentation on Microsoft Learn.
Steps to install Kubernetes on Windows Server in addition to the video:
- Install Windows Server with Windows Server 2019 or Windows Server 2022
- Download and Install Windows Admin Center
- Open up Windows Admin Center and navigate to the Azure Kubernetes Service extension.
- Run through the setup as showing in the video
Conclusion installing Kubernetes on Windows Server
There are many different ways to install Kubernetes. With our AKS hybrid deployment options and AKS on Windows Server, you get a simple and supported way to set up Kubernetes on Windows Server. This even has some more benefits such as the Azure integration with Azure Arc and easy managed updates for your Kubernetes clusters.
Tags: AKS, Azure, Azure Kubernetes Service, Azure Stack HCI, Cloud, Container, Hyper-V, K8s, Kubernetes, Microsoft, Microsoft Azure, PowerShell, Virtualization, Windows Server Last modified: December 11, 2022
Tha ks for this, though I was really hoping you might end with suggestions about how one might proceed WITHOUT relying at all on Azure/AKS, because of course not everyone running Windows servers (and on that road to modernization–or simply wanting to run some container-packaged app) is necessarily in the Azure world (or even considering it).
As you say, there may well be “many” other ways to run k8s, but I suspect lots of your readers would love to hear more about them (and I mean for running Linux containers rather than Windows ones). And I mean and especially if they may be running other than Windows Server 2022, or maybe can’t run hyper-v (or may well be running as a VM guest already), and so on.
They may find it so easy to run Docker Desktop on their workstations/laptops, only to find it quite difficult to run those same containers, compose files, or k8s manifests in the on-prem or hosted Windows servers they may deploy all their other work to. (They may not want to move those to a SaaS or other platform.)
Such folks would seem especially drawn to a post with a title like this, and so would be encouraged to hear of paths successfully traveled by others. :-)
Thanks for the feedback Charlie, I will need to go deeper and write a bit of a longer answer. That said I just want to clarify, that this with AKS on HCI and AKS on Windows Server allows you to run Linux AND Windows containers, not just Windows Containers.