Fail to install jupyterhub with helm3

To install JupyterHub on microk8s 1.28/stable but failed.
My system is Ubuntu 22.04 LTS. After installing microk8s, I try to install JupyterHub by:

administer@gdsl1:~$ microk8s helm3 upgrade --cleanup-on-fail --install test-jupyter jupyterhub/jupyterhub --namespace testjhub --create-namespace --values my-values.yaml
Release "test-jupyter" does not exist. Installing it now.
Error: failed pre-install: timed out waiting for the condition

I can see the pods with Error on namespace testjhub by:

administer@gdsl1:~$ microk8s kubectl get all -A
NAMESPACE     NAME                                             READY   STATUS    RESTARTS       AGE
kube-system   pod/calico-kube-controllers-77bd7c5b-j5w2v       1/1     Running   2 (120m ago)   44h
kube-system   pod/calico-node-t72j7                            1/1     Running   1 (120m ago)   138m
kube-system   pod/dashboard-metrics-scraper-5657497c4c-djkwh   1/1     Running   1 (120m ago)   136m
kube-system   pod/hostpath-provisioner-7df77bc496-lndxw        1/1     Running   1 (120m ago)   130m
kube-system   pod/kubernetes-dashboard-54b48fbf9-9sxcj         1/1     Running   1 (120m ago)   136m
kube-system   pod/metrics-server-848968bdcd-pmwnt              1/1     Running   1 (120m ago)   136m
testjhub      pod/hook-image-awaiter-5tpp6                     0/1     Error     0              71m
testjhub      pod/hook-image-awaiter-7bdz6                     0/1     Error     0              82m
testjhub      pod/hook-image-awaiter-fh8ct                     0/1     Error     0              78m
testjhub      pod/hook-image-awaiter-jpzc9                     0/1     Error     0              53m
testjhub      pod/hook-image-awaiter-wx2c2                     0/1     Error     0              61m
testjhub      pod/hook-image-awaiter-xcbsh                     0/1     Error     0              75m
testjhub      pod/hook-image-awaiter-xp6qc                     0/1     Error     0              67m
testjhub      pod/hook-image-puller-4gz5v                      1/1     Running   0              82m

NAMESPACE     NAME                                TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                  AGE
default       service/kubernetes                  ClusterIP   10.152.183.1     <none>        443/TCP                  44h
kube-system   service/dashboard-metrics-scraper   ClusterIP   10.152.183.76    <none>        8000/TCP                 136m
kube-system   service/kube-dns                    ClusterIP   10.152.183.10    <none>        53/UDP,53/TCP,9153/TCP   44h
kube-system   service/kubernetes-dashboard        ClusterIP   10.152.183.107   <none>        443/TCP                  136m
kube-system   service/metrics-server              ClusterIP   10.152.183.24    <none>        443/TCP                  136m

NAMESPACE     NAME                               DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
kube-system   daemonset.apps/calico-node         1         1         1       1            1           kubernetes.io/os=linux   44h
testjhub      daemonset.apps/hook-image-puller   1         1         1       1            1           <none>                   82m

NAMESPACE     NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE
kube-system   deployment.apps/calico-kube-controllers     1/1     1            1           44h
kube-system   deployment.apps/dashboard-metrics-scraper   1/1     1            1           136m
kube-system   deployment.apps/hostpath-provisioner        1/1     1            1           130m
kube-system   deployment.apps/kubernetes-dashboard        1/1     1            1           136m
kube-system   deployment.apps/metrics-server              1/1     1            1           136m

NAMESPACE     NAME                                                   DESIRED   CURRENT   READY   AGE
kube-system   replicaset.apps/calico-kube-controllers-77bd7c5b       1         1         1       44h
kube-system   replicaset.apps/dashboard-metrics-scraper-5657497c4c   1         1         1       136m
kube-system   replicaset.apps/hostpath-provisioner-7df77bc496        1         1         1       130m
kube-system   replicaset.apps/kubernetes-dashboard-54b48fbf9         1         1         1       136m
kube-system   replicaset.apps/metrics-server-848968bdcd              1         1         1       136m

NAMESPACE   NAME                           COMPLETIONS   DURATION   AGE
testjhub    job.batch/hook-image-awaiter   0/1           82m        82m

Here is log of one error pod:

administer@gdsl1:~$ microk8s kubectl logs hook-image-awaiter-7bdz6 -n testjhub
2024/09/15 11:13:17 [DEBUG] GET https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller
2024/09/15 11:13:32 [ERR] GET https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller request failed: Get "https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller": dial tcp: lookup kubernetes.default.svc on 10.152.183.10:53: read udp 10.1.59.155:59325->10.152.183.10:53: i/o timeout
2024/09/15 11:13:32 [DEBUG] GET https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller: retrying in 5s (5 left)
2024/09/15 11:13:52 [ERR] GET https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller request failed: Get "https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller": dial tcp: lookup kubernetes.default.svc on 10.152.183.10:53: read udp 10.1.59.155:58559->10.152.183.10:53: i/o timeout
2024/09/15 11:13:52 [DEBUG] GET https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller: retrying in 10s (4 left)
2024/09/15 11:14:17 [ERR] GET https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller request failed: Get "https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller": dial tcp: lookup kubernetes.default.svc on 10.152.183.10:53: read udp 10.1.59.155:35007->10.152.183.10:53: i/o timeout
2024/09/15 11:14:17 [DEBUG] GET https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller: retrying in 20s (3 left)
2024/09/15 11:14:52 [ERR] GET https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller request failed: Get "https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller": dial tcp: lookup kubernetes.default.svc on 10.152.183.10:53: read udp 10.1.59.155:36489->10.152.183.10:53: i/o timeout
2024/09/15 11:14:52 [DEBUG] GET https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller: retrying in 30s (2 left)
2024/09/15 11:15:37 [ERR] GET https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller request failed: Get "https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller": dial tcp: lookup kubernetes.default.svc on 10.152.183.10:53: read udp 10.1.59.155:38029->10.152.183.10:53: i/o timeout
2024/09/15 11:15:37 [DEBUG] GET https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller: retrying in 30s (1 left)
2024/09/15 11:16:22 [ERR] GET https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller request failed: Get "https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller": dial tcp: lookup kubernetes.default.svc on 10.152.183.10:53: read udp 10.1.59.155:46976->10.152.183.10:53: i/o timeout
2024/09/15 11:16:22 GET https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller giving up after 6 attempt(s): Get "https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller": dial tcp: lookup kubernetes.default.svc on 10.152.183.10:53: read udp 10.1.59.155:46976->10.152.183.10:53: i/o timeout

The log mentions:

GET https://kubernetes.default.svc:443/apis/apps/v1/namespaces/testjhub/daemonsets/hook-image-puller request failed

Any idea?

It sounds like there might be a DNS or networking problem. You could try disabling network policies, but if that doesn’t help I think you’ll need to check your K8s cluster is working properly.