kubernetes on Windows is in GA stage.
Create "Azure Conatiner Service" (not AKS) in azure portal, select Windows
OS, if k8s cluster is created successfully, the master node would be still Ubuntu OS, agent node would be Windows Server 2016 DataCenter
.
Note: azure disk & azure file mount feature is not enabled on this because it's using
Windows Server 2016 DataCenter
OS, onlyWindows Server version 1803
is supported for these two features.
2. acs-engine
By latest acs-engine v0.9.2 or above, you could deploy a Windows Server version 1803
(codename RS3
) based k8s cluster which would support azure disk & azure file mount feature on Windows node.
You could check Windows version by following command, below is an example using Windows Server version 1803
:
kubectl exec -it WINDOWS-PODNAME -- cmd
C:\Users\azureuser>ver
Microsoft Windows [Version 10.0.17134.48] (or above)
Find more details about Supported Windows versions
Note: value of
Support on Windows
is empty means I don't have a chance to validate it on Windows
Volume | Support on Windows | Example | Notes |
---|---|---|---|
azure disk | Yes | azuredisk | Available from v1.7.2 |
azure file | Yes | azurefile | Available from v1.7.2 |
cephfs | No | No official support for cephfs support on windows, could use NFS instead | |
csi | on progress | csi | details could be found in Enable CSI hostpath example on windows |
downwardAPI | Yes | downwardapi | |
emptyDir | Yes | emptydir | tmpfs is not supported on Windows Server |
fc (fibre channel) | |||
flexvolume | Yes | flexvolume | available from v1.8.6, v1.9.1 |
flocker | |||
gitRepo | No | gitrepo | git is not built-in on Windows host now: Enable gitRepo Volume on Windows |
glusterfs | No | Windows doesn't have a native GlusterFS client, could use NFS instead | |
hostpath | Yes | hostpath | |
iscsi | No | Windows container does not support iSCSI symbolic link: Enable iSCSI volume on Windows | |
local | Yes | local | Available from 1.10.3 |
nfs | No | Pending: there is no NFSv4 client support on Windows now, see: add NFS volume support for windows | |
PortworxVolume | |||
projected | |||
Quobyte | |||
rbd | No | ||
ScaleIO | |||
secret | Yes | secret | |
StorageOS | |||
subPath | Yes | subpath |
Feature | Support on Windows | Example | Notes |
---|---|---|---|
ConfigMap | Yes | configmap | |
cAdvisor | Yes | cadvisor | from Azure/kubernetes v1.8.6 and k8s upstream v1.9.0 |
- breaking change for Windows container running on
Windows Server version 1803
, only image tag with1803
keyword could run onWindows Server version 1803
, e.g.
microsoft/aspnet:4.7.2-windowsservercore-1803
microsoft/windowsservercore:1803
microsoft/iis:windowsservercore-1803
You may get following error if you try to run a legacy image on Windows Server version 1803
C:\k>docker run -d --name iis microsoft/iis
b08d4e031b8203446aedf7cc81ea110ac55009293ded373dfab2271505f6ee75
docker: Error response from daemon: container b08d4e031b8203446aedf7cc81ea110ac55009293ded373dfab2271505f6ee75 encountered an error during CreateContainer: failure in a Windows system call: The operating system of the container does not match the operating system of the host. (0xc0370101) extra info:
...
-
"Azure Conatiner Service - AKS" does not support Windows yet.
-
About k8s version on Windows node (deployed by acs-engine).
Windows agent node set up by acs-engine uses https://github.com/Azure/kubernetes, which contains more features than upstream, e.g. azure disk & file on Windows features are available from v1.7.2, while these two features are avaiable from v1.9.0 in upstream, while all Linux nodes(including master) use upstream.
- How to check windows version in acs-engine template
open file _output/dnsPrefix
/azuredeploy.json under acs-engine:
"agentWindowsPublisher": "MicrosoftWindowsServer",
"agentWindowsOffer": "WindowsServerSemiAnnual",
"agentWindowsSku": "Datacenter-Core-1803-with-Containers-smalldisk"
Fixed in Windows Server 1809