SlideShare une entreprise Scribd logo
1  sur  57
Télécharger pour lire hors ligne
1
Confidential
Container Runtimes and Kubernetes
● Andriy Mandybura - Senior DevOps Engineer
● Vadym Fabiianskyi - Lead DevOps Engineer
September 2020
2
Confidential
Description
GL DevOps Experts are committed to sharing
with our community as much knowledge about
Docker and Kubernetes as possible. 
Thinking about Kubernetes?
Join Vadym Fabiianskiy and Andrii
Mandubyra, GlobalLogic Lviv DevOps Experts
and learn:
● Container Runtime specifics
● What are the building blocks of K8S?
● How does Kubernetes work?
● Deployment and release strategies
DevOps фахівці у GlobalLogic прагнуть
поділитись із нашою спільнотою знаннями про
Docker та Kubernetes. 
Думаєш про Kubernetes?
Приєднайся до наших львівських DevOps
фахівців Вадима Фабіянського та Андрія
Мандибури та дізнайся більше про:
● Особливості Container Runtime
● Які складові K8S?
● Як працює Kubernetes?
● Стратегії розгортання та випуску програмного
забезпечення
3
Confidential
Agenda
1. What is Container Runtime?
2. What is Container Runtime Interface?
3. Why is Container Runtime Interface used?
4. Q&A
5. How does Kubernetes work?
6. Deployment and release strategy
7. Q&A
Confidential
● Over 11 years of professional experience in IT industry.
● Cloud Infrastructure expert, including experience in
building production-grade ecosystems in Telecom
domain.
● Software engineering background in multiple domains.
Expertise starting from cloud back-end solutions to
OLAP/OLTP/Warehouse data processing.
● Participated in different projects development including
back-end, web, cloud, real-time media processing, data
analysis, payment processing projects for SaaS and
OSS/BSS solutions.
● Expert in AWS/Azure cloud stacks.
● Infrastructure security expert.
● Experience in cutting edge technology DevOps stacks
and solutions, such as Terraform, Kubernetes, GitLab,
and Python.
● Experience of work in Scrum environment.
● A Master’s degree in Computer Sciences at Chisinau
State University, Moldova.
Vadym Fabiianskyi - Lead DevOps Engineer
● Більше 11 років досвіду в ІТ індустрії.
● Експерт у хмарній інфраструктурі, включаючи
досвід розробки екосистем виробничого рівня у галузі
телекомунікацій.
● Досвід програмного забезпечення у різних галузях.
Навички в імплементації хмарних back-end рішень та
обробці даних OLAP/OLTP/Warehouse.
● Брав участь у розробці різноманітних проектів,
включаючи back-end, веб, хмарні рішення, обробку
медіа в режимі реального часу, аналіз даних та проекти
з обробки платежів для SaaS та OSS/BSS.
● Фахівець у хмарних стеках AWS/Azure.
● Фахівець з інфраструктурної безпеки.
● Досвід роботи із DevOps стеками та рішеннями
передових технологій, таких як Terraform, Kubernetes,
GitLab та Python.
● Досвід роботи зі Scrum.
● Ступінь магістра з комп’ютерних наук у Молдовському
державному університеті.
Confidential
● 6 years of professional experience in IT
industry.
● Cloud Infrastructure expert, including
experience building production grade
ecosystems in Big Data domain.
● Expert in AWS, Azure technologies
stacks.
● Infrastructure security expert.
● A Master’s degree in Computer
Sciences at Lviv Polytechnic University,
Ukraine.
Andrii Mandybura - Senior DevOps Engineer
● 6 років досвіду в ІТ індустрії.
● Фахівець у хмарній інфраструктурі,
включаючи досвід розробки екосистем
виробничого рівня у Big Data.
● Фахівець у стеках технологій AWS, Azure.
● Фахівець з інфраструктурної безпеки.
● Ступінь магістра з комп’ютерних наук у
Національному університеті “Львівська
політехніка”.
6
Confidential
6
What is Container Runtime?
7
Confidential
Content
1. Containerization overview
2. Container Runtime specifics (Low/High)
3. Container Runtime Interface (CRI)
4. Docker and Dockerization
5. Docker in Kubernetes
8
Confidential
The way to the definition
App 1 App 2 App 3
Bins/Lib Bins/Lib Bins/Lib
Guest OS Guest OS Guest OS
Hypervisor
Infrastructure
Virtual Machines
App 1 App 2 App 3
Bins/Lib Bins/Lib Bins/Lib
Operating System
Infrastructure
Container Engine
Containers
9
Confidential
Types of Container Runtimes
runc
cri-o
containerd
Low Level High Level
10
Confidential
Overview of low-level Container Runtime
Networking
Other OS
subsystems
...
Linux namespaces
Linux cgroups
RUNC
11
Confidential
Pod A Cgroups
Containerd overview
Kubelet
cri-containerd
image
service
runtime
service
ocicni
Pod A Namespaces
Pod B
sandbox
container
container
A
containerd
shim
containerd
shim
Client
CRI
gRPC
12
Confidential
CRI-O overview
kubelet
pod 1 pod 2
image service
CNI
OCI generate
runtime service
github.com/containers/image github.com/containers/storage
common
common
common
common
commoninfra container infra container
container A
container B
container C
gRPC
library library
13
Confidential
13
What is Container Runtime Interface?
14
Confidential
Container Runtime Interface (CRI)
● CRI is the interface between the client and Container Runtime.
● With CRI, Kubernetes can communicate with multiple Container Runtimes.
● With a CRI client, like kubelet, Kubernetes can communicate with runtime (e.g., kata
runc) to create and generate a container in the OS layer.
15
Confidential
CRI
CRI
CRI Containerd
Dockershim
CRI-O
Docker
runc
Containerd
runc
runc
CRI-Containerd
CRI explanation
16
Confidential
Docker Engine overview
Docker
Engine
Docker CLI
Docker
REST API
Docker
Server
NetworkingContainerd
Persistent
Storage
Tmpfs
mounts
Bind
Mounts
runC SnapshotterVolumes
Network
Driver
EndpointSandbox IPAM Driver
Linux
Security
Filesystem
access
CgroupsNamespace
Storage
Driver
NoneOverlayBridgeHost macvlan
17
Confidential
Docker in Kubernetes ecosystem
● Docker is more than enough for Kubernetes.
● Mismatch of release sync between Docker and Kubernetes.
● Extra memory/CPU use due to extra layer with Docker.
18
Confidential
19
Confidential
19
How does Kubernetes work?
20
Confidential
Contents
1. Orchestration
a. Ways of applying
b. When do we need an orchestrator
c. Why Kubernetes (advantages)
2. What is Kubernetes
a. history and some facts
b. components
c. objects
d. on-premises setup
e. cloud setup: kubernetes managed
services
3. Use cases
a. setup
b. configuration
c. objects
d. special objects
e. scalability
f. monitoring
4. Deployment strategies
5. Materials to learn
21
Confidential
Orchestration - ways of applying
● Docker
● Docker-compose
● Docker Swarm (Docker, Inc.)
● Amazon ECS (AWS managed service)
● Hashicorp Nomad (exotic, but simple)
● Kubernetes
● RedHat Openshift (Kubernetes+)
● Marathon (Apache Mesos)
one host/localhost
Development Environment
several hosts/cluster
Production Environment
22
Confidential
Orchestration
When do we need an orchestrator
● Frequent releases
● Microservices + lots of containers
● DevOps, SRE, IaC way
● Custom and flexible infrastructure management logic + auto scalability
● High level of fault tolerance (SLA 99.9)
● You would like to have sweet dreams :)
23
Confidential
Orchestration
Why Kubernetes (advantages)
● Production ready
● Huge ecosystem
● Active development
● Extendable
● Scalability
● Features
● Cloud native/friendly
24
Confidential
What is Kubernetes
History and some facts
● Was founded by Joe Beda, Brendan Burns, and Craig McLuckie + other Google engineers
● Heavily influenced by Google's Borg system
● First release in 2014
● Implemented in Go
● Google partnered with the Linux Foundation to form the Cloud Native Computing Foundation (CNCF)
● On March 6, 2018, Kubernetes Project reached ninth place in commits at GitHub
25
Confidential
Kubernetes Control Plane
Kubernetes Nodes
kube-apiserver
kubelet
kube-proxy
kubelet
kube-proxy
kubelet
kube-proxy
etcd
kube-controller
manager
cloud-controller
manager
kube-scheduler
What is Kubernetes - components
26
Confidential
Host A
Pod
Container Container
Network Namespace 10.10.16.3
Pod Network
External Volume
What is Kubernetes - Kubernetes Pod architecture
27
Confidential
What is Kubernetes - Kubernetes Pod yaml example
28
Confidential
What is Kubernetes - Kubernetes components Pod
startup flow
DockerAPI Server etcd Scheduler Kubelet
create Pod
write
watch (new Pod)
bind Pod
write
watch (bound Pod)
Docker run
update Pod status
write
29
Confidential
What is Kubernetes - Kubernetes objects
ReplicaSet
DaemonSet
Deployment
StatefulSet
Job
CronJob
CRD
Service
Ingress
NamespaceConfigMap
PV
Secrets
Pod
30
Confidential
What is Kubernetes - on-premise setup
etcd
controller
manager
scheduler
kube-
apiserver
Control Plane nodes - 1, 2, … n
kubectl Node 1
Pods
System Services
kubelet
Container
Runtime
End
users
LB Node 1
Load
Balancer
Storage
Node 2
Pods
System Services
kubelet
Container
Runtime
Pods
System Services
kubelet
Container
Runtime
31
Confidential
What is Kubernetes - cloud setup
etcd
controller
manager
scheduler
kube-
apiserver
Control Plane
kubectl Node 1
Pods
System Services
kubelet
Container
Runtime
End
users
Cloud Provider
Network Edge
Load
Balancer
Storage
Node 2
Pods
System Services
kubelet
Container
Runtime
32
Confidential
Use case
On-premise setup
● VM (for control plane, nodes)
● Setup tools: Kubespray, Kubeadm, Kops
Cloud setup
● Cloud account
● VM (web console or infrastructure management tools, for nodes only)
● Setup tools: Kubespray, Kops, eksctl (AWS)
33
Confidential
Use case
Configuration
● yaml files and kubectl
● Configuration management tools (Ansible, etc.)
● Helm
Objects
● Deployments (applications)
● Services (applications)
● PVs/PVCs (applications)
● StatefulSets (databases)
● DaemonSets (monitoring)
● Ingresses
Special objects
● Ingress Controllers (Nginx, ALB)
● Controllers, Operators, CRD (cert-manager,
core-dns, external-dns)
34
Confidential
Use case
Scalability
● HPA
● Cluster autoscaler (AWS, GKE, Azure, Alibaba, DO, etc.)
● Cloud native (AWS ASG)
Monitoring
● Visualization: Kubernetes Dashboard (+ out-of-the-box cloud native solutions)
● Logging: fluentD + Elasticsearch + Kibana (+ out-of-the-box cloud native solutions)
● Metrics: Metrics-server, Prometheus (+ out-of-the-box cloud native solutions)
35
Confidential
35
Deployment and release strategy
36
Confidential
Deployment strategies
Rolling Deployment
time
time
instances
instances
Blue-Green Release
time
Canary Release
2x capacity
Recreate Deployment
time0 … 1 capacity
Load
Balancer
V1
V1
V1
Load
Balancer
V1
V1
V1
V2
V2
V2
Load
Balancer
V2
V2
V2
V1
V1
V1
instances
instances
37
Confidential
Materials to learn
● Security
● Service Discovery
● Networking
● Scalability
● Storage
● Logging
● Monitoring
38
Confidential
39
Confidential
Thank you
Name
Title
Your.name@globallogic.com
+1-000-333-4444
Name
Title
Your.name@globallogic.com
+1-000-333-4444
40
Confidential
Core Concept
KBs Object
Store
Kubelet
Kube
controller
etcd
Kube
scheduler
ContainerContainer
ImageImage
Container Runtime
Kube-
apiserver
Master Worker
41
Confidential
Components Flow 1/2
User creates Deployment
Deployment Create Event
Reconcile Deployment
Create ReplicaSet
Reconcile ReplicaSet
Reconcile Pods
Reconcile ReplicaSet
Reconcile Deployment
Reconcile Pods
Start Container
API
API
Deployment controller
Deployment controller
Replication controller
Replication controller
Scheduler
Scheduler
Node(Kubelet)
Node(Kubelet)
ReplicaSet Create Event
Create Pods
Pod Create Event
Schedule Podes to Nodes
Pod Update Event
Update Pod Status
Pod Update Events
Pod Update Events
ReplicaSet Update Events
Update Deployment Status
42
Confidential
Components Flow 2/2
Controller-managerClient API Server etcd Scheduler Kubelet Docker
1 2
3 4
5
6
7
8
9
10
11
12
13
14
15
16
43
Confidential
Understanding Kubernetes
API Server Event Queues (immutable Logs)
ConsumerProducer
Kubernetes
Metric Server
Horizontal Pod
Auroscaler
ReplicaSet
Controller
Scheduler Kubelet “X”
CPU Usage is
20 %
CPU Usage is
30 %
CPU Usage is
80 %
CPU Usage is
30 %
Scaled to 2 Scaled to 3 Scaled to 8
Added 2 Pods Added 1 Pod
Bound Pod to
Kubelet “X”
Bound Pod to
Kubelet “X”
Bound Pod to
Kubelet “X”
Horizontal Pod
Auroscaler
ReplicaSet
Controller
Scheduler
Metrics
Pod
ReplicaSet
Pod
44
Confidential
Abstractions and primitives
Main Container Sidecar
node.js
Disk
git
Pod
Sidecar Pattern
Container Container
python memcached
Pod
Sidecar Pattern
localhost
app containers
init containers
Pod
Initializer Pattern
Main Sidecar
Container 2
Container 1
ExecutionSequence
Main Container Sidecar
java monitoring
Pod
Adapter Pattern
Container A Container B
ENV_A1
ENV_A2
/etc/annotations
/etc/labels
volume A
Pod
Self Awareness Pattern
ENV_B1
ENV_B2
Pod
Manifest
+
Runtime
Information
API Server
Kubernetes client
inject
query
mount
Application Pod
Application Pod
Work Execution
Container
Custom Work
Handler
Work Execution
Container
Custom Work
Handler
Work Queue
Persistence
Work Coordinator
Container
Work Queue Pattern
Disk
What is the best Container
Runtime solution ?
45
Containerd (CRI runtime solution)
● Graduated by CNCF on February 28, 2019.
● Containerd is an OCI compliant core container runtime designed to
be embedded into larger systems
● Comparing by Docker containerd provides the minimum set of
functionality to execute containers and manage images on node.
46
Containerd architecture
47
Containerd Pull flow
48
Integration of Containerd in kubernetes
49
Containerd vs. Docker
Compared with the current Docker CRI implementation (dockershim),
cri-containerd eliminates an extra hop in the stack, making the stack more
stable and efficient. 50
CRI-O
● CRI-O is a Cloud Native Computing Foundation incubating project.
● CRI-O implements the Kubelet Container Runtime Interface (CRI) using OCI
● Comparing by Docker CRI-O provides the minimum set of functionality to
execute containers and manage images on node.
51
Cri-Containerd vs Cri-o (Bucketbench)
52
Solution 1 thrd 2 thrd 3 thrd 4 thrd 5 thrd 6 thrd 7 thrd 8 thrd 9 thrd 10 thrd
Cri-o 0.08 0.13 0.18
CRIContaine
rd
0.14 0.25 0.35 0.44 0.49
For Bucketbench project, you can find the code at https://github.com/estesp/bucketbench
Cri-Containerd vs Cri-o
53
Container runtime interface
And
Container network interface
54
Cri & Cni
● Container runtime provides the right configuration to
the Container network interface plugin.
● Container runtime invokes Network Plugin (bridge)
when container is ADDeD.
● Container runtime will create network namespaces
with the help of the network plugin.
● Container network interface Identify the network the
container must attach to
55
Demo
56
57
Confidential
Conclusion
In Kubernetes, there are a master node and multiple worker nodes. Each worker node
can handle multiple pods. Pods are just a bunch of containers clustered together as a
working unit. You can start designing your applications using pods. Once your pods
are ready, you can specify pod definitions to the master node, and how many you
want to deploy. From this point, Kubernetes is in control. It takes the pods and
deploys them to the worker nods.

