Lab 02 - Minikube Installation & Verification

Deploying and validating a local Kubernetes cluster using NGINX and verifying PODs, service exposure, and application access testing.

Difficulty: intermediate Platform: Ubuntu 24.04 Tools: POD's, NGINX, kubectl

Deployment Creation

The first task was to deploy a containerized NGINX web application to the Minikube Kubernetes cluster. A deployment was created using the official NGINX container image. Kubernetes automatically created a ReplicaSet and Pod to maintain the desired state.

kubectl create deployment nginx-demo --image=nginx
kubectl get deployments
kubectl get pods
NGINX Deployment Created

Figure 1: Successful creation of the NGINX deployment and associated pod.

Pod Health Verification

After deployment creation, pod health was verified to confirm the container was running successfully. Kubernetes reported the pod as healthy with no restart events or deployment failures.

kubectl get pods
kubectl describe pod <pod-name>
kubectl logs <pod-name>
Pod Health Verification

Figure 2: Kubernetes reporting the pod description.

Service Exposure

The deployment was exposed using a Kubernetes NodePort service to allow external access to the web application. The service assigned a network endpoint that could be accessed through Minikube.

kubectl expose deployment nginx-demo \
--type=NodePort \
--port=80

kubectl get svc
NodePort Service

Figure 3: NodePort service created for the NGINX deployment.

Application Access Testing

After the service was created, Minikube networking was used to obtain the service URL. Accessing the URL in a browser successfully displayed the NGINX welcome page, confirming end-to-end application functionality.

minikube service nginx-demo --url
NGINX Welcome Page

Figure 4: Application successfully accessible through Minikube networking.

Kubernetes Resource Validation

Kubernetes resources were reviewed to confirm the environment was functioning correctly. Deployment, ReplicaSet, Service, and Pod objects were all present and reporting healthy status.

kubectl get all
Cluster Resource Validation

Figure 5: Validation of cluster resources created during deployment.

Results

Validation Summary

  • NGINX deployment created successfully.
  • Kubernetes pod entered Running state.
  • NodePort service deployed successfully.
  • Application accessible through browser.
  • Cluster resources validated successfully.

Lessons Learned

This lab demonstrated how Kubernetes deployments, pods, and services work together to deliver containerized applications. The exercise validated the complete deployment lifecycle, from application creation through external accessibility testing. Successful completion confirms the ability to host and manage workloads within a Minikube-based Kubernetes environment.

Next Steps

The next lab focuses on Kubernetes operational tasks including scaling, pod recovery, deployment updates, and cluster management activities.

Continue to Lab 03

Overview

This lab demonstrates the deployment of a containerized web application into a Kubernetes cluster running on Minikube. The objective was to validate the complete deployment workflow, including creating a deployment, verifying pod health, exposing the service, and confirming application access.