Google will support Windows Server Containers in its Kubernetes engine, and has emitted a connector that makes all its cloud resources look like Kubernetes.
Microsoft first flung out server containers with Windows Server 2016. This enables you to use them with Windows applications such as those using the .NET Framework (as opposed to .NET Core, which also runs on Linux), or features of IIS, Microsoft's web server.
Google's support for Windows Server Containers is in beta, and builds on the support added in Kubernetes in March 2019. Windows and Linux containers can run together in the same cluster. There is support for Google's managed Active Directory service, including Group Managed Service Accounts (GMSA).
There are some limitations, such as no support for hardware acceleration with TPUs (Tensor Processing Units) or GPUs. You cannot use preemptible node pools to lower the cost. There is no support for Hyper-V containers.
Google also warned: "Windows Server container images, and the individual layers they are composed of, can be quite large. This can cause Kubelet to timeout and fail when downloading and extracting the container layers." You can overcome this by increasing the timeout value.
The introduction of Windows support in GKE extends its reach, making it easier to migrate existing applications. It is also valuable for DevOps solutions that use containers as a deployment target – hence the new feature has been welcomed by the likes of CircleCI, CloudBees and GitLab. GitLab recently introduced Windows Shared Runners for running windows builds in its cloud which can be used together with the new GKE feature.
AWS already supports Windows Server containers, as does Microsoft Azure.
The bigger picture
Support for Windows containers in the major public cloud providers is unlikely to drive a big increase in adoption. Most containers run Linux applications and Windows support came later, both for Docker and for K8s. Microsoft itself is busy improving its Linux support, both for application development with .NET Core and for its own applications like SQL Server. IIS usage seems to be in decline, judging by the Netcraft survey of Active sites, for example, which puts Microsoft's server at 5 per cent in the latest figures, down from a peak of 38 per cent in 2010.
As for Google, it seems to be pressing home its advantage as the inventor of K8s by increasing focus on the technology. Another development last week was for the general availability of Config Connector, an operator which "makes all GCP resources behave as if they were Kubernetes resources". Google explains that this is helpful for consistent management but it also seems to express the company's general approach.
According to figures from cloud monitoring service Datadog, an increasing proportion of container deployments use K8s, across all the top three cloud providers. Most containers on Azure now run on K8s. At AWS K8s usage is at around 45 per cent, nearly double what it was in 2017, despite AWS showing signs of trying to resist the K8s tide. Datadog also reported on the most popular programming languages running in container environments. Node.js heads the list, followed by Java, Python, PHP, Ruby and Go. Microsoft's .NET came in at sixth place. ®