Contenu connexe

Tendances

Tendances (20)

A basic overview of Containers
A basic overview of ContainersA basic overview of Containers
A basic overview of Containers
 
Real World CI/CD with Kubernetes
Real World CI/CD with KubernetesReal World CI/CD with Kubernetes
Real World CI/CD with Kubernetes
 
Extended and embedding: containerd update & project use cases
Extended and embedding: containerd update & project use casesExtended and embedding: containerd update & project use cases
Extended and embedding: containerd update & project use cases
 
Introduction to Kubernetes and GKE
Introduction to Kubernetes and GKEIntroduction to Kubernetes and GKE
Introduction to Kubernetes and GKE
 
Java applications containerized and deployed
Java applications containerized and deployedJava applications containerized and deployed
Java applications containerized and deployed
 
There is no container - Ori Pekelman
There is no container - Ori PekelmanThere is no container - Ori Pekelman
There is no container - Ori Pekelman
 
給 RD 的 Kubernetes 初體驗 (EKS version)
給 RD 的 Kubernetes 初體驗 (EKS version)給 RD 的 Kubernetes 初體驗 (EKS version)
給 RD 的 Kubernetes 初體驗 (EKS version)
 
What you have to know about Certified Kubernetes Administrator (CKA)
What you have to know about Certified Kubernetes Administrator (CKA)What you have to know about Certified Kubernetes Administrator (CKA)
What you have to know about Certified Kubernetes Administrator (CKA)
 
