Rancher k3s Docker App¶
The k3s docker app represents a minimalistic single node installation of Kubernetes capable of running on resource constrained devices such as the Raspberry Pi.
Accessing k3s locally¶
Once the k3s docker-app is installed, docker will display it in the process status listing of the target LMP device:
lmp-device:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2d738695a9f8 ra... "/bi... 3 ho... Up ... 0.0... k3s_master_1
The truncated listing shows the k3s_master_1
container running. This
bit of information will prove useful when preparing to access the
Kubernetes installation remotely.
Accessing k3s via kubectl¶
Before running kubectl commands, config details must be incorporated from the k3s instance. They may be extracted directly from a running container instance like so:
lmp-device:~$ docker exec k3s_master_1 cat /var/lib/rancher/k3s/agent/kubeconfig.yaml
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: ...
server: https://127.0.0.1:6443
...
The resulting output still needs to be adapted for the host’s
~/.kube/config
file. For the sake of brevity, just change the
cluster entry’s server field, from:
server: https://127.0.0.1:6443
to:
server: https://kubernetes:6443
Then, add this snippet to the host machine’s /etc/hosts
file:
<INSERT_IP_ADDRESS_OF_LMP_DEVICE> kubernetes
Assuming the target device is accessible from the host machine and kubectl is already installed, kubectl commands may now be issued from the host:
host-machine:~$ kubectl get nodes ✔ 1701 11:12:23
NAME STATUS ROLES AGE VERSION
2d738695a9f8 Ready master 20h v1.15.4-k3s.1
Happy orchestrating!