0% found this document useful (0 votes)
64 views27 pages

Introduction To Kubernetes (K8) : Tomislav Mikulin Devops

Kubernetes (k8s) is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers into pods that can be deployed across a cluster of machines. Key features include horizontal scaling, self-healing, service discovery, and load balancing. The basic objects in k8s are pods, services, volumes, and nodes. Deployments drive apps to their desired state, and services provide a stable IP for pods. Kubernetes abstracts the hardware layer and provides portability across clouds.

Uploaded by

Ñă Đîä
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
64 views27 pages

Introduction To Kubernetes (K8) : Tomislav Mikulin Devops

Kubernetes (k8s) is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers into pods that can be deployed across a cluster of machines. Key features include horizontal scaling, self-healing, service discovery, and load balancing. The basic objects in k8s are pods, services, volumes, and nodes. Deployments drive apps to their desired state, and services provide a stable IP for pods. Kubernetes abstracts the hardware layer and provides portability across clouds.

Uploaded by

Ñă Đîä
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

Introduction to Kubernetes (k8)

Tomislav Mikulin
DevOps
Word of caution
What is kubernetes?
Formal definition:

“Kubernetes is an open source system for


automating deployment, scaling and management
of containerized applications”

Kubernetes documentation
What is kubernetes?
Unformal definition:

“Kubernetes is like having a little devops in a


cluster that takes care of you’re applications and
makes sure that everything is up and running.”

Kelsey Hightower (Google)


Packaging applications
Containers (Docker)

Two main benefits:

• They make shipping and deploying apps a lot easier!

• They bundle all the apps dependencies in a single image


Packaging applications
Docker - like mobile apps on a smartphone, but for
servers
Docker deployment
Now what?
Why do we need k8?
• Real issues are:

• Application configuration

• Service discovery

• Managing updates

• Monitoring

• Deployment…
Why is k8 special?
• Github (37,578 )

• 1693 contributors

Backed up by :

• Google, RedHat, CoreOS, Cloud Native Computing


Foundation

• Cloud providers AWS, GCLOUD, AZURE

• 10/15 years of R&D in Google (Borg, Omega)


k8 features
• Horizontal scaling

• Automated rollouts and rollbacks

• Self healing

• Service discovery and load balancing

• Secret and configuration management

• Better server utilization (less money goes to aws)


Abstracts the hardware layer

LoadBalancers | Routes | DNS

Kubernetes Application

Storage Machine Network

EBS NFS GFS VM PHYSICAL L2 L3

Infrastructure
k8 architecture

Kubernetes Master Node Node

Kubelet Kubelet
KUBE - API SERVER

Kube-proxy Kube-proxy

POD POD
Scheduler ETCD

Container Container

Controller Cloud
Manager Controller
Cloud
p. pods/apps running on k8
Node Node

Kubelet Kubelet
Registry

Docker Docker

POD POD

YAML
API Container Container
APP
SPEC Master
k8 basic objects
• Everything in k8 is a declarative configuration object
(RESTfull API object)

k8 uses them to represent the state of a cluster:

• Pod - a group of one or more containers

• Service - gives your pods a stable IP

• Volume - storage and configuration for the pods

• Nodes - VM or physical machine


k8 high-level objects
controllers

• ReplicaSet

• Deployment (important)

• StatefulState (PetSets)

• DaemonSet

• Job
Whats a pod anyway?
Pod is group of containers

Containers run under the same Network and UTS


namespace (same hostname and net. interface)

Run under the same IPC namespace

Containers in a pod share the same IP address


(localhost) and port space

Pods can be seen as very very light VM-s


Basic objects for an app
• Deployment object

generate the pods with a label, and keeps them alive

• Service object

Grouping object that gives you a stable IP (virtual IP)


for the pods that have a certain LABEL

• (Config map - app configuration file)


Services in k8

FRONTED
Frontend Service
IP: 1.1.1.1

POD1 POD2 POD3


IP: 2.1.1.1 IP: 2.1.1.2 IP: 2.1.1.3

Backend Service BACKEND


IP: 1.1.1.2

POD
IP: 2.1.1.4
Deployment controller
Drives current state towards the desired state

app: televendcloud
replicas: 1

NODE 1 NODE 2 NODE 3

NODE 1
Deployment controller
Drives current state towards the desired state

app: televendcloud
replicas: 1

NODE 1 NODE 2 NODE 3

NODE 1

POD

Container
Deployment controller
Drives current state towards the desired state

app: televendcloud
replicas: 3

NODE 1 NODE 2 NODE 3

NODE 1

POD

Container
Deployment controller
Drives current state towards the desired state

app: televendcloud
replicas: 3

NODE 1 NODE 2 NODE 3

NODE 1

POD POD POD


Container Container Container
Deployment controller
Drives current state towards the desired state

app: televendcloud
replicas: 3

NODE 1 NODE 2 NODE 3

NODE 1

POD POD
Container Container
Deployment controller
Drives current state towards the desired state

app: televendcloud
replicas: 3

NODE 1 NODE 2 NODE 3

NODE 1 POD

Container
POD

Container POD

Container
k8 documentation
k8 learning material:

Minikube - program (for practicing and development)

“Up and running with Kubernetes” - book

Scalable microservices with Kubernetes - Udacity


course

https://www.katacoda.com/ - website

kubernetes.io - documentation

You might also like