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!