You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: keps/sig-windows/1981-windows-privileged-container-support/README.md
+8-12Lines changed: 8 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -555,30 +555,26 @@ During the alpha/beta implementations of this feature only **Symlink** volume mo
555
555
This implemention did unlock a lot of critical use cases for managing Windows nodes in Kubernets clusters but did have some usability issues
556
556
(such as https://pkg.go.dev/k8s.io/client-go/rest#InClusterConfig not working as expected).
557
557
558
-
The **bind mount** volume mount behavior gives full access to the host OS's filesystem (an explicit goal of this enhancement) and addreses the usability issues with the initial approach.
559
-
This approach requires the use of Windows OS APIs that were not present in Windows Server 2019 during alpha/beta implmentations of this feature.
558
+
The **bind mount** volume mount behavior gives full access to the host OS's filesystem (an explicit goal of this enhancement) and addresses the usability issues with the initial approach.
559
+
This approach requires the use of Windows OS APIs that were not present in Windows Server 2019 during alpha/beta implementations of this feature.
560
560
These APIs *will* be available in WS2019 beginning in July 2022 with the monthly OS security patches.
561
561
Containerd v1.7+ will be required for this behavior.
562
562
563
563
- On containerd v1.6 **symlink** volume mount behavior will always be used.
564
564
- On containerd v1.7 **bind** volume mount behavior will always be used.
565
-
- If users are running nodes with Windows Server 2019 with security patches older than July 2022 the volume mounts for HostProcessContainers will fail.
566
-
567
-
We are going to use the Kubernetes v1.25 to explore options to make migration from `symlink` volume mount behavior to `bind` volume mount behavior as smooth as possible.
568
-
569
-
The worst case migration plan is as follows:
570
-
Users who have workloads that depend on the **symlink** mount behavior (ex: are expecting to find mounted volumes under `$CONTAINER_SANDBOX_MOUNT_POINT`) will need to stay on containerd v1.6 releases until their workloads are updated to be compatible with **bind** mount behavior.
565
+
- Backwards compatibility with volume mount paths has been added into containerd v1.7. This means that existing workloads that used `$CONTAINER_SANDBOX_MOUNT_POINT` to access volume mounts will work without updates.
571
566
572
567
#### Container Images
573
568
574
569
-`HostProcess` containers can be built on top of existing Windows base images (nanoserver, servercore, etc).
575
-
- A new Windows container base image will not be introduced for `HostProcess` containers.
576
-
- It is recommended to use nanoserver as the base image for `hostProcess` containers since it has the smallest footprint.
577
-
-`HostProcess` containers will not inherit the same [compatibility requirements](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility) as process isolated containers from an OS perspective. Container runtimes like containerd may be able to use fields on `WindowsPodSandboxConfig` to identify `HostProcess` containers and skip OS version checks when pulling/starting these containers in the future.
570
+
- A new Windows container base image has been introduced for `hostProcess` containers. More info is available at (https://github.com/microsoft/windows-host-process-containers-base-image)
571
+
- Note: `HostProcess` containers do not inherit the same [compatibility requirements](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility) as process isolated containers from an OS perspective but individual container runtimes may have different image pulling/ platform matching behavior.
578
572
579
573
#### Container Image Build/Definition
580
574
581
-
-`HostProcess` container images can be built with Docker.
575
+
-`HostProcess` container images based on nanoserver can be built with Docker.
576
+
-`HostProcess` container images based on the new base image must be built with buildkit.
577
+
- Example at https://github.com/microsoft/windows-host-process-containers-base-image#build-with-buildkit
582
578
- Only a subset of dockerfile operations will be supported (ADD, COPY, PATH, ENTRYPOINT, etc).
583
579
- Note: The subset of dockerfile operations supported for `HostProcess` containers is very close to the subset of operations supported when building images for other OS's with buildkit (similar to how the [pause image](https://github.com/kubernetes/kubernetes/tree/master/build/pause) is built in kubernetes/kubernetes)
584
580
- Documentation on building `HostProcess` containers will be added at either docs.microsoft.com or a new github repository.
0 commit comments