# How do I get microk8s working in WSL as a worker? Works fine in native install but GPU using WSL does not

**URL:** <https://discuss.kubernetes.io/t/how-do-i-get-microk8s-working-in-wsl-as-a-worker-works-fine-in-native-install-but-gpu-using-wsl-does-not/32014>\
**Category:** Windows\
**Tags:** microk8s\
**Created:** [March 30, 2025, 4:10pm UTC](https://discuss.kubernetes.io/t/how-do-i-get-microk8s-working-in-wsl-as-a-worker-works-fine-in-native-install-but-gpu-using-wsl-does-not/32014 "2025-03-30T16:10:05Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![partyk1d24](https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.kubernetes.io/partyk1d24/32/1578_2.png) [@partyk1d24](https://discuss.kubernetes.io/u/partyk1d24)\
**Post date:** [March 30, 2025, 4:10pm UTC](https://discuss.kubernetes.io/t/how-do-i-get-microk8s-working-in-wsl-as-a-worker-works-fine-in-native-install-but-gpu-using-wsl-does-not/32014/1 "2025-03-30T16:10:05Z")

</div>

I am trying to add my windows machine as a worker on my existing k8s cluster. I tried adding it with a native windows microk8s install but it wouldn’t work with the GPU so I tried to install in WSL. Now it is installed but when I try to add it as a worker to my existing node it doesn’t show up

```auto
...:~$ microk8s add-node
From the node you wish to join to this cluster, run the following:
microk8s join 10.0.0.58:25000/....

Use the '--worker' flag to join a node as a worker not running the control plane, eg:
microk8s join 10.0.0.58:25000/... --worker

If the node you are adding is not reachable through the default interface you can use one of the following:
microk8s join 10.0.0.58:25000/...
microk8s join 172.17.0.1:25000/...
microk8s join fd35:84cd:bbef:386f:3602:86ff:fe40:8e27:25000/...

```

And I join using that on the WSL side

```auto
... ~ - $ sudo microk8s leave
Configuring services.
Generating new cluster certificates.
Waiting for node to start.
 ~ - $ microk8s join 10.0.0.58:25000/.... --worker
Contacting cluster at 10.0.0.58
The node has joined the cluster and will appear in the nodes list in a few seconds.

This worker node gets automatically configured with the API server endpoints.
If the API servers are behind a loadbalancer please set the '--refresh-interval' to '0s' in:
    /var/snap/microk8s/current/args/apiserver-proxy
and replace the API server endpoints with the one provided by the loadbalancer in:
    /var/snap/microk8s/current/args/traefik/provider.yaml

Successfully joined the cluster.

```

So it looks good but when I go to the control node and run `microk8s kubectl get nodes -o wide` I don’t see the node

```auto
...:~$ microk8s kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
yoda Ready <none> 31m v1.32.2 10.0.0.58 <none> Ubuntu 24.04.2 LTS 6.8.0-56-generic containerd://1.6.36

```

How can I find out why it isn’t adding the node even though it says it is? This worked fine when I did it with the native windows install of microk8s (just no GPU) so is it something to do with WSL?

---

<div class="post-metadata">

**Author:** ![partyk1d24](https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.kubernetes.io/partyk1d24/32/1578_2.png) [@partyk1d24](https://discuss.kubernetes.io/u/partyk1d24)\
**Post date:** [March 30, 2025, 6:27pm UTC](https://discuss.kubernetes.io/t/how-do-i-get-microk8s-working-in-wsl-as-a-worker-works-fine-in-native-install-but-gpu-using-wsl-does-not/32014/2 "2025-03-30T18:27:01Z")

</div>

Looks like it might be related to this

```auto
cp: cannot stat '/var/snap/microk8s/7731/var/kubernetes/backend/localnode.yaml': No such file or directory

WARNING: This machine's hostname contains capital letters and/or underscores.
          This is not a valid name for a Kubernetes node, causing node registration to fail.
          Please change the machine's hostname or refer to the documentation for more details:
          https://microk8s.io/docs/troubleshooting#heading--common-issues

```

I tried reinstalling but it isn’t helping.
