drain-node
Drain a Kubernetes node for maintenance by safely evicting pods, with options to force drain or ignore DaemonSets.
Instructions
Drain a node for maintenance
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | The name of the node to drain | |
| force | No | Force drain even if there are unmanaged pods | |
| ignore_daemonsets | No | Ignore DaemonSet pods during drain |
Implementation Reference
- server.js:2118-2127 (handler)Executes the drain-node tool by running the 'kubectl drain' command with optional force and ignore-daemonsets flags, returning the command output.case "drain-node": { const { node, force = false, ignore_daemonsets = true } = args; const forceArg = force ? "--force" : ""; const ignoreArg = ignore_daemonsets ? "--ignore-daemonsets" : ""; const cmd = `kubectl drain ${node} ${forceArg} ${ignoreArg} --delete-emptydir-data`; const { stdout } = await execAsync(cmd); return { content: [{ type: "text", text: stdout || `Node ${node} drained successfully` }] }; }
- server.js:1155-1175 (schema)Tool definition including name, description, and input schema for the drain-node tool, used for registration and validation.name: "drain-node", description: "Drain a node for maintenance", inputSchema: { type: "object", properties: { node: { type: "string", description: "The name of the node to drain" }, force: { type: "boolean", description: "Force drain even if there are unmanaged pods" }, ignore_daemonsets: { type: "boolean", description: "Ignore DaemonSet pods during drain" } }, required: ["node"] } },
- server.js:1392-1394 (registration)Registers the list of all tools, including drain-node, for the ListToolsRequest.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools }; });