Understanding Windows container workloads

    The following information details the supported platform versions, Windows Server versions, and networking configurations for the Windows Machine Config Operator. See the vSphere documentation for any information that is relevant to only that platform.

    PlatformSupported OKD versionSupported WMCO versionInstaller-provisioned infrastructure installation supportUser-provisioned infrastructure installation support

    Amazon Web Services (AWS)

    4.6+

    WMCO 1.0+

    GA

    Tech Preview

    Microsoft Azure

    4.6+

    WMCO 1.0+

    GA

    Tech Preview

    VMware vSphere

    4.7+

    WMCO 2.0+

    GA

    Tech Preview

    PlatformSupported OKD versionSupported WMCO versionBYOH for installer-provisioned infrastructure installation supportBYOH for user-provisioned infrastructure installation support

    Amazon Web Services (AWS)

    4.8+

    WMCO 3.1+

    GA

    Tech Preview

    Microsoft Azure

    4.8+

    WMCO 3.1+

    Tech Preview

    VMware vSphere

    4.8+

    WMCO 3.1+

    GA

    GA[1]

    bare metal

    4.8+

    WMCO 3.1+

    GA[1]

    The following table lists the supported Windows Server version based on the applicable platform. Any unlisted Windows Server version is not supported and will cause errors. To prevent these errors, only use the appropriate version according to the platform in use.

    Hybrid networking with OVN-Kubernetes is the only supported networking configuration. See the additional resources below for more information on this functionality. The following tables outline the type of networking configuration and Windows Server versions to use based on your platform. You must specify the network configuration when you install the cluster. Be aware that OpenShift SDN networking is the default network for OKD clusters. However, OpenShift SDN is not supported by WMCO.

    Table 1. Platform networking support
    PlatformSupported networking

    Amazon Web Services (AWS)

    Hybrid networking with OVN-Kubernetes

    Microsoft Azure

    Hybrid networking with OVN-Kubernetes

    VMware vSphere

    Hybrid networking with OVN-Kubernetes with a custom VXLAN port

    Table 2. Hybrid OVN-Kubernetes Windows Server support
    Hybrid networking with OVN-KubernetesSupported Windows Server version

    Default VXLAN port

    Windows Server Long-Term Servicing Channel (LTSC): Windows Server 2019

    Windows Server Semi-Annual Channel (SAC): Windows Server 2004 and 20H2

    The installer-provisioned infrastructure installation method is the only supported installation method. This is consistent across all supported platforms. The user-provisioned infrastructure installation method is Tech Preview for all supported platforms.

    Additional resources

    • See

    To run Windows workloads in your cluster, you must first install the Windows Machine Config Operator (WMCO). The WMCO is a Linux-based Operator that runs on Linux-based control plane and compute nodes. The WMCO orchestrates the process of deploying and managing Windows workloads on a cluster.

    Figure 1. WMCO design

    Before deploying Windows workloads, you must create a Windows compute node and have it join the cluster. The Windows node hosts the Windows workloads in a cluster, and can run alongside other Linux-based compute nodes. You can create a Windows compute node by creating a Windows machine set to host Windows Server compute machines. You must apply a Windows-specific label to the machine set that specifies a Windows OS image that has the Docker-formatted container runtime add-on enabled.

    The WMCO watches for machines with the Windows label. After a Windows machine set is detected and its respective machines are provisioned, the WMCO configures the underlying Windows virtual machine (VM) so that it can join the cluster as a compute node.

    Mixed Windows and Linux workloads

    Figure 2. Mixed Windows and Linux workloads

    The WMCO expects a predetermined secret in its namespace containing a private key that is used to interact with the Windows instance. WMCO checks for this secret during boot up time and creates a user data secret which you must reference in the Windows object that you created. Then the WMCO populates the user data secret with a public key that corresponds to the private key. With this data in place, the cluster can connect to the Windows VM using an SSH connection.

    After the cluster establishes a connection with the Windows VM, you can manage the Windows node using similar practices as you would a Linux-based node.

    The OKD web console provides most of the same monitoring capabilities for Windows nodes that are available for Linux nodes. However, the ability to monitor workload graphs for pods running on Windows nodes is not available at this time.

    Scheduling Windows workloads to a Windows node can be done with typical pod scheduling practices like taints, tolerations, and node selectors; alternatively, you can differentiate your Windows workloads from Linux workloads and other Windows-versioned workloads by using a object.

    The following Windows-specific services are installed on each Windows node:

    ServiceDescription

    kubelet

    Registers the Windows node and manages its status.

    Container Network Interface (CNI) plug-ins

    Exposes networking for Windows nodes.

    Windows Machine Config Bootstrapper (WMCB)

    Configures the kubelet and CNI plug-ins.

    hybrid-overlay

    Creates the OKD .

    kube-proxy

    Maintains network rules on nodes allowing outside communication.