Skip to main content

Welcome to Kubernetes Hands-On Guides

Welcome to the Kubernetes Hands-On Guides! This project is your one-stop resource for mastering Kubernetes with practical examples, tutorials, and tools. Whether you're a beginner or an advanced user, you'll find valuable content to enhance your Kubernetes knowledge.


Getting Started​

Start your Kubernetes journey by exploring our comprehensive guides and tutorials. These resources are designed to help you set up, manage, and optimize Kubernetes clusters effectively.

Why These Guides? 💡​

✅ Battle-Tested Content - Lessons from managing 1000+ pods in production
✅ Cloud-Agnostic - Works on AWS EKS, GCP GKE, Azure AKS, and bare metal
✅ Version Current - Updated for Kubernetes 1.32+ features
✅ Zero Fluff - Direct executable examples with explanations
✅ Hands-On - Practical exercises to reinforce learning
✅ Open Source - Contribute to the community and share your knowledge
✅ Multi-Cloud - Works on AWS EKS, GCP GKE, Azure AKS, and bare metal
✅ Zero Fluff - Direct executable examples with explanations

Architecture​

Kubernetes Architecture

Master Node Components​

The master node is responsible for managing the Kubernetes cluster. It oversees the nodes and the pods running within the cluster. Key components of the master node include:

  • API Server: Exposes the Kubernetes API, acting as the front end for the Kubernetes control plane.
  • Etcd: A consistent and highly-available key-value store used for all cluster data.
  • Scheduler: Assigns workloads to the worker nodes based on resource availability.
  • Controller Manager: Runs controller processes to regulate the state of the cluster, handling tasks like node failures and endpoint management.
  • Cloud Controller Manager: Manages cloud-specific controller processes.

Worker Node Components​

Worker nodes run the applications and handle the containerized workloads. Each worker node has its own set of components:

  • Kubelet: Ensures that containers are running in a pod by communicating with the master node.
  • Kube-proxy: Maintains network rules and handles network communication within and outside the cluster.
  • Container Runtime: Runs the containers. Common runtimes include Docker, containerd, and CRI-O.

📚 Guides Covered in This Repository​

This repository contains a comprehensive set of hands-on guides and practical examples for mastering Kubernetes. Below is a categorized list of topics covered:

Kubernetes Basics​

  • Introduction to Kubernetes Architecture
  • Understanding Master and Worker Node Components
  • Pods, Services, and Deployments
  • Namespaces and Resource Management
  • Volumes and Persistent Storage

Advanced Kubernetes Concepts​

  • Rolling Updates and Recreate Deployment Strategies
  • Blue-Green and Canary Deployment Strategies
  • Kubernetes RBAC (Role-Based Access Control)
  • Kubernetes Resource Quotas and Limit Ranges
  • Kubernetes Pod Disruption Budgets (PDBs)

Kubernetes Tools​

  • Using kubectl for Cluster Management
  • Helm: Kubernetes Package Manager
  • Velero: Backup and Restore for Kubernetes
  • ArgoCD: Continuous Delivery for Kubernetes
  • FluxCD: GitOps for Kubernetes
  • eksctl: Managing Amazon EKS Clusters

Kubernetes Networking​

  • Kubernetes Ingress and Routing
  • Transitioning to HTTPS with Self-Signed Certificates
  • Kubernetes Taints and Tolerations
  • Kubernetes Endpoints and EndpointSlices
  • Kubernetes Network Policies
  • Kubernetes Service Mesh (Istio, Linkerd)
  • Kubernetes Load Balancing and Ingress Controllers
  • Kubernetes DNS and CoreDNS
  • Kubernetes Network Troubleshooting
  • Kubernetes Network Performance Optimization
  • Kubernetes Network Security Best Practices
  • Kubernetes Network Monitoring and Logging
  • Kubernetes Network Policy Examples
  • Kubernetes Network Policy Best Practices
  • Kubernetes Network Policy Troubleshooting
  • Kubernetes Network Policy Use Cases
  • Kubernetes Network Policy with Istio
  • Kubernetes Network Policy with Linkerd
  • Kubernetes Network Policy with Calico
  • Kubernetes Network Policy with Cilium
  • Kubernetes Network Policy with Weave Net
  • Kubernetes Network Policy with Flannel
  • Kubernetes Network Policy with Kube-router

Kubernetes Scaling and Performance​

  • Horizontal and Vertical Pod Autoscalers
  • Kubernetes Priority Classes and QoS Classes
  • Scaling with Karpenter on AWS EKS

Kubernetes on Cloud​

  • Setting Up Amazon EKS Clusters with eksctl
  • Using Fargate Profiles in Amazon EKS
  • Azure DevOps Self-Hosted Agents on Kubernetes

🚀 How to Use This Repository Effectively​

1. Clone the Repository​

Start by cloning the repository to your local machine:

git clone https://github.com/anveshmuppeda/kubernetes.git
cd kubernetes

2. Explore the Guides​

The repository is organized into directories and files for each topic. Navigate through the folders to find the guide you are interested in.

3. Run the Examples​

Each guide includes practical examples. Follow the instructions provided in the guide to execute the examples in your Kubernetes environment.

4. Use the Docker Images​

This repository also includes Dockerfiles for Kubernetes tools like kubectl, helm, velero, argocd, fluxcd, and eksctl. You can build and use these images as follows:

Build the All-in-One Docker Image:

docker build \
--build-arg KUBECTL_VERSION=<kubectl_version> \
--build-arg HELM_VERSION=<helm_version> \
--build-arg VELERO_VERSION=<velero_version> \
--build-arg ARGOCD_VERSION=<argocd_version> \
--build-arg FLUX_VERSION=<flux_version> \
--build-arg EKSCTL_VERSION=<eksctl_version> \
-t anvesh35/k8s-tools:allinone \
-f dockerfiles/k8s-tools/allinone/Dockerfile .

Run the All-in-One Docker Image:

docker run --rm -it anvesh35/k8s-tools:allinone bash

5. Contribute to the Repository​

We welcome contributions! If you find an issue or have an idea for improvement, feel free to open an issue or submit a pull request.

Conclusion​

This repository is a one-stop resource for learning Kubernetes with hands-on examples and practical guides. Whether you are a beginner or an advanced user, you will find valuable content to enhance your Kubernetes knowledge and skills.