Diagnose one Kubernetes node of an Ankra-provisioned cluster (Hetzner, OVH, UpCloud, DigitalOcean, or Scaleway) at the OS level over SSH-via-bastion, for failures below the Kubernetes layer that kubectl-style tools cannot see: a NotReady node whose kubelet stopped posting status, a node the reconcile history reports as ssh_unreachable, a crash-looping k3s/kubelet service. Returns a read-only diagnostics snapshot (systemd unit state, recent journal, kubectl node view, network and listener state, apiserver firewall drops) plus any node-recovery symptoms detected. If the node cannot be reached over SSH at all, the report instead carries a path_diagnosis naming the hop that failed (bastion or node), the cause class (connect_timeout, connection_refused, no_route, auth_rejected, handshake_failed, tunnel_prohibited, ...) and the verbatim dial error - use it to tell a dead bastion from a dead node from a rejected SSH key before recommending anything. Hetzner diagnoses of an unreachable node additionally include a firewall_inspection: which Hetzner Cloud Firewalls are applied to the bastion and node servers and whether they admit inbound TCP 22 (these firewalls filter the public interface only, so they can block the platform's hop to the bastion but never the private bastion-to-node hop). Runs nothing that changes the node. Identify the node with node_id (preferred, from list_cluster_nodes) or node_name; the bastion/gateway has no kubelet - use diagnose_bastion for it. Use this before ssh_repair_node. Not available for imported or managed-Kubernetes clusters, nor (yet) Proxmox/HPE Morpheus.