Rak8s using docker 18.06.0~ce~3-0~raspbian and kubernetes 1.11.1-00


#1

Hello everyone,

I’ve successfully installed, initialized and tested rak8s with docker 18.06.0~ce~3-0~raspbian and kubernetes 1.11.1-00. The only thing I had to change was to add the -f (force) parameter to the kubeadm reset command in the master and workers playbook.

I deployed hypriot/rpi-busybox-httpd and traefik (via DaemonSet) on the cluster and they worked like a charm.

My group_vars/all.yml looks like this:

token: udy29x.ugyyk3tumg27atmr
podnet: 10.244.0.0/16
kubernetes_package_version: “1.11.1-00”
kubernetes_version: “v1.11.1”
docker_ce_version: “18.06.0~ce~3-0~raspbian”
flannel_version: “v0.10.0”


#2

I built:
kubernetes_package_version: “1.11.2-00”
kubernetes_version: “v1.11.2”
docker_ce_version: “18.06.0~ce~3-0~raspbian”

and got timeouts. Appears that the pi is no longer fast enough to start the k8s containers within the window given.
I changed the startup time to 60sec and still was unable to start the containers in time.

I’m guessing unless they trim back the resources needed to run the apiserver container there is not much we can do.


#3

Hi ufud-org,

how in detail did you deploy hypriot/rpi-busybox-httpd and traefik? I am struggeling since weeks and months with deploying services to my kubernetes cluster - the service simply doesn’t respond. (see also my other “call for help” here on the discourse.

Thanks
Heinz


#4

@heinz - I deployed the hypriot/rpi-busybox-httpd follwoing the instrctions here (https://blog.hypriot.com/post/setup-kubernetes-raspberry-pi-cluster/).

The traefik bit was a little tricky first, since I had to make sure the rpi-busybox pods (which I had created in a seperate namespace) were accessible by the traefik service.

I can provide the yaml files I uesd for my setup, maybe this helps. keep in mind that current versions of kubernetes do need a proper RBAC configuration to get things like traefik to work.


#5

@ufud-org - I tested with two versions of the traefik ingress. Variant 1: Deploy the ingress controller as a Deployment based on a Service that is configured as NodePort - That worked. I am able to curl the rpi-busybox-http from outside of the cluster using the port which is assigned by the nodeport.
Variant 2: Deploy the ingress controller as a DaemonSet based on a Service that is configured as a ClusterIP. - That didn’t work. It seems that the DaemonSet doesn’t bind to the port 80 of the host. If I try to access the service from outside of the cluster I get a connection refused.
The configuration of the DaemonSet is done based on the docu in https://docs.traefik.io/user-guide/kubernetes/

Deployment is good and the controller is executed on all nodes (as a pod) but it seems that he doesn’t listen on port 80 of the eth0 of the node.
It could be something with the RBAC but I don’t find how I can debug this.
Any idea?
Thanks Heinz


#6

I finally got it working. I took the Daemon at definition from the traefik page but I had to add “hostNetwork: true” to the spec of the Daemon set and “type: ClusterIP” to the spec of the Service.
Imho these are anyway the defaults but without specifying them explicitly, the DaemonSet did not listen on the specified hostPorts.

Greetings and thanks
Heinz