Kubernetes Training Notes Nov 2025

DevOps

MOTOSHARE 🚗🏍️
Turning Idle Vehicles into Shared Rides & Earnings

From Idle to Income. From Parked to Purpose.
Earn by Sharing, Ride by Renting.
Where Owners Earn, Riders Move.
Owners Earn. Riders Move. Motoshare Connects.

With Motoshare, every parked vehicle finds a purpose. Owners earn. Renters ride.
🚀 Everyone wins.

Start Your Journey with Motoshare

Kubernetes Training Notes (Complete, Clean & Structured)

End-to-End Kubernetes Basics → Cluster Setup → Workloads → Services → Debugging → RC → Deployment → Scaling → Rollout


1. Introduction to Kubernetes

What is Kubernetes?

Kubernetes (K8s) is an open-source container orchestration platform used to automate:

  • Deployment
  • Scaling
  • Management
  • Healing (self-healing)
  • Updating (rollouts/rollbacks)

It ensures containerized applications run reliably on distributed systems.


Why Kubernetes?

Kubernetes solves real-world production problems:

  • Automated Scaling (Horizontal & Vertical)
  • Self-Healing (restarts failed pods)
  • Load Balancing
  • Zero-downtime Deployments
  • Automated Rollbacks
  • Service Discovery & Networking
  • Declarative configuration
  • Multi-cloud / Hybrid support

Kubernetes abstracts the infrastructure and lets developers focus on application logic.


How Kubernetes Works

A Kubernetes cluster has:

  • Control Plane (Master Node)
  • Worker Nodes

You interact using kubectl → API Server → Kubelet → Pod.

Workflow

Workstation (kubectl) → API Server → Scheduler → Kubelet (Worker) → Pod

Architecture of Kubernetes

Control Plane Components

  • API Server – central communication layer
  • etcd – distributed key-value store
  • Controller Manager – manages controllers (node, job, rc)
  • Scheduler – decides placement of pods
  • Cloud Controller Manager – optional cloud integrations

Worker Node Components

  • kubelet – node agent
  • kube-proxy – networking and iptables rules
  • Container Runtime – Docker, containerd, CRI-O

2. Kubernetes Cluster Setup (Step-by-Step)

Refer:


Master Node Setup

kubeadm init

Worker Node Setup

Join using:

kubeadm join 172.31.14.2:6443 --token ms44wg.80pd5dalimgmb7xe \
--discovery-token-ca-cert-hash sha256:f1df7bb1cf8b8afcce7ffce4f9819ee7f3f9423228102b497cca877ab15c4c3e
Code language: CSS (css)

kubectl Architecture

Workstation (kubectl)  →   API Server  →  kubelet  →  Pod

3. Basic Kubernetes Workflow

Step 2 – Create Namespace

kubectl create ns dev
kubectl create ns qa
kubectl get ns
kubectl describe ns dev
kubectl delete ns dev
Code language: JavaScript (javascript)

Step 3 – Create Pod

Example pod YAML:

apiVersion: v1
kind: Pod
metadata:
  name: rajesh
  labels:
    app: helloworld
spec:
  containers:
  - name: devopsschool1
    image: scmgalaxy/nginx-devopsschoolv1
    ports:
    - name: nginx-port
      containerPort: 80

Commands:

kubectl create -f pod.yaml
kubectl get pods
kubectl describe pod rajesh
kubectl logs rajesh
kubectl exec -it rajesh -- /bin/bash
kubectl delete -f pod.yaml
Code language: JavaScript (javascript)

Port-forward:

kubectl port-forward --address 0.0.0.0 pod/rajesh 8888:80

Step 4 – Create ReplicationController

RC = Ensures fixed number of Pod replicas

Example:

apiVersion: v1
kind: ReplicationController
metadata:
  name: rajeshrc
spec:
  replicas: 5
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: scmgalaxy/nginx-devopsschoolv1

Commands:

