<p>I’m looking for a breakdown of the minimal requirements for a kubelet implementation. Something like sequence diagrams/descriptions and APIs.</p>
<p>I’m looking to write a minimal kubelet I can run on a reasonably capable microcontroller so that app binaries can be loaded and managed from an existing cluster (the container engine would actually flash to a connected microcontroller and restart). I’ve been looking through the kubelet code and there’s a lot to follow so any starting points would be helpful.</p>
<p>A related question, does a kubelet need to run gRPC or can it fall back to a RESTful api? (there’s no existing gRPC I can run on the micro but there is nanopb and existing https APIs)</p>

Trevor
<p>This probably won't be a full answer, however there are some details that will help you.</p>
<p>First I'll start with related question about using <code>gRPC</code> and/or <code>REST API</code>.
Based on the <a href="https://github.com/kubernetes/kubernetes/blob/4a6935b31fcc4d1498c977d90387e02b6b93288f/pkg/kubelet/server/server.go#L160-L174" rel="nofollow noreferrer">kubelet code</a>  there is a new server creation part to handle HTTP requests. Taking this into account, we can consider <code>kubelet</code> gets requests to its HTTPS endpoint.
Also indirectly seen from <a href="https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet-authentication-authorization/#overview" rel="nofollow noreferrer">kubelet authentication/authorization documentation</a>, there are details only about <code>HTTPS endpoint</code>.</p>
<p>Moving to an API part. It's still not documented properly so the best way to find some information is to look into code, e.g. <a href="https://github.com/kubernetes/kubernetes/blob/bd239d42e463bff7694c30c994abd54e4db78700/pkg/kubelet/server/server.go#L76-L84" rel="nofollow noreferrer">about endpoints</a></p>
<p>Last part is <a href="https://www.deepnetwork.com/blog/2020/01/13/kubelet-api.html" rel="nofollow noreferrer">this useful page</a> where a lot of information about <code>kubelet API</code> is gathered</p>
