DEV Community

SOVANNARO
SOVANNARO

Posted on

🚀 Your First Kubernetes Pods: A Fun and Friendly Beginner’s Guide

Welcome to your first steps into the world of Kubernetes Pods! If you're curious about containers, clusters, and how everything magically comes together in a cloud-native world, this is the perfect place to start. We’ll walk through everything step-by-step in a way that's super beginner-friendly and even a little bit fun. 🧁✨


🛠️ Three Simple Ways to Create Something in Kubernetes

Kubernetes is constantly evolving, and so is its command-line tool: kubectl (pronounced "kube control"). When you're just getting started, you have three tools in your toolbox:

1. kubectl run

This is great for quickly launching a single pod (a pod = one or more containers grouped together).

kubectl run my-nginx --image nginx
Enter fullscreen mode Exit fullscreen mode

Voilà! You’ve just launched an nginx web server pod.

2. kubectl create

This command lets you create specific resources either directly or by feeding it a YAML configuration.

3. kubectl apply

The big brain move—this one lets you create or update things using YAML files. It's great for managing infrastructure as code. (We'll cover this more later.)

🚨 Tip: For now, just focus on run and create. YAML will join the party soon.


🧪 Let’s Try It: Running Your First Pod

Let’s make sure everything is working first:

kubectl version
Enter fullscreen mode Exit fullscreen mode

Great! Now spin up that nginx pod:

kubectl run my-nginx --image nginx
Enter fullscreen mode Exit fullscreen mode

Want to see your pod in action?

kubectl get pods
Enter fullscreen mode Exit fullscreen mode

Or see everything going on:

kubectl get all
Enter fullscreen mode Exit fullscreen mode

🤔 Why Do Pods Even Exist?

Here’s a golden nugget of Kubernetes wisdom:

You can’t just create containers directly in Kubernetes.

Wait, what? Yep. Unlike Docker, Kubernetes always wraps containers inside Pods.

Why? Because Pods are the smallest deployable unit in Kubernetes. Even if your pod has just one container (like nginx), it still needs that Pod wrapper.

Here’s what’s happening behind the scenes:

  • You tell Kubernetes, “Hey, create a Pod.”
  • Kubernetes tells kubelet (its agent) to go talk to the container runtime (like containerd).
  • The container runtime creates the actual container(s) for you.

But remember: the container runtime itself doesn’t understand Pods—it only knows about containers. Kubernetes handles the wrapping magic.


🎯 Creating a Deployment (The Smarter Way to Run Pods)

Creating a single Pod is fun—but it’s not very durable. If it crashes, it's gone. That’s where Deployments come in. They manage pods for you automatically, including restarts and scaling.

Let’s create a Deployment using nginx again:

kubectl create deployment my-nginx --image nginx
Enter fullscreen mode Exit fullscreen mode

Check your Pods:

kubectl get pods
Enter fullscreen mode Exit fullscreen mode

Check everything:

kubectl get all
Enter fullscreen mode Exit fullscreen mode

🧬 Here's the hierarchy:
Deployment ➡️ ReplicaSet ➡️ Pods

Deployments create and manage ReplicaSets, which then manage your actual Pods. It’s Kubernetes inception, but it works beautifully.


🧹 Cleanup Time (Don’t Worry, It’s Easy)

Ready to delete stuff? Just run:

kubectl delete pod my-nginx
kubectl delete deployment my-nginx
Enter fullscreen mode Exit fullscreen mode

Poof! It’s gone.


📈 Let’s Scale It Up! (Apache Time)

Let’s create a new deployment using Apache this time:

kubectl create deployment my-apache --image httpd
Enter fullscreen mode Exit fullscreen mode

Check your cluster again:

kubectl get all
Enter fullscreen mode Exit fullscreen mode

Now scale it up to 2 replicas (that means 2 Pods running):

kubectl scale deploy/my-apache --replicas=2
Enter fullscreen mode Exit fullscreen mode

or:

kubectl scale deployment my-apache --replicas=2
Enter fullscreen mode Exit fullscreen mode

✨ Both commands do the same thing—short and long form.


🧠 What’s Really Happening When We Scale?

This is Kubernetes behind-the-scenes:

  1. You tell the Deployment: "Hey, I want 2 replicas now."
  2. The Deployment updates its configuration.
  3. Kubernetes notices and tells the ReplicaSet to make more Pods.
  4. The Scheduler finds a spot (a Node) to place the new Pod.
  5. kubelet sees it and says: “Let’s go!” to the container runtime.
  6. A new Apache container is born.

Simple, right? (Well… Kubernetes-simple 😉)


🚫 Don’t Clean Up Yet!

If you're following along in a course or tutorial, keep your Apache deployment running. You’ll likely use it again later.


🎉 Wrapping Up: You’ve Created Pods Like a Pro!

Let’s take a second to appreciate what you’ve just done:

✅ Created your first Pod
✅ Understood why Pods matter
✅ Built your first Deployment
✅ Learned to scale your apps
✅ Peeked behind the scenes of Kubernetes magic

You’re no longer a Kubernetes beginner—you’re a Pod Pioneer! 🧑‍🚀🌌


Want to go further? In the next steps, you’ll dive into YAML, Services, Namespaces, and more. But for now, celebrate this moment—you just launched your first containerized apps in Kubernetes. High five! ✋🎉

Top comments (0)