3 minute read

Minikube is an excellent tool to practice Kubernetes operations in a local environment.

This post provides a cheatsheet of essential commands followed by scenario-based examples to simulate real-world Kubernetes tasks.


Kubernetes Command Cheatsheet

🔹 Minikube Management

Task Command
Start Minikube cluster minikube start
Stop Minikube minikube stop
Delete Minikube cluster minikube delete
Check Minikube status minikube status
Open Minikube dashboard minikube dashboard

🔹 Cluster & Node Information

Task Command
View cluster information kubectl cluster-info
Get all nodes kubectl get nodes
Describe a node kubectl describe node <node-name>

🔹 Managing Pods

Task Command
List all running pods kubectl get pods
Describe a specific pod kubectl describe pod <pod-name>
View pod logs kubectl logs <pod-name>
Execute a command inside a pod kubectl exec -it <pod-name> -- /bin/sh
Delete a pod kubectl delete pod <pod-name>

🔹 Managing Deployments

Task Command
List all deployments kubectl get deployments
Scale deployment replicas kubectl scale deployment <deployment-name> --replicas=3
Update an existing deployment kubectl rollout restart deployment <deployment-name>
Undo a deployment rollback kubectl rollout undo deployment <deployment-name>

🔹 Exposing Services

Task Command
List all services kubectl get services
Expose a deployment via NodePort kubectl expose deployment <deployment-name> --type=NodePort --port=80
Get Minikube service URL minikube service <service-name> --url

Scenario-Based Kubernetes Operations in Minikube

Scenario 1: Deploy a Simple Web Application

Goal: Deploy an Nginx web server and expose it via a service.

Steps:

1️⃣ Create a deployment for Nginx

kubectl create deployment nginx --image=nginx --replicas=2

2️⃣ Expose the deployment as a NodePort service

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

3️⃣ Get the external service URL using Minikube

minikube service nginx --url

4️⃣ Open the application in a browser

minikube service nginx

Scenario 2: Scale an Application Dynamically

Goal: Scale the Nginx deployment from 2 to 5 replicas.

Steps:

1️⃣ Check current pods

kubectl get pods

2️⃣ Scale deployment

kubectl scale deployment nginx --replicas=5

3️⃣ Verify the scaling

kubectl get pods

Scenario 3: Rolling Update & Rollback

Goal: Update the Nginx version and roll it back if something goes wrong.

Steps:

1️⃣ Check the current deployment

kubectl get deployments

2️⃣ Update the deployment to use nginx:1.23

kubectl set image deployment/nginx nginx=nginx:1.23

3️⃣ Check the rollout status

kubectl rollout status deployment/nginx

4️⃣ If the new version is unstable, rollback

kubectl rollout undo deployment/nginx

Scenario 4: Debugging a Failing Pod

Goal: Troubleshoot a pod that is stuck in CrashLoopBackOff.

Steps:

1️⃣ List pods and find the problematic one

kubectl get pods

2️⃣ Check pod logs

kubectl logs <pod-name>

3️⃣ Describe the pod for detailed information

kubectl describe pod <pod-name>

4️⃣ Get into the pod’s shell (if running)

kubectl exec -it <pod-name> -- /bin/sh

5️⃣ Delete and restart the pod

kubectl delete pod <pod-name>

Scenario 5: Deploying a Multi-Tier App with Minikube

Goal: Deploy a frontend and backend in Kubernetes.

Steps:

1️⃣ Deploy a backend API

kubectl create deployment backend --image=python:3.10-slim

2️⃣ Expose backend via a ClusterIP

kubectl expose deployment backend --port=5000 --type=ClusterIP

3️⃣ Deploy a React frontend

kubectl create deployment frontend --image=node:18-alpine

4️⃣ Expose frontend as a LoadBalancer

kubectl expose deployment frontend --port=3000 --type=LoadBalancer

5️⃣ Get the service URL

minikube service frontend

Now we have a full-stack app running in Kubernetes!


Remarks

Minikube is a powerful tool for learning and testing Kubernetes commands in a local environment.

By practicing these scenario-based tasks, we can become comfortable with real-world Kubernetes operations before deploying in production.

Key Takeaways

  • Minikube helps you test Kubernetes locally.
  • You can create, scale, and troubleshoot applications easily.
  • Kubernetes commands allow rolling updates, service exposure, and debugging in a structured way.

Next Steps

  • Try deploying stateful applications with Persistent Volumes.
  • Experiment with Ingress controllers in Minikube.
  • Learn about Kubernetes Helm Charts for app deployment automation.

Stay tuned for more Kubernetes posts in the #100DaysOfSRE series!

Leave a comment