Kubernetes - A Rising Hero
Kubernetes - A Rising HeroKubernetes - A Rising Hero
Kubernetes - A Rising Hero
 
Docker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine EvolutionDocker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine Evolution
 
containerd and CRI
containerd and CRIcontainerd and CRI
containerd and CRI
 
Cicd pixelfederation
Cicd pixelfederationCicd pixelfederation
Cicd pixelfederation
 
Serverless architectures with Fn Project
Serverless architectures with Fn ProjectServerless architectures with Fn Project
Serverless architectures with Fn Project
 
FOSDEM 2019: A containerd Project Update
FOSDEM 2019: A containerd Project UpdateFOSDEM 2019: A containerd Project Update
FOSDEM 2019: A containerd Project Update
 
Cloud Native TLV Meetup: Securing Containerized Applications Primer
Cloud Native TLV Meetup: Securing Containerized Applications PrimerCloud Native TLV Meetup: Securing Containerized Applications Primer
Cloud Native TLV Meetup: Securing Containerized Applications Primer
 
Go for Operations
Go for OperationsGo for Operations
Go for Operations
 
Elasticsearch Monitoring in Openshift
Elasticsearch Monitoring in OpenshiftElasticsearch Monitoring in Openshift
Elasticsearch Monitoring in Openshift
 
