Kubernetes cluster with microk8s on raspberry pi
If you want to join a node and you get the following error:
microk8s join 192.168.178.57:25000/6a3ce1d2f0105245209e7e5e412a7e54Contacting cluster at 192.168.178.57
Traceback (most recent call last):
File "/snap/microk8s/1908/scripts/cluster/join.py", line 967, in <module>
join_dqlite(connection_parts)
File "/snap/microk8s/1908/scripts/cluster/join.py", line 900, in join_dqlite
update_dqlite(info["cluster_cert"], info["cluster_key"], info["voters"], hostname_override)
File "/snap/microk8s/1908/scripts/cluster/join.py", line 818, in update_dqlite
with open("{}/info.yaml".format(cluster_backup_dir)) as f:
FileNotFoundError: [Errno 2] No such file or directory: '/var/snap/microk8s/1908/var/kubernetes/backend.backup/info.yaml'
This error happens, if you have not enabled dns on your nodes.
So just run "microk8s.enable dns" on every machine:
microk8s.enable dns
Enabling DNS
Applying manifest
serviceaccount/coredns created
configmap/coredns created
deployment.apps/coredns created
service/kube-dns created
clusterrole.rbac.authorization.k8s.io/coredns created
clusterrolebinding.rbac.authorization.k8s.io/coredns created
Restarting kubelet
Adding argument --cluster-domain to nodes.
Configuring node 192.168.178.57
Adding argument --cluster-dns to nodes.
Configuring node 192.168.178.57
Restarting nodes.
Configuring node 192.168.178.57
DNS is enabled
And after that the join will work like expected:
root@ubuntu:/home/ubuntu# microk8s join 192.168.178.57:25000/ed3f57a3641581964cad43f0ceb2b526
Contacting cluster at 192.168.178.57
Waiting for this node to finish joining the cluster. ..
root@ubuntu:/home/ubuntu# kubectl get nodes
NAME STATUS ROLES AGE VERSION
ubuntu Ready <none> 3m35s v1.20.1-34+97978f80232b01
zigbee Ready <none> 37m v1.20.1-34+97978f80232b01
cannot run it on every machine ... microk8s.enable dns
ReplyDeleteThis MicroK8s deployment is acting as a node in a cluster.
Please use the master node.