×

About Windows Container Support for Red Hat OpenShift

Windows Container Support for Red Hat OpenShift enables running Windows compute nodes in an OKD cluster. Running Windows workloads is possible by using the Red Hat Windows Machine Config Operator (WMCO) to install and manage Windows nodes. With Windows nodes available, you can run Windows container workloads in OKD.

The release notes for Red Hat OpenShift for Windows Containers tracks the development of the WMCO, which provides all Windows container workload capabilities in OKD.

Getting support

You must have a subscription to receive support for the Red Hat WMCO. Deploying Windows container workloads in production clusters is not supported without a subscription. If you do not have a subscription, you can use the community WMCO, a distribution that lacks official support. Request support through the Red Hat Customer Portal.

Release notes for Red Hat Windows Machine Config Operator 4.0.0

This release of the WMCO provides bug fixes for running Windows compute nodes in an OKD cluster. The components of the WMCO 4.0.0 were released in RHBA-2021:3702.

Bug fixes

  • Previously, the WMCO used the raw user-provided instance address when creating Bring-Your-Own-Host (BYOH) Windows nodes. This caused BYOH Windows instances to not join an OKD cluster. This bug fix ensures user-provided DNS names resolve to valid IPv4 addresses, and that the resolved value is used when creating BYOH Windows instances. Now BYOH instances with differing hostnames and DNS addresses can be configured as Windows Nodes. (BZ#1995684)

  • Previously, the WMCO performed direct comparisons using unresolved instance addresses when identifying instance-to-node associations. This caused BYOH Windows instances configured to join an OKD cluster to be removed. This bug fix validates DNS addresses by performing DNS lookups of entries that are added to the windows-instances config map. Now the WMCO can properly identify configured instance-to-node relationships, preventing any premature removals of BYOH nodes. (BZ#2005126)

Known issues

  • The file system graphs available in the web console do not display for Windows nodes. This issue is caused by changes in the file system queries, which will be fixed in a future release of WMCO. (BZ#1930347)

  • For clusters installed on VMware vSphere, the WMCO ignored the Deleting phase notification event, leaving incorrect node information in the windows-exporter metrics endpoint. This resulted in an invalid mapping for the Prometheus metrics endpoint. This bug has been fixed; the WMCO now recognizes the Deleting phase notification event and maps the Prometheus metrics endpoint appropriately. (BZ#1995341)

  • When the RunAsUser permission is set in the security context of a Linux-based pod, the projected files have the correct permissions set, including container user ownership. However, when the Windows equivalent RunAsUsername permission is set in a Windows pod, the kubelet is prevented from setting correct ownership on the files in the projected volume. This problem can get exacerbated when used in conjunction with a hostPath volume where best practices are not followed. For example, giving a pod access to the C:\var\lib\kubelet\pods\ folder results in that pod being able to access service account tokens from other pods.

    By default, the projected files will have the following ownership, as shown in this example Windows projected volume file:

    Path   : Microsoft.PowerShell.Core\FileSystem::C:\var\run\secrets\kubernetes.io\serviceaccount\..2021_08_31_22_22_18.318230061\ca.crt
    Owner  : BUILTIN\Administrators
    Group  : NT AUTHORITY\SYSTEM
    Access : NT AUTHORITY\SYSTEM Allow  FullControl
             BUILTIN\Administrators Allow  FullControl
             BUILTIN\Users Allow  ReadAndExecute, Synchronize
    Audit  :
    Sddl   : O:BAG:SYD:AI(A;ID;FA;;;SY)(A;ID;FA;;;BA)(A;ID;0x1200a9;;;BU)

    This indicates all administrator users, like someone with the ContainerAdministrator role, have read, write, and execute access, while non-administrator users have read and execute access.

    OKD applies the RunAsUser security context to all pods irrespective of its operating system. This means Windows pods automatically have the RunAsUser permission applied to its security context.

    In addition, if a Windows pod is created with a projected volume with the default RunAsUser permission set, the pod gets stuck in the ContainerCreating phase.

    To handle these issues, OKD forces the file permission handling in projected service account volumes set in the security context of the pod to not be honored for projected volumes on Windows (BZ#1971745). Note that this behavior for Windows pods is how file permission handling used to work for all pod types prior to OKD 4.7.

Windows Machine Config Operator prerequisites

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.

Supported platforms based on OKD and WMCO versions

Platform Supported OKD version Supported WMCO version Installer-provisioned infrastructure installation support User-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

Supported platforms for Bring-Your-Own-Host (BYOH) instances based on OKD and WMCO versions

Platform Supported OKD version Supported WMCO version BYOH for installer-provisioned infrastructure installation support BYOH 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+

GA

Tech Preview

VMware vSphere

4.8+

WMCO 3.1+

GA

GA[1]

bare metal

4.8+

WMCO 3.1+

GA[1]

  1. This installation type is only supported when the platform: none field is set in the install-config.yaml file during cluster installation.

Supported Windows Server versions

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.

Platform Supported Windows Server version

Amazon Web Services (AWS)

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

Microsoft Azure

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

VMware vSphere

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

Supported networking

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
Platform Supported 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-Kubernetes Supported Windows Server version

Default VXLAN port

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

Custom VXLAN port

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

Running Windows container workloads is not supported for clusters in a restricted network or disconnected environment.

Version 4.x of the WMCO is only compatible with OKD 4.9.