configure kubelet to use rkt instead of docker on coreos configure kubelet to use rkt instead of docker on coreos kubernetes kubernetes

configure kubelet to use rkt instead of docker on coreos


The easiest way to setup kubernetes with rkt as the runtime is to use the scripts found here. As Rob stated, the reason you see that error is because the kubelet is being run inside a container and doesn't see the /usr/bin/rkt on the host.

Right now, getting the containerized kubelet to properly talk to the rkt runtime on the host is a little complicated. Just just bind-mounting the rkt binary into the kubelet container is not enough. The details are captured in this PR.

We've spent some effort making this all work smoothly in the coreos-kubernetes repo and testing the result. If you use the scripts in that repository things should just work by setting the CONTAINER_RUNTIME environment variable to rkt.


Right now the manual process is a little bit tricky to swap docker for rkt, but the automated scripts in the coreos-kubernetes such as the kube-aws tool or the Vagrant docs do this well.

In your specific circumstance, the rkt binary needs to be mounted into the wrapper with RKT_OPTS from the host (this means it gets updated automatically), and then you'll need to add a few more flags to the API server:

--container-runtime=rkt

--rkt-api-endpoint=HOST:PORT

--rkt-path=PATH_TO_RKT_BINARY

--rkt-stage1-image=STAGE1

CoreOS is intending to ship better manual instructions over time as the debugging process and best practices for rkt + kubernetes get more clear.