Skip to content

Latest commit

 

History

History

k8s-introduction

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Getting Started with Kubernetes

Key Concepts

  • Understanding Container Deployment Challenges
  • What is Kubernetes? And Why?
  • Kubernetes Concepts & Components

What and Why Kubernetes

Deployment Problem

Deploying containers manually is challenging, error-prone, and often frustrating, even when not considering security and configuration issues. Here are some common problems:

  • Containers can crash or go offline and require replacement.
  • Traffic spikes may necessitate additional container instances.
  • Incoming traffic needs to be evenly distributed across containers.

Services like AWS ECS provide features such as container health checks, automatic re-deployments, autoscaling, and load balancing. However, relying on a specific cloud service can lead to vendor lock-in. Switching providers would require learning the unique services, configurations, and options offered by the new platform.

Kubernetes to the Rescue

Kubernetes is an open-source system (and de-facto standard) for orchestrating container deployments. It offers features like automatic deployment, scaling & load balancing, management,...

why k8s

What Kubernetes IS and IS NOT

  • It’s not a cloud service provider - It’s an open source project
  • It’s not a service by, or restricted to, a cloud service provider - It can be used with any provider
  • It’s not just a software you run on some machine - It’s a collection of concepts and tools
  • It’s not an alternative to Docker - It works with (Docker) containers
  • It’s not a paid service - It’s a free open-source project

Kubernetes is like Docker-Compose for multiple machine.

Kubernetes Architecture

core concepts

What Kubernetes Will Do:

  • Create objects (e.g. Pods) and manage them
  • Monitor Pods and re-create them, scale Pods etc.
  • Kubernetes utilizes the provided (cloud) resources to apply your configuration / goal

What Needs To Be Done / Setup:

  • Create the Cluster and the Node Instances (Worker + Master Nodes)
  • Setup API Server, kubelet and other Kubernetes services / software on Nodes
  • Create other (cloud) provider resources that might be needed (e.g. Load Balancer, Filesystems)

Worker Nodes

worker nodes

Master Node

master node

Core Concepts

Cluster:
A set of Node machines which are running the Containerized Application (Worker Nodes) or control other Nodes (Master Node).

Nodes::
Physical or virtual machine with a certain hardware capacity which hosts one or multiple Pods and communicates with the Cluster.

Master Node:
Cluster Control Plane, managing the Pods across Worker Nodes.

Worker Node:
Hosts Pods, running App Containers (+ resources).

Pods:
Pods hold the actual running App Containers + their required resources (e.g. volumes).

Containers:
Normal (Docker) Containers.

Services:
A logical set (group) of Pods with a unique, Pod- and Container-independent IP address.