The API server is stateless and should be loadbalanced.
The kubelet should be set to restart on failure and is not resilient. It keeps trying to connect to your API server and update its status if it can't it will keep retrying. The controller manager will remove the node after X minutes of no response.