A detailed, step-by-step guide on setting up a bare-metal Kubernetes Dashboard, accessing the dashboard outside the cluster & then securing the dashboard using RBAC (role-based access control) so that users can access the dashboard & interact with the resources in their authorized namespaces only.

By the end of this article, you will…

Set up an ELK dashboard to view your Apache Kafka messages.


What will we do?

In this article, we will learn how to set up the ELK stack to monitor Apache Kafka messages on the Kibana dashboard in real-time.

Please note that I am not covering how to install Apache Kafka or ELK stack. I assume that these are already installed on your machine.


This tutorial is based on the below versions.

I am running this entire stack on macOS Catalina. …

Learn how to run a WordPress Blog with MySQL & persistent data on a bare-metal Kubernetes cluster.


In this article, I had explained how we can deploy a WordPress Blog with MySQL database on Minikube. Minikube setup is quite simple & straightforward. It also abstracts away a few important things, like PersistentVolumes. That is why I decided to deploy the same thing on my new Kubernetes cluster running on VirtualBox VMs & write an article about it.

This tutorial will explain the process of deploying a WordPress Blog with MySQL database on a bare-metal Kubernetes cluster. …

Thank you so much for your kind words, Jonas. I am glad that you were able to follow it & get everything to work.

I was able to reproduce what you mentioned. Are you using PHP8? I ran this application on a brand new Mac with fresh Apache/PHP8 installation & I faced the same thing. To fix this, I added the below lines to my .htaccess file & I was able to access the endpoints without the PHP extension.

RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME}\.php -fRewriteRule ^(.*)$ $1.php

Quickly set up a Kubernetes cluster on CentOS 7 servers from scratch using Ansible.

Kubernetes logo.


In one of my articles, I had explained how to set up a Kubernetes cluster on CentOS 7 servers with Docker as the container runtime. I focused on explaining the various steps that are required for successfully bringing the cluster up. However, what good a DevOps Engineer is if she/he can’t automate the boring tasks?

With that in my mind, I decided to write an Ansible playbook that does the magic & starts my cluster in a 100% automated manner.

This is a single playbook with…

Learn how Ingress & Ingress Controllers are used in Kubernetes to access the applications running inside the pods in a cluster.


In my previous article, I explained how we can set up a Kubernetes cluster on CentOS 7 servers. And taking advantage of this cluster, I’ll demonstrate how to use Ingress & Ingress Controller in this article.

I won’t focus much on what Ingress & Ingress Controller is. I will focus on how Ingress & Ingress Controller can be used to access the various applications that run inside the pods.

As you follow the steps in this article, you will…

A detailed, step-by-step tutorial on setting up a fully functional 2-node Kubernetes cluster on CentOS 7 servers with one master & one worker node using Docker as the container runtime.



In this tutorial, I will explain how to build a Kubernetes cluster on CentOS 7 servers with one master & one worker node and then deploy an application on this cluster to see it in action. These steps apply to any type of server — virtual machines, physical machines or any cloud instance.

Follow these steps carefully & you should have a cluster ready without much trouble.

Below is what…


This post explains how we can set up a secure Nexus instance running on HTTPS, create a Docker registry on Nexus & then configure Docker on macOS to trust this registry.


Oftentimes, we need to use a private Docker Registry on our Mac for local testing. Sonatype Nexus lets you create a repository that can be used as a private Docker Registry. The most important benefit of using a locally running Docker Registry is that we don’t have to worry about pulling/pushing images to Docker Hub. A locally running Nexus Docker Registry is both extremely fast & convenient.

This post…

This small Python script, in just 10 lines (including comments), notifies me of the Wi-Fi my Mac is connected to by displaying a notification.

There are times when you have more than 1 Wi-Fi router and they differ in their speed/tariff or data-limit. Sometimes you want to connect to a router that has a cheaper or unlimited data plan. Sometimes you want to minimize your usage of a specific router because it has a data cap & also incurs a lot of money if that cap is crossed. Sometimes you want to connect to a different router because you need…

This simple pipeline script (Jenkinsfile) fetches the artifact from Sonatype Nexus repository & uploads that to the AWS S3 bucket securely.

Jenkins logo taken from https://jenkins.io/


A few months ago, I was asked to set up a Jenkins pipeline that retrieves the artifact, a zip file containing the JavaScript web application code, from a Nexus repository and then upload that zip file to an AWS S3 bucket. We were using AWS Lambdas & the web application was meant to be served from the S3 bucket.

This post explains how we can quickly set up this pipeline.


Shashank Srivastava

DevOps Architect, Music/Book/Photography/Fitness lover & Blogger

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store