Windows Node Workload Scheduling and Isolation Prompt
Correctly place Windows containers onto Windows nodes in a mixed-OS cluster using nodeSelector, OS taints, and RuntimeClass so Linux pods never land on Windows nodes and Windows pods never crash on Linux.
- Target user
- Platform engineers running mixed Windows/Linux Kubernetes
- Difficulty
- Advanced
- Tools
- Claude, ChatGPT, Cursor
The prompt
You are a senior platform engineer hardening pod scheduling in a mixed Windows/Linux Kubernetes cluster. Reason from labels, taints, and tolerations that Kubernetes actually applies. I will provide some of: - `kubectl get nodes --show-labels` (look for `kubernetes.io/os` and `node.kubernetes.io/windows-build`) - The Deployment/DaemonSet specs for Windows and Linux workloads - Any existing taints on the Windows nodes and tolerations on the pods - Symptoms (pods Pending, ImagePullBackOff, exec format error, or Linux pods landing on Windows nodes) Do this: 1. **Establish the placement contract** — confirm every Windows node carries `kubernetes.io/os=windows` and that Windows nodes are tainted (e.g. `os=windows:NoSchedule`) so unaware Linux pods are repelled by default. 2. **Pin Windows workloads** — give the exact `nodeSelector` (`kubernetes.io/os: windows`) plus the matching toleration, and validate the host/container build compatibility via `node.kubernetes.io/windows-build`. 3. **Protect Linux workloads** — ensure Linux pods carry `kubernetes.io/os: linux` in nodeSelector so cluster-autoscaler or a new Windows node never attracts them. 4. **Diagnose mis-scheduling** — if a pod is Pending or crash-looping, identify whether it is an OS mismatch, a missing toleration, or a build-number incompatibility, and quote the event that proves it. 5. **DaemonSet caveat** — for DaemonSets that must skip Windows nodes, show the affinity/toleration pattern that keeps them Linux-only. 6. **Output the corrected manifests** — return the minimal spec diffs for both the Windows and Linux workloads. Output: (a) the OS placement rule per workload, (b) the exact nodeSelector/toleration blocks, (c) the root cause of any current mis-scheduling with its evidence line, (d) a one-command verification (`kubectl get pod -o wide` mapped to node OS).
Run this prompt with AI
Test it, get an AI-improved version, or compare models — live in the Prompt Workspace. No copy-paste.
Related prompts
-
CronJob Concurrency, History, and Missed-Schedule Tuning Prompt
Tune a CronJob's concurrencyPolicy, startingDeadlineSeconds, and history limits so overlapping runs, missed schedules after downtime, and unbounded Job/Pod accumulation stop happening.
-
Pending Pod Scheduling Diagnosis Prompt
Diagnose why a pod is stuck Pending by reading scheduler events, node capacity, and the pod's scheduling constraints, then propose the minimal change to get it scheduled.
-
Kubernetes QoS Class & Guaranteed Workload Design Prompt
Design pod requests and limits to land workloads in the right QoS class (Guaranteed, Burstable, BestEffort) so the most critical pods survive node memory pressure and eviction.
-
Helm Chart.lock Dependency Drift Reconciliation Prompt
Resolve Chart.yaml vs Chart.lock dependency drift and 'found in Chart.yaml, but missing in charts/ directory' failures by reasoning about version ranges, the lock digest, and helm dependency build vs update.
More Kubernetes & Helm prompts & error guides
Browse every Kubernetes & Helm prompt and troubleshooting guide in one place.
Reading prompts? Get all 500 in one free PDF
500 battle-tested, copy-paste AI prompts engineered by a senior systems engineer — every one with fill-in placeholders and safety/back-out notes. Drop your email and it's yours.
- 500 prompts: Linux · Kubernetes · Terraform · OpenStack · GitLab · Docker · Monitoring · Incident Response
- Instant PDF download — yours free, forever
- Plus one practical AI-workflow email a week (no spam)
Single opt-in · unsubscribe anytime · no spam.