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.