k3s icon indicating copy to clipboard operation
k3s copied to clipboard

k3s doesn't work on Chrome OS Crostini

Open wpwoodjr opened this issue 5 years ago • 9 comments

Describe the bug k3s fails on Crostini

To Reproduce Install k3s and attempt to start Kubernetes cluster

Expected behavior Kubernetes cluster starts

Actual behavior Cluster fails to start

Additional context Speaking with Darren Sheperd at Kubecon, he said that k3s would need some changes to work in Crostini, if it was even possible. I'm opening this issue as a reminder to please look into it.

wpwoodjr avatar Nov 22 '19 00:11 wpwoodjr

Really want this to work on my Pixelbook please.

staticfrost avatar Nov 25 '19 10:11 staticfrost

It seems like the vxlan moduke is missing in the Crostini kernel

floriankoch avatar Apr 12 '20 06:04 floriankoch

Another pixelbook user here that needs this.

localredhead avatar Dec 04 '20 15:12 localredhead

Doen't work on my chromebook as well

k3s service starts but i get no node would be great if someone can add chromebook support when possible

Thanks

kkarthik23 avatar Mar 28 '21 20:03 kkarthik23

I am seeing the same issue. The logs show that we are lack of OVERLAY_FS and BRIDGE_NETFILTER support. Similar issue for minikube here: https://github.com/kubernetes/minikube/issues/6411

keyonjie avatar Jun 09 '22 18:06 keyonjie

related:

  • https://richrose.dev/posts/chromeos/productivity/chromeos-minikube/
  • https://github.com/kubernetes-sigs/kind/issues/763#issuecomment-1219133506

kkimdev avatar Sep 10 '22 07:09 kkimdev

Based on https://twitter.com/ibuildthecloud/status/1571718481133064193 & https://twitter.com/ibuildthecloud/status/1571736993725566976

I just tried as:

apt install -y fuse3
curl -sfL https://get.k3s.io | sh -s - --snapshotter fuse-overlayfs --kubelet-arg 'feature-gates=KubeletInUserNamespace=true' --kube-proxy-arg 'proxy-mode=ipvs' --write-kubeconfig-mode 0644

And it seems to work just fine:

eminguez@k3s:~$ k get po -A
NAMESPACE              NAME                                        READY   STATUS      RESTARTS      AGE
kube-system            helm-install-traefik-crd-w949j              0/1     Completed   0             111m
kube-system            helm-install-traefik-tqxt9                  0/1     Completed   2             111m
kube-system            metrics-server-668d979685-x9lc4             1/1     Running     0             111m
kubernetes-dashboard   dashboard-metrics-scraper-8c47d4b5d-h9n4d   1/1     Running     0             106m
kube-system            local-path-provisioner-7b7dc8d6f5-h48x4     1/1     Running     0             111m
kube-system            coredns-b96499967-bz897                     1/1     Running     0             111m
kube-system            traefik-7cd4fcff68-s5x8b                    1/1     Running     0             109m
kube-system            svclb-traefik-1b183594-vwsw8                2/2     Running     0             109m
kubernetes-dashboard   kubernetes-dashboard-67bd8fc546-6w5s4       1/1     Running     1 (13m ago)   106m
default                hello-world-nginx-66c656756f-rxx6r          1/1     Running     0             5m58s
default                hello-world-nginx-66c656756f-s9xrq          1/1     Running     0             5m58s
default                hello-world-nginx-66c656756f-222dw          1/1     Running     0             5m58s
eminguez@k3s:~$ k get ingress
NAME          CLASS    HOSTS   ADDRESS          PORTS   AGE
hello-world   <none>   *       100.115.92.198   80      6m
eminguez@k3s:~$ curl http://100.115.92.198
<html>
<head>
  <title>Hello World!</title>
</head>
<body>Hello World!</body>
</html>

e-minguez avatar Sep 20 '22 13:09 e-minguez

It doesn't fully work because iptables bridge filtering is not supported by the kernel. This will manifest itself easily by the fact that DNS is broken inside pods. Inside a pod just run "ping www.google.com" and you'll see the DNS fails to resolve. This is because the request going to 10.43.0.10 (for coredns) is not getting processed by the kube proxy iptables rules.

ibuildthecloud avatar Sep 20 '22 13:09 ibuildthecloud

Possibly there is an approach to use nftables instead of iptables. I haven't investigated that.

ibuildthecloud avatar Sep 20 '22 13:09 ibuildthecloud

Not planning on adding ChromeOS support at this time.

brandond avatar Feb 28 '23 17:02 brandond