Enabling Security via Container Runtimes
Enabling Security via Container RuntimesEnabling Security via Container Runtimes
Enabling Security via Container Runtimes
 
4K–Kubernetes with Knative, Kafka and Kamel
4K–Kubernetes with Knative, Kafka and Kamel 4K–Kubernetes with Knative, Kafka and Kamel
4K–Kubernetes with Knative, Kafka and Kamel
 
Journey of Kubernetes Scaling
Journey of Kubernetes ScalingJourney of Kubernetes Scaling
Journey of Kubernetes Scaling
 

Similaire à [Global logic] container runtimes and kubernetes

Similaire à [Global logic] container runtimes and kubernetes (20)

containerd the universal container runtime
containerd the universal container runtimecontainerd the universal container runtime
containerd the universal container runtime
 
From development to production: Deploying Java and Scala apps to kubernetes
From development to production: Deploying Java and Scala apps to kubernetesFrom development to production: Deploying Java and Scala apps to kubernetes
From development to production: Deploying Java and Scala apps to kubernetes
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
How Kubernetes helps Devops
How Kubernetes helps DevopsHow Kubernetes helps Devops
How Kubernetes helps Devops
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your way
 
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, KeynoteTectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
 
Webinar- Tea for the Tillerman
Webinar- Tea for the TillermanWebinar- Tea for the Tillerman
Webinar- Tea for the Tillerman
 
Continuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event KeynoteContinuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event Keynote
 
Containerizing MongoDB with kubernetes
Containerizing MongoDB with kubernetesContainerizing MongoDB with kubernetes
Containerizing MongoDB with kubernetes
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
 
Kubernetes and Hybrid Deployments
Kubernetes and Hybrid DeploymentsKubernetes and Hybrid Deployments
Kubernetes and Hybrid Deployments
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
 
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
 
Introduction to Containers
Introduction to ContainersIntroduction to Containers
Introduction to Containers
 
Webinar: From Development to Production with Docker and MongoDB
Webinar: From Development to Production with Docker and MongoDBWebinar: From Development to Production with Docker and MongoDB
Webinar: From Development to Production with Docker and MongoDB
 
OSDC 2018 | Three years running containers with Kubernetes in Production by T...
OSDC 2018 | Three years running containers with Kubernetes in Production by T...OSDC 2018 | Three years running containers with Kubernetes in Production by T...
OSDC 2018 | Three years running containers with Kubernetes in Production by T...
 
Moby KubeCon 2017
Moby KubeCon 2017Moby KubeCon 2017
Moby KubeCon 2017
 

Plus de GlobalLogic Ukraine

GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Ukraine
 

Plus de GlobalLogic Ukraine (20)

GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
 
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
 
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
 
Штучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptxШтучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptx
 
Задачі AI-розробника як застосовується штучний інтелект.pptx
Задачі AI-розробника як застосовується штучний інтелект.pptxЗадачі AI-розробника як застосовується штучний інтелект.pptx
Задачі AI-розробника як застосовується штучний інтелект.pptx
 
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptxЩо треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
 
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
 
JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"
 
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
 
Страх і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic EducationСтрах і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic Education
 
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
 
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
 
“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?
 
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
 
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
 
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
 
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
 
GlobalLogic Webinar "Introduction to Embedded QA"
GlobalLogic Webinar "Introduction to Embedded QA"GlobalLogic Webinar "Introduction to Embedded QA"
GlobalLogic Webinar "Introduction to Embedded QA"
 
C++ Webinar "Why Should You Learn C++ in 2021-22?"
C++ Webinar "Why Should You Learn C++ in 2021-22?"C++ Webinar "Why Should You Learn C++ in 2021-22?"
C++ Webinar "Why Should You Learn C++ in 2021-22?"
 
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
 

Dernier

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Dernier (20)

Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Intro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdfIntro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdf
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 

