MicroK8s is a lightweight, pure-upstream Kubernetes aiming to reduce entry barriers for K8s and cloud-native application development. It comes in a single package that installs a single-node (standalone) K8s cluster in under 60 seconds. The lightweight nature of LOGIQ PaaS enables you to deploy LOGIQ on lightweight, single-node clusters like MicroK8s.
The following guide takes you through deploying LOGIQ PaaS on MicroK8s.
The first step in this deployment is to install MicroK8s on your machine. To install MicroK8s, do the following.
Update package lists by running the following command.
sudo apt-get -y update
core using Snap by running the following command.
sudo snap install core
Install MicroK8s using Snap by running the following command.
sudo snap install microk8s --classic
Join the group created by MicroK8s that enables uninterrupted usage of commands that require admin access by running the following command.
sudo usermod -a -G microk8s $USER
Add your current user to the group to gain access to the
.kube caching directory by running the following command.
sudo chown -f -R $USER ~/.kube
Generate your MicroK8s configuration and merge it with your Kubernetes configuration by running the following command.
sudo microk8s config > ~/.kube/config
Check whether MicroK8s is up and running with the following command.
sudo microk8s status
MicroK8s is now installed on your machine.
Now that we have MicroK8s up and running, let’s set up your cluster and enable the add-ons necessary such as Helm, CoreDNS, ingress, storage, and private registry. MicroK8s readily provides these addons and can be enabled and disabled at any time. Most of these add-ons are pre-configured to work without any additional setup.
To enable add-ons on your MicroK8s cluster, run the following commands in succession.
Enable Helm 3.
microk8s enable helm3
Enable a default storage class that allocates storage from a host directory.
microk8s enable storage
microk8s enable dns
microk8s enable ingress
To enable https on your cluster, create a secret with your keys and pass the secret with ingress.
microk8s enable ingress:default-ssl-certificate=namespace/secret_name
Enable private registry.
microk8s enable registry
Copy over your MicroK8s configuration to your Kubernetes configuration with the following command.
microk8s.kubectl config view > $HOME/.kube/config
In this step, we'll provision an endpoint or an IP address where we access LOGIQ PaaS after deploying it on MicroK8s. You can skip this step if its your local implementation. For this, we'll leverage MetalLB which is a load-balancer implementation that uses standard routing protocols for bare metal Kubernetes clusters.
To provision an IP address, do the following:
Check your local machine's IP address by running the
ifconfig command, as shown below.
ifconfig:wlp60s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.1.27 netmask 255.255.255.0 broadcast 192.168.1.255
Enable MetalLB by running the following command.
microk8s enable metallbEnabling MetalLBEnter each IP address range delimited by comma (e.g. '10.64.140.43-10.64.140.49,192.168.0.105-192.168.0.111'): 192.168.1.27-192.168.1.27
Now that your MicroK8s environment is configured and ready, we can proceed with installing LOGIQ PaaS on it. To install LOGIQ PaaS using Helm, do the following:
Add the LOGIQ PaaS Helm chart to your Helm repository by running the following command.
helm repo add logiq-repo https://logiqai.github.io/helm-charts
Update your Helm repository by running the following command.
helm repo update
Create a namespace on MicroK8s on which to install LOGIQ PaaS.
microk8s kubectl create namespace logiq
Prepare your values.microk8s.yaml file. You can use the starter
values.microk8s.yaml file we've created to configure your LOGIQ PaaS deployment
Optionally, if you are provisioning public IP using Metallb, use the values.yaml instead. run the following command.microk8s enable metallbEnabling MetalLBEnter each IP address range delimited by comma (e.g. '10.64.140.43-10.64.140.49,192.168.0.105-192.168.0.111'): 192.168.1.27-192.168.1.27
In the values file, add the below fields global-> environment section with your own values.s3_bucket: <your-s3-bucket>AWS_ACCESS_KEY_ID: <your-aws-access-key-id>AWS_SECRET_ACCESS_KEY: <your-aws-secret-access-key-id>
In the global -> chart section, change S3gateway to false.s3gateway: false
In the global -> persistence section, change storageClass as below.storageClass: microk8s-hostpath
Install LOGIQ PaaS using Helm with the storage class set to
microk8s-hostpath with the following command.
helm install logiq -n logiq --set global.persistence.storageClass=microk8s-hostpath logiq-repo/logiq -f values.microk8s.yaml --debug --timeout 10m
LOGIQ PaaS is now installed in your MicroK8s environment.
Now that LOGIQ PaaS is installed on your MicroK8s cluster, you can visit the LOGIQ PaaS UI by accessing the MetalLB endpoint we defined in the pre-install steps. To access the LOGIQ PaaS UI, do the following:
Inspect the pods in your MicroK8s cluster in the
logiq namespace by running the following command.
microk8s kubectl get pod -n logiq
Find the exact MetalLB endpoint that's serving the LOGIQ PaaS UI by running the following command.
microk8s kubectl get service -n logiq |grep -i loadbalancer
The above command should give you an output similar to the following.
logiq-kubernetes-ingress LoadBalancer 10.152.183.45 192.168.1.2780:30537/TCP,20514:30222/TCP,24224:30909/TCP,24225:31991/TCP,2514:30800/TCP,3000:32680/TCP,514:32450/ TCP,7514:30267/TCP,8081:30984/TCP,9998:31425/TCP 18m
Using a web browser of your choice, access the IP address shown by the load balancer service above. For example,
Your LOGIQ PaaS UI is now available in your web browser. You can log into LOGIQ PaaS using the following default credentials.