kubectl apply -f rc.yaml
kubectl get rc
kubectl get pods
kubectl edit rc rajeshrc
kubectl delete rc rajeshrc
Code language: JavaScript (javascript)

Step 5 – Create Deployment

Deployment = RC + Versioning + Rollout + Rollback

Quick creation:

kubectl create deployment my-dep --image=scmgalaxy/nginx-devopsschoolv1 --replicas=3

Scaling:

kubectl scale --replicas=5 deployment/my-dep
kubectl scale --replicas=15 deployment/my-dep
kubectl scale --replicas=2 deployment/my-dep

Rollout History:

kubectl rollout history deployment/my-dep
kubectl edit deployment/my-dep
kubectl rollout undo deployment/my-dep --to-revision=1

Step 6 – Create Service

Expose deployment:

kubectl expose deploy my-dep --port=80 --target-port=80

List service:

kubectl get svc
kubectl describe svc my-dep
curl http://<ClusterIP>
Code language: HTML, XML (xml)

Service types:

  • ClusterIP
  • NodePort
  • LoadBalancer

4. Kubernetes API Resources and CRUD

Kubernetes CRUD:

ActionCommandYAML
Createkubectl createkubectl create -f file.yaml
Readkubectl get, kubectl describekubectl get -f file.yaml
Updatekubectl editkubectl apply -f file.yaml
Deletekubectl deletekubectl delete -f file.yaml

View all API resources:

kubectl api-resources

5. Kubernetes Troubleshooting & Debugging

Important Commands

PurposeCommand
Describe detailskubectl describe
Logskubectl logs <pod>
Shell into Podkubectl exec -it <pod> -- bash
Attachkubectl attach <pod>
Port Forwardkubectl port-forward pod/podname 8888:80
Copy fileskubectl cp file.yaml pod:/tmp
Authorization testkubectl auth can-i create pod
Eventskubectl events

6. Detailed Command History (Captured from your session)

All relevant commands have been consolidated, cleaned, and categorized:

Cluster & config

kubectl cluster-info
kubectl get nodes
kubectl config view
kubectl version
Code language: JavaScript (javascript)

Pods

kubectl get pods
kubectl get pods -o wide
kubectl describe pod rajesh
kubectl logs rajesh
kubectl exec -it rajesh -- bash
kubectl delete pod <pod>
Code language: JavaScript (javascript)

Namespace

kubectl create ns dev
kubectl delete ns dev
kubectl describe ns dev
Code language: JavaScript (javascript)

Replication Controller

kubectl apply -f rc.yaml
kubectl get rc
kubectl edit rc rajeshrc
kubectl delete rc rajeshrc
Code language: JavaScript (javascript)

Deployment

kubectl create deployment my-dep --image=scmgalaxy/nginx-devopsschoolv1 --replicas=3
kubectl scale --replicas=20 deployment/my-dep
kubectl rollout history deploy/my-dep
kubectl rollout undo deploy/my-dep --to-revision=1

Service

kubectl expose deploy my-dep --port=80 --target-port=80
kubectl get svc
curl http://<ClusterIP>
Code language: HTML, XML (xml)

7. Kubernetes Concepts Summary

| Component | Description |
|———-
| Pod | Smallest deployable unit |
| RC | Maintains fixed # of pods |
| Deployment | Adds versioning + rollouts |
| Service | Provides stable networking |
| Namespace | Logical separation |
| Node | Worker machine |
| Container Runtime | Docker/containerd |
| Kubelet | Node agent |
| API Server | Entry point for kubectl |


8. Security View

Platform → Runtime → App → DB → Network
(Secure every layer)


9. Everything in One Flow

Kubernetes workflow from zero to service exposure

  1. Setup cluster
  2. Create Namespace
  3. Create Pod
  4. Create ReplicationController
  5. Create Deployment
  6. Scale Deployment
  7. Check rollout history / revert
  8. Expose via Service
  9. Access via ClusterIP / NodePort / LB
  10. Debug using logs/describe/exec/events

Would you like these?

Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x