Skip to content

anveshmuppeda/kubernetes

Repository files navigation

Kubernetes Complete Hands-On Guides GitHub

Kuberntes Complete Hands-On Guides.

Table of Contents

Introduction

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.

My Blogs On Kubernetes

Here is a List of My Blog Posts on Kubernetes

  1. A Hands-on Guide to Kubernetes Custom Resource Definitions (CRDs) with a Practical Example
  2. A Hands-on Guide to Vault in Kubernetes
  3. A Hands-on Guide to Kubernetes Resource Quotas & Limit Ranges
  4. Rolling Update & Recreate Deployment Strategies in Kubernetes
  5. Blue-Green Deployment in Kubernetes
  6. A Hands-on Guide to Kubernetes Volumes
  7. A Hands-on Guide to Kubernetes RBAC with a User Creation
  8. Implementing Canary Deployment in Kubernetes
  9. A Hands-on Guide to Kubernetes Pod Disruption Budget (PDB)
  10. A Hands-on Guide to Kubernetes CronJobs
  11. A Hands-on Guide to Kubernetes Jobs
  12. Mastering Kubernetes Backups with Velero
  13. Kubernetes Ingress: Transitioning to HTTPS with Self-Signed Certificates
  14. Mastering Kubernetes ConfigMaps
  15. Secure Your Kubernetes Apps: Hands-On Basic Authentication with Ingress
  16. Migrating Angular .NET Docker Environment to Kubernetes
  17. Exploring Types of Routing-Based Ingresses in Kubernetes
  18. A Hands-On Guide to Kubernetes Ingress Nginx
  19. Mastering Kubernetes Ingress
  20. From Docker to Kubernetes: Elevating Our Login App
  21. Kubernetes Taints & Tolerations
  22. Azure DevOps Self-Hosted Agents on Kubernetes: Part 3
  23. Azure DevOps Self-Hosted Agents on Kubernetes: Part 2
  24. Azure DevOps Self-Hosted Agents on Kubernetes: Part 1
  25. Understanding Kubernetes Pod Fields
  26. kubectl Helper: Your Ultimate Kubernetes Command Companion
  27. Exploring Container Types in Kubernetes: Beyond Init and Sidecar Containers
  28. Deploying NGINX on Kubernetes: A Quick Guide
  29. Setting Up an Amazon EKS Cluster and Node Group Using eksctl
  30. Jump Box Setup on EKS Cluster
  31. ⎈ A Hands-On Guide to Kubernetes External Secrets Operator 🛠️
  32. ⎈ A Hands-On Guide to Kubernetes Priority Classes 🛠️
  33. ⎈ A Hands-On Guide to Kubernetes Horizontal & Vertical Pod Autoscalers 🛠️
  34. ⎈ A Hands-On Guide to Kubernetes QoS Classes🛠️
  35. ⎈ A Hands-On Guide to Kubernetes Endpoints & EndpointSlices 🛠️

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.

Basic Concepts

Pods

Pods are the smallest deployable units in Kubernetes, representing a single instance of a running process. They encapsulate one or more containers, storage resources, a unique network IP, and options for how the containers should run.

Services

Services provide stable endpoints for accessing the running pods. They enable communication between different parts of an application and can expose the application to external traffic.

Volumes

Volumes offer persistent storage that pods can use. Unlike containers, which are ephemeral, volumes retain data even after a pod is terminated.

Namespaces

Namespaces are a way to divide cluster resources between multiple users. They provide scope for names, allowing for resource management and access control.

Deployments

Deployments define the desired state for application deployment, specifying the number of replicas, the container image to use, and update strategies. They enable declarative updates to applications and rollbacks if necessary.

Conclusion

Kubernetes provides a robust platform for managing containerized applications, offering powerful abstractions to ensure applications are scalable, resilient, and easy to manage. Understanding the basic architecture and concepts is essential for effectively leveraging Kubernetes in your projects.

References

Project Maintainers & Contributors


Anvesh Muppeda

License

This project is licensed under the GNU License - see the LICENSE file for details.