[Global logic] container runtimes and kubernetes

  • 1. 1 Confidential Container Runtimes and Kubernetes ● Andriy Mandybura - Senior DevOps Engineer ● Vadym Fabiianskyi - Lead DevOps Engineer September 2020
  • 2. 2 Confidential Description GL DevOps Experts are committed to sharing with our community as much knowledge about Docker and Kubernetes as possible.  Thinking about Kubernetes? Join Vadym Fabiianskiy and Andrii Mandubyra, GlobalLogic Lviv DevOps Experts and learn: ● Container Runtime specifics ● What are the building blocks of K8S? ● How does Kubernetes work? ● Deployment and release strategies DevOps фахівці у GlobalLogic прагнуть поділитись із нашою спільнотою знаннями про Docker та Kubernetes.  Думаєш про Kubernetes? Приєднайся до наших львівських DevOps фахівців Вадима Фабіянського та Андрія Мандибури та дізнайся більше про: ● Особливості Container Runtime ● Які складові K8S? ● Як працює Kubernetes? ● Стратегії розгортання та випуску програмного забезпечення
  • 3. 3 Confidential Agenda 1. What is Container Runtime? 2. What is Container Runtime Interface? 3. Why is Container Runtime Interface used? 4. Q&A 5. How does Kubernetes work? 6. Deployment and release strategy 7. Q&A
  • 4. Confidential ● Over 11 years of professional experience in IT industry. ● Cloud Infrastructure expert, including experience in building production-grade ecosystems in Telecom domain. ● Software engineering background in multiple domains. Expertise starting from cloud back-end solutions to OLAP/OLTP/Warehouse data processing. ● Participated in different projects development including back-end, web, cloud, real-time media processing, data analysis, payment processing projects for SaaS and OSS/BSS solutions. ● Expert in AWS/Azure cloud stacks. ● Infrastructure security expert. ● Experience in cutting edge technology DevOps stacks and solutions, such as Terraform, Kubernetes, GitLab, and Python. ● Experience of work in Scrum environment. ● A Master’s degree in Computer Sciences at Chisinau State University, Moldova. Vadym Fabiianskyi - Lead DevOps Engineer ● Більше 11 років досвіду в ІТ індустрії. ● Експерт у хмарній інфраструктурі, включаючи досвід розробки екосистем виробничого рівня у галузі телекомунікацій. ● Досвід програмного забезпечення у різних галузях. Навички в імплементації хмарних back-end рішень та обробці даних OLAP/OLTP/Warehouse. ● Брав участь у розробці різноманітних проектів, включаючи back-end, веб, хмарні рішення, обробку медіа в режимі реального часу, аналіз даних та проекти з обробки платежів для SaaS та OSS/BSS. ● Фахівець у хмарних стеках AWS/Azure. ● Фахівець з інфраструктурної безпеки. ● Досвід роботи із DevOps стеками та рішеннями передових технологій, таких як Terraform, Kubernetes, GitLab та Python. ● Досвід роботи зі Scrum. ● Ступінь магістра з комп’ютерних наук у Молдовському державному університеті.
  • 5. Confidential ● 6 years of professional experience in IT industry. ● Cloud Infrastructure expert, including experience building production grade ecosystems in Big Data domain. ● Expert in AWS, Azure technologies stacks. ● Infrastructure security expert. ● A Master’s degree in Computer Sciences at Lviv Polytechnic University, Ukraine. Andrii Mandybura - Senior DevOps Engineer ● 6 років досвіду в ІТ індустрії. ● Фахівець у хмарній інфраструктурі, включаючи досвід розробки екосистем виробничого рівня у Big Data. ● Фахівець у стеках технологій AWS, Azure. ● Фахівець з інфраструктурної безпеки. ● Ступінь магістра з комп’ютерних наук у Національному університеті “Львівська політехніка”.
  • 7. 7 Confidential Content 1. Containerization overview 2. Container Runtime specifics (Low/High) 3. Container Runtime Interface (CRI) 4. Docker and Dockerization 5. Docker in Kubernetes
  • 8. 8 Confidential The way to the definition App 1 App 2 App 3 Bins/Lib Bins/Lib Bins/Lib Guest OS Guest OS Guest OS Hypervisor Infrastructure Virtual Machines App 1 App 2 App 3 Bins/Lib Bins/Lib Bins/Lib Operating System Infrastructure Container Engine Containers
  • 9. 9 Confidential Types of Container Runtimes runc cri-o containerd Low Level High Level
  • 10. 10 Confidential Overview of low-level Container Runtime Networking Other OS subsystems ... Linux namespaces Linux cgroups RUNC
  • 11. 11 Confidential Pod A Cgroups Containerd overview Kubelet cri-containerd image service runtime service ocicni Pod A Namespaces Pod B sandbox container container A containerd shim containerd shim Client CRI gRPC
  • 12. 12 Confidential CRI-O overview kubelet pod 1 pod 2 image service CNI OCI generate runtime service github.com/containers/image github.com/containers/storage common common common common commoninfra container infra container container A container B container C gRPC library library
  • 14. 14 Confidential Container Runtime Interface (CRI) ● CRI is the interface between the client and Container Runtime. ● With CRI, Kubernetes can communicate with multiple Container Runtimes. ● With a CRI client, like kubelet, Kubernetes can communicate with runtime (e.g., kata runc) to create and generate a container in the OS layer.
  • 16. 16 Confidential Docker Engine overview Docker Engine Docker CLI Docker REST API Docker Server NetworkingContainerd Persistent Storage Tmpfs mounts Bind Mounts runC SnapshotterVolumes Network Driver EndpointSandbox IPAM Driver Linux Security Filesystem access CgroupsNamespace Storage Driver NoneOverlayBridgeHost macvlan
  • 17. 17 Confidential Docker in Kubernetes ecosystem ● Docker is more than enough for Kubernetes. ● Mismatch of release sync between Docker and Kubernetes. ● Extra memory/CPU use due to extra layer with Docker.
  • 20. 20 Confidential Contents 1. Orchestration a. Ways of applying b. When do we need an orchestrator c. Why Kubernetes (advantages) 2. What is Kubernetes a. history and some facts b. components c. objects d. on-premises setup e. cloud setup: kubernetes managed services 3. Use cases a. setup b. configuration c. objects d. special objects e. scalability f. monitoring 4. Deployment strategies 5. Materials to learn
  • 21. 21 Confidential Orchestration - ways of applying ● Docker ● Docker-compose ● Docker Swarm (Docker, Inc.) ● Amazon ECS (AWS managed service) ● Hashicorp Nomad (exotic, but simple) ● Kubernetes ● RedHat Openshift (Kubernetes+) ● Marathon (Apache Mesos) one host/localhost Development Environment several hosts/cluster Production Environment
  • 22. 22 Confidential Orchestration When do we need an orchestrator ● Frequent releases ● Microservices + lots of containers ● DevOps, SRE, IaC way ● Custom and flexible infrastructure management logic + auto scalability ● High level of fault tolerance (SLA 99.9) ● You would like to have sweet dreams :)
  • 23. 23 Confidential Orchestration Why Kubernetes (advantages) ● Production ready ● Huge ecosystem ● Active development ● Extendable ● Scalability ● Features ● Cloud native/friendly
  • 24. 24 Confidential What is Kubernetes History and some facts ● Was founded by Joe Beda, Brendan Burns, and Craig McLuckie + other Google engineers ● Heavily influenced by Google's Borg system ● First release in 2014 ● Implemented in Go ● Google partnered with the Linux Foundation to form the Cloud Native Computing Foundation (CNCF) ● On March 6, 2018, Kubernetes Project reached ninth place in commits at GitHub
  • 25. 25 Confidential Kubernetes Control Plane Kubernetes Nodes kube-apiserver kubelet kube-proxy kubelet kube-proxy kubelet kube-proxy etcd kube-controller manager cloud-controller manager kube-scheduler What is Kubernetes - components
  • 26. 26 Confidential Host A Pod Container Container Network Namespace 10.10.16.3 Pod Network External Volume What is Kubernetes - Kubernetes Pod architecture
  • 27. 27 Confidential What is Kubernetes - Kubernetes Pod yaml example
  • 28. 28 Confidential What is Kubernetes - Kubernetes components Pod startup flow DockerAPI Server etcd Scheduler Kubelet create Pod write watch (new Pod) bind Pod write watch (bound Pod) Docker run update Pod status write
  • 29. 29 Confidential What is Kubernetes - Kubernetes objects ReplicaSet DaemonSet Deployment StatefulSet Job CronJob CRD Service Ingress NamespaceConfigMap PV Secrets Pod
  • 30. 30 Confidential What is Kubernetes - on-premise setup etcd controller manager scheduler kube- apiserver Control Plane nodes - 1, 2, … n kubectl Node 1 Pods System Services kubelet Container Runtime End users LB Node 1 Load Balancer Storage Node 2 Pods System Services kubelet Container Runtime Pods System Services kubelet Container Runtime
  • 31. 31 Confidential What is Kubernetes - cloud setup etcd controller manager scheduler kube- apiserver Control Plane kubectl Node 1 Pods System Services kubelet Container Runtime End users Cloud Provider Network Edge Load Balancer Storage Node 2 Pods System Services kubelet Container Runtime
  • 32. 32 Confidential Use case On-premise setup ● VM (for control plane, nodes) ● Setup tools: Kubespray, Kubeadm, Kops Cloud setup ● Cloud account ● VM (web console or infrastructure management tools, for nodes only) ● Setup tools: Kubespray, Kops, eksctl (AWS)
  • 33. 33 Confidential Use case Configuration ● yaml files and kubectl ● Configuration management tools (Ansible, etc.) ● Helm Objects ● Deployments (applications) ● Services (applications) ● PVs/PVCs (applications) ● StatefulSets (databases) ● DaemonSets (monitoring) ● Ingresses Special objects ● Ingress Controllers (Nginx, ALB) ● Controllers, Operators, CRD (cert-manager, core-dns, external-dns)
  • 34. 34 Confidential Use case Scalability ● HPA ● Cluster autoscaler (AWS, GKE, Azure, Alibaba, DO, etc.) ● Cloud native (AWS ASG) Monitoring ● Visualization: Kubernetes Dashboard (+ out-of-the-box cloud native solutions) ● Logging: fluentD + Elasticsearch + Kibana (+ out-of-the-box cloud native solutions) ● Metrics: Metrics-server, Prometheus (+ out-of-the-box cloud native solutions)
  • 36. 36 Confidential Deployment strategies Rolling Deployment time time instances instances Blue-Green Release time Canary Release 2x capacity Recreate Deployment time0 … 1 capacity Load Balancer V1 V1 V1 Load Balancer V1 V1 V1 V2 V2 V2 Load Balancer V2 V2 V2 V1 V1 V1 instances instances
  • 37. 37 Confidential Materials to learn ● Security ● Service Discovery ● Networking ● Scalability ● Storage ● Logging ● Monitoring
  • 41. 41 Confidential Components Flow 1/2 User creates Deployment Deployment Create Event Reconcile Deployment Create ReplicaSet Reconcile ReplicaSet Reconcile Pods Reconcile ReplicaSet Reconcile Deployment Reconcile Pods Start Container API API Deployment controller Deployment controller Replication controller Replication controller Scheduler Scheduler Node(Kubelet) Node(Kubelet) ReplicaSet Create Event Create Pods Pod Create Event Schedule Podes to Nodes Pod Update Event Update Pod Status Pod Update Events Pod Update Events ReplicaSet Update Events Update Deployment Status
  • 42. 42 Confidential Components Flow 2/2 Controller-managerClient API Server etcd Scheduler Kubelet Docker 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
  • 43. 43 Confidential Understanding Kubernetes API Server Event Queues (immutable Logs) ConsumerProducer Kubernetes Metric Server Horizontal Pod Auroscaler ReplicaSet Controller Scheduler Kubelet “X” CPU Usage is 20 % CPU Usage is 30 % CPU Usage is 80 % CPU Usage is 30 % Scaled to 2 Scaled to 3 Scaled to 8 Added 2 Pods Added 1 Pod Bound Pod to Kubelet “X” Bound Pod to Kubelet “X” Bound Pod to Kubelet “X” Horizontal Pod Auroscaler ReplicaSet Controller Scheduler Metrics Pod ReplicaSet Pod
  • 44. 44 Confidential Abstractions and primitives Main Container Sidecar node.js Disk git Pod Sidecar Pattern Container Container python memcached Pod Sidecar Pattern localhost app containers init containers Pod Initializer Pattern Main Sidecar Container 2 Container 1 ExecutionSequence Main Container Sidecar java monitoring Pod Adapter Pattern Container A Container B ENV_A1 ENV_A2 /etc/annotations /etc/labels volume A Pod Self Awareness Pattern ENV_B1 ENV_B2 Pod Manifest + Runtime Information API Server Kubernetes client inject query mount Application Pod Application Pod Work Execution Container Custom Work Handler Work Execution Container Custom Work Handler Work Queue Persistence Work Coordinator Container Work Queue Pattern Disk
  • 45. What is the best Container Runtime solution ? 45
  • 46. Containerd (CRI runtime solution) ● Graduated by CNCF on February 28, 2019. ● Containerd is an OCI compliant core container runtime designed to be embedded into larger systems ● Comparing by Docker containerd provides the minimum set of functionality to execute containers and manage images on node. 46
  • 49. Integration of Containerd in kubernetes 49
  • 50. Containerd vs. Docker Compared with the current Docker CRI implementation (dockershim), cri-containerd eliminates an extra hop in the stack, making the stack more stable and efficient. 50
  • 51. CRI-O ● CRI-O is a Cloud Native Computing Foundation incubating project. ● CRI-O implements the Kubelet Container Runtime Interface (CRI) using OCI ● Comparing by Docker CRI-O provides the minimum set of functionality to execute containers and manage images on node. 51
  • 52. Cri-Containerd vs Cri-o (Bucketbench) 52 Solution 1 thrd 2 thrd 3 thrd 4 thrd 5 thrd 6 thrd 7 thrd 8 thrd 9 thrd 10 thrd Cri-o 0.08 0.13 0.18 CRIContaine rd 0.14 0.25 0.35 0.44 0.49 For Bucketbench project, you can find the code at https://github.com/estesp/bucketbench
  • 55. Cri & Cni ● Container runtime provides the right configuration to the Container network interface plugin. ● Container runtime invokes Network Plugin (bridge) when container is ADDeD. ● Container runtime will create network namespaces with the help of the network plugin. ● Container network interface Identify the network the container must attach to 55
  • 57. 57 Confidential Conclusion In Kubernetes, there are a master node and multiple worker nodes. Each worker node can handle multiple pods. Pods are just a bunch of containers clustered together as a working unit. You can start designing your applications using pods. Once your pods are ready, you can specify pod definitions to the master node, and how many you want to deploy. From this point, Kubernetes is in control. It takes the pods and deploys them to the worker nods.