Install MicroK8s Kubernetes Cluster on Linux Mint

MicroK8s is a powerful, lightweight and a reliable production-ready Kubernetes distribution. It is the smallest and fastest multi-node kubernetes and works on Linux, Windows and MacOS. MickroK8s can easily be installed with a single command and takes away the complexity associated with setting up Kubernetes. MicroK8s is great for offline development, prototyping, and testing.

Install MicroK8s on Linux Mint

We are going to use snap to install MicroK8s on Linux Mint.

Installing MicroK8s

Once snap is enable on Linux mint, run the below command to install MicroK8s

sudo apt update && sudo apt install snapd
sudo snap install microk8s --classic

Successful installation output:

admin@cloudspinx:~$ sudo apt update && sudo apt install snapd
Hit:1 https://download.docker.com/linux/ubuntu noble InRelease
Hit:2 http://security.ubuntu.com/ubuntu noble-security InRelease
Get:3 http://nova.clouds.archive.ubuntu.com/ubuntu noble InRelease [256 kB]
Hit:4 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates InRelease
Hit:5 http://nova.clouds.archive.ubuntu.com/ubuntu noble-backports InRelease
Fetched 256 kB in 1s (271 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
2 packages can be upgraded. Run 'apt list --upgradable' to see them.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
snapd is already the newest version (2.65.3+24.04).
snapd set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
admin@cloudspinx:~$ sudo snap install microk8s --classic
microk8s (1.30/stable) v1.30.5 from Canonical✓ installed

Add user to microk8s group

Your local user should be part of microk8s group for it to run commands without sudo.

sudo usermod -a -G microk8s $USER 
sudo chown -f -R $USER ~/.kube

Managing Microk8s

The following steps show how to manage Microk8s service.

Start MicroK8s

To start MicroK8s, we run the below command

admin@cloudspinx:~$ microk8s start
Started.

Check MicroK8s status

To check whether MicroK8s is running, we use the below command.

admin@cloudspinx:~$ microk8s status
microk8s is running
high-availability: no
  datastore master nodes: 127.0.0.1:19001
  datastore standby nodes: none
addons:
  enabled:
    ha-cluster           # (core) Configure high availability on the current node
    helm                 # (core) Helm - the package manager for Kubernetes
    helm3                # (core) Helm 3 - the package manager for Kubernetes
  disabled:
    cert-manager         # (core) Cloud native certificate management
    community            # (core) The community addons repository
    dashboard            # (core) The Kubernetes dashboard
    dns                  # (core) CoreDNS
    gpu                  # (core) Automatic enablement of Nvidia CUDA
    host-access          # (core) Allow Pods connecting to Host services smoothly
    hostpath-storage     # (core) Storage class; allocates storage from host directory
    ingress              # (core) Ingress controller for external access
    kube-ovn             # (core) An advanced network fabric for Kubernetes
    mayastor             # (core) OpenEBS MayaStor
    metallb              # (core) Loadbalancer for your Kubernetes cluster
    metrics-server       # (core) K8s Metrics Server for API access to service metrics
    minio                # (core) MinIO object storage
    observability        # (core) A lightweight observability stack for logs, traces and metrics
    prometheus           # (core) Prometheus operator for monitoring and logging
    rbac                 # (core) Role-Based Access Control for authorisation
    registry             # (core) Private image registry exposed on localhost:32000
    storage              # (core) Alias to hostpath-storage add-on, deprecated

Enable/ disable MicroK8s

To enable or disable MicroK8s, we use snap as shown:

admin@cloudspinx:~$ sudo snap enable microk8s
microk8s enabled

admin@cloudspinx:~$ sudo snap disable microk8s
microk8s disabled

MicroK8s List all nodes

To list nodes in MicroK8s, we use the following command:

admin@cloudspinx:~$ microk8s kubectl get nodes
NAME         STATUS   ROLES    AGE     VERSION
cloudspinx   Ready    <none>   5m10s   v1.30.5

MicroK8s check services

Use the below commands to list MicroK8s services

admin@cloudspinx:~$ microk8s kubectl get services
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.152.183.1   <none>        443/TCP   6m28s

admin@cloudspinx:~$ microk8s kubectl get all
NAME                 TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.152.183.1   <none>        443/TCP   7m22s

To list services in all namespaces run:

admin@cloudspinx:~$ microk8s kubectl get all -A
NAMESPACE     NAME                                          READY   STATUS    RESTARTS   AGE
kube-system   pod/calico-kube-controllers-796fb75cc-grmcc   1/1     Running   0          7m37s
kube-system   pod/calico-node-rcpl4                         1/1     Running   0          7m37s
kube-system   pod/coredns-5986966c54-b8ksv                  1/1     Running   0          7m37s

NAMESPACE     NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                  AGE
default       service/kubernetes   ClusterIP   10.152.183.1    <none>        443/TCP                  7m44s
kube-system   service/kube-dns     ClusterIP   10.152.183.10   <none>        53/UDP,53/TCP,9153/TCP   7m43s

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   7m44s

NAMESPACE     NAME                                      READY   UP-TO-DATE   AVAILABLE   AGE
kube-system   deployment.apps/calico-kube-controllers   1/1     1            1           7m44s
kube-system   deployment.apps/coredns                   1/1     1            1           7m43s

NAMESPACE     NAME                                                DESIRED   CURRENT   READY   AGE
kube-system   replicaset.apps/calico-kube-controllers-796fb75cc   1         1         1       7m37s
kube-system   replicaset.apps/coredns-5986966c54                  1         1         1       7m37s

Adding a Node to Microk8s cluster

To create a cluster out of two or more already-running MicroK8s instances, use the microk8s add-node command. The MicroK8s instance on which this command is run will be the master of the cluster and will host the Kubernetes control plane.

devops@cloudspinx:~$ microk8s add-node
From the node you wish to join to this cluster, run the following:
microk8s join 116.203.47.15:25000/c409ecd65bdabb1efe11b85c22c0e115/cc9d15996c66

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

If the node you are adding is not reachable through the default interface you can use one of the following:
microk8s join 116.203.47.15:25000/c409ecd65bdabb1efe11b85c22c0e115/cc9d15996c66
microk8s join 10.0.1.5:25000/c409ecd65bdabb1efe11b85c22c0e115/cc9d15996c66
microk8s join 2a01:4f8:c2c:a186::1:25000/c409ecd65bdabb1efe11b85c22c0e115/cc9d15996c66

Run the above instructions on the node to be added to the cluster. After that confirm if the host is added. The below output shows two nodes, the node was successfully added.

admin@cloudspinx:~$ microk8s kubectl get no 
NAME        STATUS   ROLES    AGE     VERSION 
linux       Ready    <none>   3h32m   v1.30.5
app2        Ready    <none>   86s     v1.30.5

Remove Node from Mikrok8s Cluster

To remove a node from the cluster, first run the leave command from the node to be removed

microk8s leave

On the remaining nodes run the command:

microk8s remove-node <node-ip/node.name>

Confirm it has been removed. From my output you can see that only one node is present.

admin@cloudspinx:~$ microk8s kubectl get nodes
NAME        STATUS   ROLES    AGE     VERSION 
linux       Ready    <none>   3h32m   v1.30.5

Deploy Pods in Mikrok8s Cluster

Pods are the basic building blocks of K8s and can have one or more containers in them. When you instantiate a Pod, you’re prompted to specify the number of replica Pods it should have. We are going to deploy nginx as an example.

$ microk8s.kubectl create deployment nginx --image=nginx
#Scale up the deployment
$ microk8s.kubectl scale deployment nginx --replicas=2

To check for any existing pod in your MicroK8s environment, run the command as shown below:

admin@cloudspinx:~$ microk8s kubectl get pods
NAME                    READY   STATUS    RESTARTS   AGE
nginx-bf5d5cf98-ckdmq   1/1     Running   0          101s
nginx-bf5d5cf98-g7t98   1/1     Running   0          3s
admin@cloudspinx:~$

Enable MicroK8s Addons

The next steps show how to enable MicroK8s addons

Enable dashboard and DNS

Deploy dashboards and dns with the command below:

admin@cloudspinx:~$ microk8s.enable dashboard dns
..........
Enabling DNS
Using host configuration from /run/systemd/resolve/resolv.conf
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
DNS is enabled

Enable MicroK8s storage

Use the command:

admin@cloudspinx:~$ microk8s.enable storage
Infer repository core for addon storage
DEPRECATION WARNING: 'storage' is deprecated and will soon be removed. Please use 'hostpath-storage' instead.

Infer repository core for addon hostpath-storage
Enabling default storage class.
WARNING: Hostpath storage is not suitable for production environments.
         A hostpath volume can grow beyond the size limit set in the volume claim manifest.

deployment.apps/hostpath-provisioner created
storageclass.storage.k8s.io/microk8s-hostpath created
serviceaccount/microk8s-hostpath created
clusterrole.rbac.authorization.k8s.io/microk8s-hostpath created
clusterrolebinding.rbac.authorization.k8s.io/microk8s-hostpath created
Storage will be available soon.

admin@cloudspinx:~$ microk8s kubectl get sc
NAME                          PROVISIONER            RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
microk8s-hostpath (default)   microk8s.io/hostpath   Delete          WaitForFirstConsumer   false                  32s

Enable MicroK8s Prometheus

Use the command as shown to enable MicroK8s Prometheus and other monitoring components.

admin@cloudspinx:~$ microk8s.enable observability
Infer repository core for addon observability
Addon core/dns is already enabled
Addon core/helm3 is already enabled
Addon core/hostpath-storage is already enabled
Enabling observability
Release "kube-prom-stack" does not exist. Installing it now.
NAME: kube-prom-stack
LAST DEPLOYED: Sat Oct 19 11:23:49 2024
NAMESPACE: observability
STATUS: deployed
REVISION: 1
NOTES:
kube-prometheus-stack has been installed. Check its status by running:
  kubectl --namespace observability get pods -l "release=kube-prom-stack"

Visit https://github.com/prometheus-operator/kube-prometheus for instructions on how to create & configure Alertmanager and Prometheus instances using the Operator.
Release "loki" does not exist. Installing it now.
NAME: loki
LAST DEPLOYED: Sat Oct 19 11:24:16 2024
NAMESPACE: observability
STATUS: deployed
REVISION: 1
NOTES:
The Loki stack has been deployed to your cluster. Loki can now be added as a datasource in Grafana.

See http://docs.grafana.org/features/datasources/loki/ for more detail.
Release "tempo" does not exist. Installing it now.
NAME: tempo
LAST DEPLOYED: Sat Oct 19 11:24:18 2024
NAMESPACE: observability
STATUS: deployed
REVISION: 1
TEST SUITE: None

Note: the observability stack is setup to monitor only the current nodes of the MicroK8s cluster.
For any nodes joining the cluster at a later stage this addon will need to be set up again.

Observability has been enabled (user/pass: admin/prom-operator)

Set MicroK8s Prometheus and Grafana port forwarding to enable external access

microk8s kubectl port-forward -n observability service/prometheus-operated --address 0.0.0.0 9090:9090
microk8s kubectl port-forward -n observability service/kube-prom-stack-grafana --address 0.0.0.0 3000:80
microk8s kubectl port-forward -n observability service/loki --address 0.0.0.0 3100:3100

Ensure to allow the ports through the firewall if firewall is enabled.

sudo firewall-cmd --add-port={9090/tcp,3000/tcp} --permanent
sudo firewall-cmd --reload

On your browser, open http://<your-server-ip>:9090 to access prometheus dashboard. You should see an output as below:

01.png

For Grafana, http://<your-server-ip>:3000.

02.png

Use the credentials that were generated for you when you enabled observability.

03.png

Enable MicroK8s registry

The command is as below:

admin@cloudspinx:~$ microk8s.enable registry
Infer repository core for addon registry
Infer repository core for addon hostpath-storage
Addon core/hostpath-storage is already enabled
The registry will be created with the size of 20Gi.
Default storage class will be used.
namespace/container-registry created
persistentvolumeclaim/registry-claim created
deployment.apps/registry created
service/registry created
configmap/local-registry-hosting configured

Check what is deployed for MickoK8s

To see everything deployed we use the command below:

admin@cloudspinx:~$ microk8s.kubectl get all --all-namespaces
NAMESPACE            NAME                                                         READY   STATUS    RESTARTS      AGE
container-registry   pod/registry-5776c58776-sfq9b                                1/1     Running   0             53s
default              pod/nginx-bf5d5cf98-ckdmq                                    1/1     Running   0             33m
default              pod/nginx-bf5d5cf98-g7t98                                    1/1     Running   0             32m
kube-system          pod/calico-kube-controllers-796fb75cc-grmcc                  1/1     Running   0             49m
kube-system          pod/calico-node-rcpl4                                        1/1     Running   0             49m
kube-system          pod/coredns-5986966c54-b8ksv                                 1/1     Running   0             49m
kube-system          pod/dashboard-metrics-scraper-795895d745-l4vjm               1/1     Running   0             30m
kube-system          pod/hostpath-provisioner-7c8bdf94b8-rc5tp                    1/1     Running   1 (26m ago)   30m
kube-system          pod/kubernetes-dashboard-6796797fb5-5tgw2                    1/1     Running   0             30m
kube-system          pod/metrics-server-7cff7889bd-6kx77                          1/1     Running   0             30m
observability        pod/alertmanager-kube-prom-stack-kube-prome-alertmanager-0   2/2     Running   1 (26m ago)   26m
observability        pod/kube-prom-stack-grafana-8dc65649-mnlkd                   3/3     Running   0             26m
observability        pod/kube-prom-stack-kube-prome-operator-6449f7cd89-rgqph     1/1     Running   0             26m
observability        pod/kube-prom-stack-kube-state-metrics-5f7c887d65-6q68s      1/1     Running   0             26m
observability        pod/kube-prom-stack-prometheus-node-exporter-hf968           1/1     Running   0             26m
observability        pod/loki-0                                                   1/1     Running   0             26m
observability        pod/loki-promtail-7wxhh                                      1/1     Running   0             26m
observability        pod/prometheus-kube-prom-stack-kube-prome-prometheus-0       2/2     Running   0             26m
observability        pod/tempo-0                                                  2/2     Running   0             26m

NAMESPACE            NAME                                                         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                                                                                                                       AGE
container-registry   service/registry                                             NodePort    10.152.183.188   <none>        5000:32000/TCP                                                                                                                53s
default              service/kubernetes                                           ClusterIP   10.152.183.1     <none>        443/TCP                                                                                                                       49m
kube-system          service/dashboard-metrics-scraper                            ClusterIP   10.152.183.160   <none>        8000/TCP                                                                                                                      30m
kube-system          service/kube-dns                                             ClusterIP   10.152.183.10    <none>        53/UDP,53/TCP,9153/TCP                                                                                                        49m
kube-system          service/kube-prom-stack-kube-prome-coredns                   ClusterIP   None             <none>        9153/TCP                                                                                                                      26m
kube-system          service/kube-prom-stack-kube-prome-kube-controller-manager   ClusterIP   None             <none>        10257/TCP                                                                                                                     26m
kube-system          service/kube-prom-stack-kube-prome-kube-etcd                 ClusterIP   None             <none>        2381/TCP                                                                                                                      26m
kube-system          service/kube-prom-stack-kube-prome-kube-proxy                ClusterIP   None             <none>        10249/TCP                                                                                                                     26m
kube-system          service/kube-prom-stack-kube-prome-kube-scheduler            ClusterIP   None             <none>        10259/TCP                                                                                                                     26m
kube-system          service/kube-prom-stack-kube-prome-kubelet                   ClusterIP   None             <none>        10250/TCP,10255/TCP,4194/TCP                                                                                                  26m
kube-system          service/kubernetes-dashboard                                 ClusterIP   10.152.183.26    <none>        443/TCP                                                                                                                       30m
kube-system          service/metrics-server                                       ClusterIP   10.152.183.237   <none>        443/TCP                                                                                                                       30m
observability        service/alertmanager-operated                                ClusterIP   None             <none>        9093/TCP,9094/TCP,9094/UDP                                                                                                    26m
observability        service/kube-prom-stack-grafana                              ClusterIP   10.152.183.39    <none>        80/TCP                                                                                                                        26m
observability        service/kube-prom-stack-kube-prome-alertmanager              ClusterIP   10.152.183.157   <none>        9093/TCP                                                                                                                      26m
observability        service/kube-prom-stack-kube-prome-operator                  ClusterIP   10.152.183.35    <none>        443/TCP                                                                                                                       26m
observability        service/kube-prom-stack-kube-prome-prometheus                ClusterIP   10.152.183.233   <none>        9090/TCP                                                                                                                      26m
observability        service/kube-prom-stack-kube-state-metrics                   ClusterIP   10.152.183.65    <none>        8080/TCP                                                                                                                      26m
observability        service/kube-prom-stack-prometheus-node-exporter             ClusterIP   10.152.183.70    <none>        9100/TCP                                                                                                                      26m
observability        service/loki                                                 ClusterIP   10.152.183.161   <none>        3100/TCP                                                                                                                      26m
observability        service/loki-headless                                        ClusterIP   None             <none>        3100/TCP                                                                                                                      26m
observability        service/loki-memberlist                                      ClusterIP   None             <none>        7946/TCP                                                                                                                      26m
observability        service/prometheus-operated                                  ClusterIP   None             <none>        9090/TCP                                                                                                                      26m
observability        service/tempo                                                ClusterIP   10.152.183.221   <none>        3100/TCP,16687/TCP,16686/TCP,6831/UDP,6832/UDP,14268/TCP,14250/TCP,9411/TCP,55680/TCP,55681/TCP,4317/TCP,4318/TCP,55678/TCP   26m

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   49m
observability   daemonset.apps/kube-prom-stack-prometheus-node-exporter   1         1         1       1            1           <none>                   26m
observability   daemonset.apps/loki-promtail                              1         1         1       1            1           <none>                   26m

NAMESPACE            NAME                                                  READY   UP-TO-DATE   AVAILABLE   AGE
container-registry   deployment.apps/registry                              1/1     1            1           53s
default              deployment.apps/nginx                                 2/2     2            2           33m
kube-system          deployment.apps/calico-kube-controllers               1/1     1            1           49m
kube-system          deployment.apps/coredns                               1/1     1            1           49m
kube-system          deployment.apps/dashboard-metrics-scraper             1/1     1            1           30m
kube-system          deployment.apps/hostpath-provisioner                  1/1     1            1           30m
kube-system          deployment.apps/kubernetes-dashboard                  1/1     1            1           30m
kube-system          deployment.apps/metrics-server                        1/1     1            1           30m
observability        deployment.apps/kube-prom-stack-grafana               1/1     1            1           26m
observability        deployment.apps/kube-prom-stack-kube-prome-operator   1/1     1            1           26m
observability        deployment.apps/kube-prom-stack-kube-state-metrics    1/1     1            1           26m

NAMESPACE            NAME                                                             DESIRED   CURRENT   READY   AGE
container-registry   replicaset.apps/registry-5776c58776                              1         1         1       53s
default              replicaset.apps/nginx-bf5d5cf98                                  2         2         2       33m
kube-system          replicaset.apps/calico-kube-controllers-796fb75cc                1         1         1       49m
kube-system          replicaset.apps/coredns-5986966c54                               1         1         1       49m
kube-system          replicaset.apps/dashboard-metrics-scraper-795895d745             1         1         1       30m
kube-system          replicaset.apps/hostpath-provisioner-7c8bdf94b8                  1         1         1       30m
kube-system          replicaset.apps/kubernetes-dashboard-6796797fb5                  1         1         1       30m
kube-system          replicaset.apps/metrics-server-7cff7889bd                        1         1         1       30m
observability        replicaset.apps/kube-prom-stack-grafana-8dc65649                 1         1         1       26m
observability        replicaset.apps/kube-prom-stack-kube-prome-operator-6449f7cd89   1         1         1       26m
observability        replicaset.apps/kube-prom-stack-kube-state-metrics-5f7c887d65    1         1         1       26m

NAMESPACE       NAME                                                                    READY   AGE
observability   statefulset.apps/alertmanager-kube-prom-stack-kube-prome-alertmanager   1/1     26m
observability   statefulset.apps/loki                                                   1/1     26m
observability   statefulset.apps/prometheus-kube-prom-stack-kube-prome-prometheus       1/1     26m
observability   statefulset.apps/tempo                                                  1/1     26m

From the above output you can the different IPs for accessing various services dashboards, including kubernetes dashboard and metrics dashboard. Alternatively, run the below command to get various dashboards urls

admin@cloudspinx:~$ microk8s.kubectl cluster-info
Kubernetes master is running at https://127.0.0.1:16443 
Metrics-server is running at https://127.0.0.1:16443/api/v1/namespaces/kube-system/services/https:metrics-server:/proxy 
CoreDNS is running at https://127.0.0.1:16443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

Or this other command

admin@cloudspinx:~$ microk8s.kubectl get services -n kube-system      
NAME                                                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                        AGE
dashboard-metrics-scraper                            ClusterIP   10.152.183.160   <none>        8000/TCP                       35m
kube-dns                                             ClusterIP   10.152.183.10    <none>        53/UDP,53/TCP,9153/TCP         53m
kube-prom-stack-kube-prome-coredns                   ClusterIP   None             <none>        9153/TCP                       31m
kube-prom-stack-kube-prome-kube-controller-manager   ClusterIP   None             <none>        10257/TCP                      31m
kube-prom-stack-kube-prome-kube-etcd                 ClusterIP   None             <none>        2381/TCP                       31m
kube-prom-stack-kube-prome-kube-proxy                ClusterIP   None             <none>        10249/TCP                      31m
kube-prom-stack-kube-prome-kube-scheduler            ClusterIP   None             <none>        10259/TCP                      31m
kube-prom-stack-kube-prome-kubelet                   ClusterIP   None             <none>        10250/TCP,10255/TCP,4194/TCP   31m
kubernetes-dashboard                                 ClusterIP   10.152.183.26    <none>        443/TCP                        35m
metrics-server                                       ClusterIP   10.152.183.237   <none>        443/TCP                        35m

Show MicroK8s config

The below command displays MicroK8s configs

$ microk8s.config
apiVersion: v1 
clusters: 
- cluster: 
   certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURBVENDQWVtZ0F3SUJBZ0lKQU1ObTU3dUdscHMvTUEwR0NTcUdTSWIzRFFFQkN3VUFNQmN4RlRBVEJnTlYKQkFNTURERXdMakUxTWk0eE9ETXVNVEFlRncweU1EQTVNRGd4TnpRek5UTmFGdzB6TURBNU1EWXhOelF6TlROYQpNQmN4RlRBVEJnTlZCQU1NRERFd0x
qRTFNaTR4T0RNdU1UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQCkFEQ0NBUW9DZ2dFQkFMZitqcWJsYjV5d0JXL1VCd0syWkNCb1JhM0NWVFI5bGpiR2hPN2lJUUxnU1BNRW1MYlUKaGFlSkZrSHdwSUI4ajhZeGhZaHRZNkNKMmRScWFhcHZoVERzVDB1dGFsTzd3Kzg4RG9oUmNhZjhzdzFrNm1FMgoxeXJXWXVONENra1JBeHBSL3dLVzFZSVJQbzVBR3
JKazY2aFE3STc0TkFzVDF0dUVUZjlVaDlIS09ROWdpWHhOClloOFRoK0VjSVpLanNYR0pqSHY4eUFJa1FocHVrdnZNdkZIZHFBS0E4ZEVQdGI0QnVNakR1SFN3K052eWIwWDMKMTluVDBXalFWNUlnNkJlOWxLZ0RrTU5JZ0xOR0N6NkVPbG1ueWxFVDVkR0x3WFhGQ3crVUQyak9XUk5IdXIwbwowSzZSZ1JuZEdBZElqYUdOZnlWaCtJUjJ4S1ZuN0lBdFZXRUNBd
0VBQWFOUU1FNHdIUVlEVlIwT0JCWUVGRXR5Ck9ZYW12ODB1cUFnblZwQnBLZVA5QjNjR01COEdBMVVkSXdRWU1CYUFGRXR5T1lhbXY4MHVxQWduVnBCcEtlUDkKQjNjR01Bd0dBMVVkRXdRRk1BTUJBZjh3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUpXKzZPeG53MFlHTk8yawpjbmcxeXl3ZWx2STRHZTBkWTJIMy9rWDk5MDEwZElTTndBU3VQMU0yeVFpUGJW
alc4bnU3YzFMVXNCOXBkdHRVCkNKNjBpS2ljMTk5TTF2ZVJPMDBhNW9jV3FVM1VOWHFlb3REYmNnYUhaYnJFZEVJdzd0UlNBOWF5WDhUb01Bb04KM1I1VTk0dmpZTzRxNVprOG9MeDllV2dUVFV0aFFiL3A1bENrckxGOTVHZklORnc0S000MnpSSUp1SW5xTFV6dwpwbWRvL0FsTGZ0T25mQndPRy9ZbFRaNHg1ZlQ4UTV3V25qd0xVMXV6MjlMSzQ2UnlPQUtHWHJ
GSmtBUGNuQUlWCmUrNVBmeDJJT0xZeC9hdXk5bjAyRlBkeXk0QVhqTnFOb2dmNWFPOEZQTi9WL1BhNE5nb0JQaHJjdVI0KzhPU1QKQnNxeFAzVT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= 
   server: https://<server-ip>:16443 
 name: microk8s-cluster 
contexts: 
- context: 
   cluster: microk8s-cluster 
   user: admin 
 name: microk8s 
current-context: microk8s 
kind: Config 
preferences: {} 
users: 
- name: admin 
 user: 
   token: aWdjSHJWbEs4U0VaZmN5dGY1VjBveE9rNnU5ejE2SEhzbStLV1VFZ3Faaz0K

There you go, yo’ve got a microk8s cluster running on your Linux Mint!

Your IT Journey Starts Here!

Ready to level up your IT skills? Our new eLearning platform is coming soon to help you master the latest technologies.

Be the first to know when we launch! Join our waitlist now.

Join our Linux and open source community. Subscribe to our newsletter for tips, tricks, and collaboration opportunities!

Recent Post

Leave a Comment

Your email address will not be published. Required fields are marked *

Related Post

GlassFish is an open-source application server project started by Sun Microsystems for the Java EE platform, then sponsored by Oracle […]

This article will cover how to install Wine 8.x on Rocky Linux 8 / AlmaLinux 8. Wine is an application […]

Java is a high-level object-oriented programming language and computing platform intended to let application developers write once and run everywhere. […]

Let's Connect

Unleash the full potential of your business with CloudSpinx. Our expert solutions specialists are standing by to answer your questions and tailor a plan that perfectly aligns with your unique needs.
You will get a response from our solutions specialist within 12 hours
We understand emergencies can be stressful. For immediate assistance, chat with us now

Contact CloudSpinx today!

Download CloudSpinx Profile

Discover the full spectrum of our expertise and services by downloading our detailed Company Profile. Simply enter your first name, last name, and email address.