City nodes have duplicate Docker and containerd paths and Kubernetes calls the wrong runtime. What should ops untangle?
Select an answer to reveal the explanation.
Short Explanation
Duplicate Docker and containerd paths confuse which runtime Kubernetes dials—pick one owner and document it. Removing kubelet is how the whole civic cluster goes dark.
Full Explanation
City nodes with duplicate Docker and containerd paths that cause Kubernetes to call the wrong runtime are fixed by clarifying Docker versus containerd ownership so municipal Kubernetes uses the intended CRI endpoint. Mixed historical installs often leave docker.sock assumptions beside containerd sockets, with kubelet flags or RuntimeClass pointing at the stale path. Documenting a single owner runtime and aligning kubelet/CRI config stops pods from launching under an unexpected stack that lacks the NVIDIA hooks ops expected.
Installing a third container runtime without documenting ownership fails by concept: it increases ambiguity and expands the attack/support surface. Removing kubelet so no runtime is ever selected fails catastrophically—the cluster stops scheduling. Forcing every pod to hostNetwork to bypass the runtime fails because hostNetwork does not replace CRI; containers still need a runtime, and hostNetwork broadens network exposure without fixing GPU runtime selection.
Exam caveat: Docker-shim removal and containerd-as-CRI are common exam themes. Know which socket kubelet is configured to use and whether NVIDIA device plugin/toolkit integration matches that CRI. Do not assume "Docker is installed" means Kubernetes is using Docker.
Operational check: inspect kubelet CRI endpoint and RuntimeClass settings, list active runtimes, remove or disable the unused path per change control, restart kubelet, and deploy a GPU canary. Verify the municipal device plugin and toolkit hooks attach on the chosen runtime and update the node image docs so duplicate installs are not reintroduced.