#90DaysOfDevOps Challenge - Day 31 - Launching your First Kubernetes Cluster with Nginx running

Cloud Engineer and DevOps enthusiast, just talking about AWS, Docker, Linux, Kubernetes, Python, and automation.
Search for a command to run...

Cloud Engineer and DevOps enthusiast, just talking about AWS, Docker, Linux, Kubernetes, Python, and automation.
No comments yet. Be the first to comment.
The #90DaysOfDevOps Challenge is a dedicated initiative aimed at promoting continuous learning and skill development in the field of DevOps over a 90-day period.
Running your own home lab used to mean expensive hardware, complex networking, and hours of manual configuration. This project changes that. With a single Raspberry Pi, Docker Compose, and a few hundr

Welcome to an advanced hybrid directory demo where we'll guide you through setting up a hybrid environment, connecting to simulated on-premises infrastructure, creating a managed Microsoft AD within AWS, establishing a two-way forest trust, and integ...

Hello DevOps Community! Today marks the completion of the #90DaysOfDevOps Challenge, and it's a moment to reflect on the journey we've undertaken together. Throughout this period, I've engaged with various technologies, refining my skills in the DevO...

In a modern cloud infrastructure setup, creating a robust and scalable 2-tier architecture is essential. Such an architecture helps meet the demands of your applications while ensuring repeatability, reliability, and security. In this article, we'll ...

Welcome to Part 4 of my series on building a comprehensive CI/CD pipeline in AWS. In this article, I will explore AWS CodePipeline, a powerful service for building and deploying applications in a continuous integration and continuous delivery (CI/CD)...

Welcome to Day 31 of the #90DaysOfDevOps challenge. Today, we will explore the world of Kubernetes and learn how to launch our first Kubernetes cluster using Minikube. Additionally, we will deploy a Nginx pod to get hands-on experience with Kubernetes deployment.

Minikube is a powerful tool that allows us to quickly set up a local Kubernetes cluster on our macOS, Linux, or Windows machine. It offers a simplified version of Kubernetes with all its benefits, making it an ideal choice for beginners and projects in edge computing and the Internet of Things (IoT) domain.
Key Features of Minikube:
Supports the latest Kubernetes releases, including the previous six minor versions.
Cross-platform compatibility for Linux, macOS, and Windows operating systems.
Flexible deployment options: VM, container, or bare-metal.
Multiple container runtimes supported, including CRI-O, containerd, and Docker.
Direct API endpoint for fast image load and build.
Advanced features such as LoadBalancer, filesystem mounts, FeatureGates, and network policy.
Add-ons for easy installation of Kubernetes applications.
Integration with common CI (Continuous Integration) environments.
Before we dive into deploying our first pod, let's understand the concept of pods in Kubernetes. Pods are the smallest deployable units of computing in Kubernetes. They represent a group of one or more containers that share storage and network resources. A pod contains a specification for running these containers and ensures that they are co-located and co-scheduled. In simpler terms, a pod can be thought of as an application-specific “logical host” that tightly couples one or more containers.
For a more in-depth understanding of pods, you can refer to the Kubernetes documentation.
Visit the official Minikube documentation at https://minikube.sigs.k8s.io/docs/start/ to access the installation instructions.
Follow the installation instructions based on your operating system (macOS, Linux, or Windows) to download and install Minikube.
Once the installation is complete, verify the installation by opening a terminal or command prompt and running the following command:
minikube version
If Minikube is installed correctly, you will see the version information displayed.

Launch your Minikube cluster by opening a terminal or command prompt and running the following command:
minikube start

This command will start a local Kubernetes cluster using Minikube.
Verify that your Minikube cluster is running by running the following command:
kubectl cluster-info

You should see information about your Minikube cluster, including the Kubernetes master URL.
Deploy a Nginx pod by creating the below 'pod.yml' in your workspace:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
And running this command:
kubectl apply -f pod.yml
This command creates a pod named “nginx” and uses the official Nginx Docker image.
Verify that the Nginx pod is running by running the following commands:
kubectl get pods
kubectl describe pod nginx
You should see the Nginx pod listed with a status of “Running”.


Congratulations on taking the first steps towards mastering Kubernetes. Stay tuned for Day 32 of the #90DaysOfDevOps challenge, where we will continue exploring Kubernetes and dive deeper into its advanced features.