Score:0

microk8s minio addons

mx flag

I have setup a microk8s (1.26) cluster that runs on 2 vagrant VMs (both Ubuntu 22.04), I have also enabled the minio addon.

The setup went well, and using sudo microk8s kubectl-minio proxy, I am able to load the minio operator console from my host machine. However, I do not think it is fully working, I cannot access the Management Console, and I do not get the list of buckets.

My guess is that something else needs to be exposed from the cluster, but I am not sure what and how. I managed to use mc only from on of the VM, but not from the host.

I would like to be able to have the console completely working, and even more to be able to interact with the Minio API from the host machine.

Is it possible?

Just to show you the situation:

microk8s kubectl get all --all-namespaces 
NAMESPACE        NAME                                            READY   STATUS    RESTARTS      AGE
kube-system      pod/hostpath-provisioner-69cd9ff5b8-xc9jq       1/1     Running   1 (27m ago)   23h
kube-system      pod/kubernetes-dashboard-dc96f9fc-t8r5z         1/1     Running   1 (27m ago)   23h
kube-system      pod/calico-kube-controllers-7657549d9-nn765     1/1     Running   1 (27m ago)   24h
kube-system      pod/calico-node-xfbsn                           1/1     Running   1 (27m ago)   24h
kube-system      pod/dashboard-metrics-scraper-7bc864c59-2c4mt   1/1     Running   1 (25m ago)   23h
minio-operator   pod/console-66c4b79fbd-fsgkt                    1/1     Running   1 (25m ago)   23h
minio-operator   pod/minio-operator-67dcf6dd7c-rv9cn             1/1     Running   1 (25m ago)   23h
kube-system      pod/coredns-6f5f9b5d74-q6lxq                    1/1     Running   1 (25m ago)   23h
kube-system      pod/calico-node-vhlrq                           1/1     Running   1 (25m ago)   24h
kube-system      pod/metrics-server-6f754f88d-snwgh              1/1     Running   1 (25m ago)   23h
minio-operator   pod/minio-operator-67dcf6dd7c-89pcc             1/1     Running   5 (25m ago)   23h
minio-operator   pod/microk8s-ss-0-0                             1/1     Running   5 (24m ago)   23h

NAMESPACE        NAME                                TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                  AGE
default          service/kubernetes                  ClusterIP   10.152.183.1     <none>        443/TCP                  24h
kube-system      service/metrics-server              ClusterIP   10.152.183.116   <none>        443/TCP                  23h
kube-system      service/kubernetes-dashboard        ClusterIP   10.152.183.52    <none>        443/TCP                  23h
kube-system      service/dashboard-metrics-scraper   ClusterIP   10.152.183.129   <none>        8000/TCP                 23h
kube-system      service/kube-dns                    ClusterIP   10.152.183.10    <none>        53/UDP,53/TCP,9153/TCP   23h
minio-operator   service/operator                    ClusterIP   10.152.183.170   <none>        4222/TCP,4221/TCP        23h
minio-operator   service/console                     ClusterIP   10.152.183.101   <none>        9090/TCP,9443/TCP        23h
minio-operator   service/minio                       ClusterIP   10.152.183.254   <none>        80/TCP                   23h
minio-operator   service/microk8s-console            ClusterIP   10.152.183.130   <none>        9090/TCP                 23h
minio-operator   service/microk8s-hl                 ClusterIP   None             <none>        9000/TCP                 23h

NAMESPACE     NAME                         DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
kube-system   daemonset.apps/calico-node   2         2         2       2            2           kubernetes.io/os=linux   24h

NAMESPACE        NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE
kube-system      deployment.apps/calico-kube-controllers     1/1     1            1           24h
kube-system      deployment.apps/kubernetes-dashboard        1/1     1            1           23h
kube-system      deployment.apps/hostpath-provisioner        1/1     1            1           23h
kube-system      deployment.apps/dashboard-metrics-scraper   1/1     1            1           23h
minio-operator   deployment.apps/console                     1/1     1            1           23h
kube-system      deployment.apps/coredns                     1/1     1            1           23h
kube-system      deployment.apps/metrics-server              1/1     1            1           23h
minio-operator   deployment.apps/minio-operator              2/2     2            2           23h

NAMESPACE        NAME                                                  DESIRED   CURRENT   READY   AGE
kube-system      replicaset.apps/calico-kube-controllers-79568db7f8    0         0         0       24h
kube-system      replicaset.apps/calico-kube-controllers-7657549d9     1         1         1       24h
kube-system      replicaset.apps/kubernetes-dashboard-dc96f9fc         1         1         1       23h
kube-system      replicaset.apps/hostpath-provisioner-69cd9ff5b8       1         1         1       23h
kube-system      replicaset.apps/dashboard-metrics-scraper-7bc864c59   1         1         1       23h
minio-operator   replicaset.apps/console-66c4b79fbd                    1         1         1       23h
kube-system      replicaset.apps/coredns-6f5f9b5d74                    1         1         1       23h
kube-system      replicaset.apps/metrics-server-6f754f88d              1         1         1       23h
minio-operator   replicaset.apps/minio-operator-67dcf6dd7c             2         2         2       23h

NAMESPACE        NAME                             READY   AGE
minio-operator   statefulset.apps/microk8s-ss-0   1/1     23h

And:

microk8s kubectl get endpoints -A  
NAMESPACE        NAME                        ENDPOINTS                                        AGE
default          kubernetes                  10.0.2.15:16443                                  24h
kube-system      kubernetes-dashboard        10.1.146.205:8443                                23h
kube-system      dashboard-metrics-scraper   10.1.96.201:8000                                 23h
minio-operator   console                     10.1.96.203:9443,10.1.96.203:9090                23h
kube-system      kube-dns                    10.1.96.200:53,10.1.96.200:53,10.1.96.200:9153   23h
kube-system      metrics-server              10.1.96.202:4443                                 23h
minio-operator   operator                    10.1.146.204:4222,10.1.146.204:4221              23h
minio-operator   microk8s-hl                 10.1.146.206:9000                                23h
minio-operator   microk8s-console            10.1.146.206:9090                                23h
minio-operator   minio                       10.1.146.206:9000                                23h
kube-system      microk8s.io-hostpath        <none>                                           23h
Score:1
bl flag
  • Did you create any tenants in the operator console? Once you create a tenant you can then have access to the management console where you can create the buckets, users, IAM policies etc.

  • The reason things are working from the VM but not from the Host is because the service is listening on the ClusterIP. In order to expose it to the host you can do one of two things

    • You can expose the service via kubectl port-forward and then from the host access with the port that you have exposed.
    • Or you can change the configuration to listen on NodePort instead of ClusterIP although this can have other unintended side effects.
I sit in a Tesla and translated this thread with Ai:

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.