π Community-Driven Knowledge Hub
We welcome contributions to build the most comprehensive Kubernetes hands-on resource!
π’ How You Can Help:
- π Report Issues
- π‘ Suggest New Guides
- βοΈ Submit Article Improvements
- π Add Missing Concepts
- β Review Open PRs
- Why These Guides?
- Introduction
- My Blogs On Kubernetes
- Architecture
- Basic Concepts
- Conclusion
- References
β
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
Kubernetes, also known as K8s, is an open-source container orchestration platform designed to automate the deployment, scaling, and management of containerized applications. It groups containers into logical units for easy management and discovery, ensuring high availability and scalability.
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 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.
This repository contains a comprehensive set of hands-on guides and practical examples for mastering Kubernetes. Below is a categorized list of topics covered:
- Introduction to Kubernetes Architecture
- Understanding Master and Worker Node Components
- Pods, Services, and Deployments
- Namespaces and Resource Management
- Volumes and Persistent Storage
- 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)
- 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 Ingress and Routing
- Transitioning to HTTPS with Self-Signed Certificates
- Kubernetes Taints and Tolerations
- Kubernetes Endpoints and EndpointSlices
- Horizontal and Vertical Pod Autoscalers
- Kubernetes Priority Classes and QoS Classes
- Scaling with Karpenter on AWS EKS
- Setting Up Amazon EKS Clusters with eksctl
- Using Fargate Profiles in Amazon EKS
- Azure DevOps Self-Hosted Agents on Kubernetes
Start by cloning the repository to your local machine:
git clone https://github.com/anveshmuppeda/kubernetes.git
cd kubernetes
The repository is organized into directories and files for each topic. Navigate through the folders to find the guide you are interested in.
Each guide includes practical examples. Follow the instructions provided in the guide to execute the examples in your Kubernetes environment.
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
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.
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.
- Kubernetes Documentation
- Kubernetes GitHub Repository
- Kubernetes API Reference
- Kubernetes Icon Set
- Minikube Play Ground
- K8s Labs
- Killercoda Play Ground
Anvesh Muppeda |
Sai Manasa Kota |
Rohini Gundala |
Devansh Bharadwaj |
This project is licensed under the GNU License - see the LICENSE file for details.