Kubernetes as we know coordinates a highly available cluster of computers that are connected to work as a single unit. Kubernetes contains a number of abstractions that allow the deployment of containerized applications to the cluster without attaching them to individual machines.
In short, Kubernetes is –
In this post, we are going to take look at Lightweight Kubernetes engine MicroK8s that can run on edge, IoT, and appliances.MicroK8s is great for offline development, prototyping, and testing purpose.You can also use it on a VM as a small, cheap, reliable k8s for CI/CD.
Cross-posted from: NewStack
In the next section, we will look at how to install and deploy sample application on to MicroK8s cluster.
In the below steps, we would be installing MicroK8s cluster, it would install a limited set of components like api-server, controller-manager, scheduler, kubelet, cni, kube-proxy. Additional services like kube-dns and dashboard can also be run using the microk8s.enable
command.
MicroK8s is deployed via Snaps. Snaps are containerized (like docker) software packages that are easy to create and install, they bundle their dependencies, they work on all major Linux systems without modification. Snaps auto-update and are safe to run. Also, note MicroK8s snap would be frequently updated to match each release of Kubernetes.
MicroK8s snap can be installed using the command below:
snap install microk8s --classic --beta
To avoid colliding with a kubectl
already installed and to avoid overwriting any existing Kubernetes configuration file, MicroK8s adds a microk8s.kubectl
command. If you are only using MicroK8s, consider adding an alias using the following command:
At this point you have installed MicroK8s, check whether the newly deployed node is in Ready
state using the following command
kubectl get node
If you receive an error it means that microk8s is still starting the nodes in the background. Wait for a few minutes and try again.
You can also use kubectl describe
the command to get the details of the node.
At this point, you have a fully functional Kubernetes cluster. The following command will deploy Nginx web application.
kubectl run nginx --image nginx:alpine
Once Nginx has been deployed, the application can be exposed with the following command.
kubectl expose deployment nginx \
--port 80 \
--target-port 80 \
--type ClusterIP \
--selector=run=nginx \
--name nginx
You should see a new Service and ClusterIP address assigned.
Now that services are exposed outside, we can launch lynx a terminal-based web browser to access the Nginx application using the following command.
export CLUSTER_IP=$(kubectl get svc/nginx -o go-template='{{(index .spec.clusterIP)}}')
echo CLUSTER_IP=$CLUSTER_IP
lynx $CLUSTER_IP:80
Congrats! now you have a deployed Nginx application to a fully functional Kubernetes cluster using Microk8s.
Additional services like kube-dns
and dashboard
can be enabled using the microk8s.enable
command.
microk8s.enable dns dashboard
Check to see if all the components for the additional services being started using the following command:
kubectl get all --all-namespaces
MicroK8s gives you troubleshooting tools to check out what has gone wrong. Be sure to check out the common issues section for help in resolving the frequently encountered problems.
Like this post? Don’t forget to share it!
Operating a business often entails balancing tight schedules, evolving market dynamics, and shifting consumer requirements.…
Of course, every site has different needs. In the end, however, there is one aspect…
In today's digital-first world, businesses must adopt effective strategies to stay competitive. Social media marketing…
62% of UX designers now use AI to enhance their workflows. Artificial intelligence (AI) rapidly…
The integration of artificial intelligence into graphic design through tools like Adobe Photoshop can save…
The cryptocurrency trading world has grown significantly in recent years, with automation playing a key…
This website uses cookies.