-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Description
Operating system
latest debian
Description
hi i run the setup in a kubernetes cluster and i experience a weird issue with the internet connection. I'm aware that what i'm about to say is not helpful for tracing but maybe you know/had the issue too
i use win 11 and it runs perfectly at start. i opened a new port 5000 where i run a .net service for automation purposes. everything is reachable and runs smoothly, but the container looses the internet connection randomly. when the internet connection is lost i can't access the port 5000 from the outside anymore, but i can still connect to the machine via vnc(which is super strange).
the connection loss also happens when i do not run the service, e.g. when browsing or when i opened up outlook(so not predictable).
i've also asked chatgpt since i have no experience with windows at all an i've attached screenshots that it asked me to do. it didn't fix it so might be a hallucination. if this doesn't make sense or if it hallucinated, then please just skip it but maybe it is helpful for you.:
🚨 Root Cause
This is the classic SLiRP (user-mode QEMU NAT) freeze inside long-running dockurr/windows containers.
It happens because:
SLiRP’s NAT process runs in userspace inside QEMU.
Under sustained connections (like your .NET service), it leaks or deadlocks network descriptors.
Eventually, the NAT thread stops forwarding — but the guest NIC still looks “up”.
That’s why:
You can RDP (because RDP may use a different channel or cached route).
ping and .NET server stop responding.
Reboot or network reset temporarily fixes it.
for now i just have a livenessprobe that will restart the container (then it s fine again until it breaks again).
if you need anything else please let me know!
thanks in advance
Docker compose
apiVersion: apps/v1
kind: StatefulSet
metadata:
annotations:
meta.helm.sh/release-name: windows
meta.helm.sh/release-namespace: default
creationTimestamp: "2025-10-13T07:28:14Z"
generation: 23
labels:
app.kubernetes.io/instance: windows
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: windows-vm
helm.sh/chart: windows-vm-0.1.0
name: windows-windows-vm
namespace: default
resourceVersion: "52426870264"
uid: 619299ce-8434-4832-98e2-ce5557e7ef74
spec:
persistentVolumeClaimRetentionPolicy:
whenDeleted: Retain
whenScaled: Retain
podManagementPolicy: OrderedReady
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/instance: windows
app.kubernetes.io/name: windows-vm
serviceName: windows-windows-vm-headless
template:
metadata:
creationTimestamp: null
labels:
app.kubernetes.io/instance: windows
app.kubernetes.io/name: windows-vm
spec:
affinity: {}
containers:
- env:
- name: VERSION
value: "11"
- name: DISK_SIZE
value: 64G
- name: CPU_CORES
value: "4"
- name: RAM_SIZE
value: 13G
- name: USER_PORTS
value: "5000"
- name: PORTS
value: 5000:5000
- name: NETWORK
value: user
image: dockurr/windows:latest
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
path: /health
port: 5000
scheme: HTTP
initialDelaySeconds: 120
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 5
name: windows
ports:
- containerPort: 8006
name: web
protocol: TCP
- containerPort: 3389
name: rdp
protocol: TCP
- containerPort: 3389
name: udp
protocol: UDP
- containerPort: 5900
name: vnc
protocol: TCP
- containerPort: 5000
name: app5000
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /health
port: 5000
scheme: HTTP
initialDelaySeconds: 120
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
resources:
limits:
cpu: "4"
memory: 16G
requests:
cpu: "2"
memory: 13G
securityContext:
capabilities:
add:
- NET_ADMIN
privileged: true
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /storage
name: storage
- mountPath: /dev/kvm
name: dev-kvm
- mountPath: /dev/net/tun
name: dev-tun
dnsPolicy: ClusterFirst
nodeSelector:
windows: "true"
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 120
volumes:
- hostPath:
path: /dev/kvm
type: CharDevice
name: dev-kvm
- hostPath:
path: /dev/net/tun
type: CharDevice
name: dev-tun
updateStrategy:
rollingUpdate:
partition: 0
type: RollingUpdate
volumeClaimTemplates:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
name: storage
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 64Gi
volumeMode: Filesystem
status:
phase: Pending
Docker log
❯ Starting Windows for Docker v5.08...
❯ For support visit https://github.com/dockur/windows
❯ CPU: AMD EPYC 7543 | RAM: 15/16 GB | DISK: 42 GB (ext4) | KERNEL: 6.8.0-85...
❯ Nested KVM virtualization detected..
❯ Warning: your configured RAM_SIZE of 13 GB is very close to the 15 GB of memory available, please consider a lower value.
❯ Booting Windows using QEMU v10.0.3...
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000007H:EDX.invtsc [bit 8]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000007H:EDX.invtsc [bit 8]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000007H:EDX.invtsc [bit 8]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000007H:EDX.invtsc [bit 8]
BdsDxe: loading Boot0004 "Windows Boot Manager" from HD(1,GPT,5B21FEA4-CF90-4EEA-97AD-F6B58A77568C,0x800,0x40000)/\EFI\Microsoft\Boot\bootmgfw.efi
BdsDxe: starting Boot0004 "Windows Boot Manager" from HD(1,GPT,5B21FEA4-CF90-4EEA-97AD-F6B58A77568C,0x800,0x40000)/\EFI\Microsoft\Boot\bootmgfw.efi
❯ Windows started successfully, visit http://127.0.0.1:8006/ to view the screen...