This post has been republished via RSS; it originally appeared at: New blog articles in Microsoft Tech Community.
We have seen a great deal of interest from the community around our September 1 announcement of the General Availability of Windows Server 2022. This blog will answer common questions as well as provide an update around a topic the community is talking about: Windows Server 2022 support on Azure Kubernetes Service (AKS) and Azure Kubernetes Service on Azure Stack HCI (AKS on Azure Stack HCI).
Why are AKS and AKS on Azure Stack HCI only supporting Windows Server 2022 with containerd?
Containerd is a popular container runtime widely used in Kubernetes. A container runtime is software that executes containers and manages container images on a node in a Kubernetes cluster. On each node, kubelet – the primary ‘node agent’ – uses the container runtime interface as an abstraction to orchestrate and schedule any pods made of containers.
As explained here, the Kubernetes community is aiming “at a deprecation and subsequent removal of dockershim from kubelet.” Dockershim is Container Runtime Interface (CRI) for docker. Currently the Kubernetes community aims to release kubelet without dockershim in Kubernetes version 1.24 around April 2022.
Both AKS and AKS on Azure Stack HCI are managed Kubernetes services. Hence one of the most important goals is to take care of the changes from the underlying platform, be it from the OS, Kubernetes, or other open-source software, so customers don’t have to deal with those and focus on their applications instead. This is the same case for handing this upcoming dockershim deprecation.
AKS and AKS on Azure Stack HCI today support Windows Server 2019. Rather than requiring customers to change infrastructure twice (from Windows Serer 2019 to Windows Server 2022, from docker to containerd – with the associated validation and conformance costs on the Kubernetes community), we are streamlining the experience by aligning the latest version of Windows Server, Windows Server 2022, with the latest and best container runtime for Kubernetes – containerd. For example, Kubernetes version 1.22 introduced a new alpha feature: HostProcess containers that are supported only on containerd. HostProcess containers aim to extend the Windows container model to enable a wider range of Kubernetes cluster management scenarios, such as deploying CNI and monitoring tool. We believe this containerd focus will help make sure we give the end users a great user experience.
This aligns with other containerd related efforts for AKS and AKS on Azure Stack HCI. For example, on the Windows side, AKS has started the Preview of Windows Server 2019 on containerd since July 2021. AKS on Azure Stack HCI is also actively working on containerd support for Windows. On the Linux side, AKS already uses containerd by default on Kubernetes version 1.19 and greater. In addition, AKS on Azure Stack HCI recently announced that, in the Aug 2021 update, containerd is now the default container runtime for Linux worker nodes.
What remains to be done for AKS and AKS on Azure Stack HCI to support Windows Server 2022?
AKS and AKS on Azure Stack HCI are certified distributors of Kubernetes. To support Windows Server 2022, there are two main steps: 1) Enable support in the upstream Kubernetes community; and 2) Integrate and validate the upstream Kubernetes support on AKS and AKS on Azure Stack HCI.
- In the Sig-Windows Meeting on Sep 7th, 2021, we shared an overview of Windows Server 2022 and addressed questions. We also aligned with the community that validation on Windows Server 2022 will be targeting at the active branch of Kubernetes version 1.23 and containerd only. Anyone can run validations on older versions of Kubernetes or other runtimes and file bugs. The community will triage and resolve bugs as needed.
- We submitted 8 Pull Requests (PR) on Container Storage Interface (CSI) in Kubernetes. Here is one PR as an example: adding Windows Server 2022 support to CSI build progress.
- We submitted a Pull Request to add Windows 2022 support on image builder which will enable VHD creation and eventually allow us to add Windows Server 2022 to the Azure Marketplace.
- In our private testing, we achieved a 99.6% pass rate on upstream Kubernetes tests using Windows Server 2022 worker nodes on a simulated AKS cluster built with AKS Engine.
- We are currently working to onboard Windows Server 2022 test pass reporting to the TestGrid.
For the second, while working with upstream Kubernetes, we are integrating and validating the end-to-end customer experience with our own distributions on AKS and AKS on Azure Stack HCI.
While Microsoft is working to go above and beyond in bringing up Windows Server 2022 support in upstream Kubernetes, like any other Kubernetes distributor, we also rely on the collective effort of the community to get to the ready state. Kubernetes is an open-source project with many distributions. It’s great to see Windows Server 2022 customers benefiting from the broader ecosystem.
A sneak preview demo…
Below is a short demo using the simulated AKS cluster, created with AKS Engine for our private testing, to deploy a Windows Server 2022 based IIS workload.
- The container host, aka the Windows node, is a Windows Server 2022 Datacenter SKU.
- The container image is an IIS image: mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022.
It is a journey. It takes a village. We appreciate the interest and value the feedback from everyone in the community. Please feel free to post in our Windows Container GitHub community. If you have a Windows Server 2022 use case, please share them here. It will help us make sure we are doing the right validation and delivering to your needs. We look forward to hearing more from you.