Intro to kubernetes
Contents
Why even bother
Containers
Container Orchestrators
Kubernetes - What? Why? How?
Kubernetes - The details
Extending Kubernetes
Relation status - it’s complicated
Going forward
Intro to kubernetes
Let’s define players
Service based
Event driven
Open API
No infra management
Managed security
Pay only for usage
Developer Operator
Intro to kubernetes
Intro to kubernetes
Containers
Container - What's in a name?
Coming from the shipping industry
Caused aquatic theme for domain
Shipping containers
Portability - can be used on any of supported types of ships
Wide variety of cargo that can be packed inside
Standard sizes - standard fittings on ships
Many containers on a ship
Isolates cargo from each other
Translated to software
Portability - can be used on any supported system (system with container execution
environment)
Wide variety of software that can be packed inside
Standard format
Many containers to a physical node
Isolates execution of one container from another
What is a container?
way to pack code and dependencies together
can run anywhere
execute multiple containers to a physical machine
Sounds familiar?
same concept as virtual machines
pack OS and software together, to run in isolated instances
can run anywhere the specific hypervisor runs
multiple VMs to a physical machine
How do VMs work?
hypervisor = layer between VM and kernel
emulates system calls
allows multiple types of operating systems on a machine (Windows on Linux)
overhead for hypervisor
Containers on the other hand ...
only contain application and application-related libraries and frameworks, that run on
the host machine's kernel
smaller
lower overhead
differences in OS distributions and dependencies are abstracted - same kernel
Working together, not against each other
Windows on Linux possible only with VMs
older software needs to be adapted to be run as containers (and won't)
usage of VMs as a medium for containers (better isolation and easier scaling)
Greater modularity in software
Monolithic application → independent services that interact (microservices)
Containers empowering microservices
quicker start times -> easy to prototype or scale
allow work to be done independently on modules -> independent releases for
components (take care of interfaces)
isolated and abstracted runtime environments, that can be tailored for each module
shared runtime environment, for heterogeneous applications
Containers history – early days
need for resources to be shared among many users -> multiple terminals connected to
the same mainframe
main problem - execution can cause the main computer to crash -> down for
everybody
Containers history – Linux containers (lxc)
2008
Provides virtualization at OS level
Provides containers with its own process and network space
Containers history – Docker
2013
Container execution and management system
Originally started with lxc, then moved to libcontainer, which allows containers to work
with:
• linux namespaces
• libcontainer control groups
• capabilities
• app armor security profiles
• network interfaces
• firewall rules
Containers history – OCI & CNCF
Open Container Initiative – 2015
industry format for a container format and container runtime software for all platforms
spend resources on developing additional software to support use of standard containers,
instead of format alternatives
Cloud Native Container Foundation – 2015
Working on different projects to further standardize the market:
• Kubernetes
• Container Network Interface
• Containerd
Container orchestration
Need for something more?
docker started out with a CLI tool on top of lxc, that built, created, started, stopped
and exec'd containers
does management at a node level, upon specific requests
easy to manually manage with up to 100s of containers and 10s of nodes, but what
next?
Orchestrator
manage and organize both hosts and docker containers running on a cluster
main issue - resource allocation - where can a container be scheduled, to fulfill its
requirements (CPU/RAM/disk) + how to keep track of nodes and scale
Some orchestrator tasks
manage networking and access
track state of containers
scale services
do load balancing
relocation in case of unresponsive host
service discovery
attribute storage to containers
Orchestrator options
Kubernetes – open-source, product of CNCF
Apache Mesos – cluster management tool, with container orchestration being only one
of the things it can do, originally through a plugin called Marathon
Docker Swarm – integrated in docker container platform
Lately ...
Mesos announced Kubernetes support as container orchestration, alongside Marathon
Docker Enterprise Edition - integration with Kubernetes alongside Swarm
→ Kubernetes becoming the de-facto standard for container
orchestration (allowing developers to focus on building on top
instead of alternatives)
Kubernetes – What? Why? How?
What is Kubernetes?
“Kubernetes” = Greek for governor, helmsman, captain
open-source container orchestration system
originally designed by Google, maintained by CNCF
aim to provide "platform for automating deployment, scaling and operations of
application containers across clusters of hosts"
Why Kubernetes? - Goals
Main objectives, stated by devs, for community
Achieve velocity
Allow scaling of both software and teams
Present abstract infrastructure
Gain efficiency
Achieve velocity
Velocity = number of things you ship while maintaining a highly available service
Achieved by:
• immutability - created artifact cannot be changed
• declarative configuration - declare desired state and Kubernetes' job is to ensure it
matches
• self-healing systems - trying to maintain desired states if something changes
Allow scaling of software
encouraging decoupling in applications - separated components that communicate via
defined APIs via load-balanced services
running in shared abstract environment, without interference
utilizing standard container format that runs on any machine
Allow scaling of teams
separation of concerns for consistency and scaling
• application ops rely on the SLA provided by the platform
• orchestrator ops uphold SLA
Present abstract infrastructure
decoupling container images and machines
cluster can be heterogeneous and reduce overhead and cost
portability - container can be used on another cluster without being changed
Gain efficiency
optimized usage of physical machines - multiple containers on same machine
isolated with namespaces, to not interfere with each other
Kubernetes - the details
Container image format
layered format, allowing to inherit from lower
levels and to modify them by adding, changing or
removing files
using unified file system that allows this layering
issue – deleted file remains in older layers
image size bigger and build time longer ->
development of better tools
Running a container
image provides the filesystem base for execution
configuration, to interoperate with the rest of the system – environment variables,
CPU/RAM requirements, process to execute, ports to expose, etc.
Kubernetes and containers
Can you deploy a container in Kubernetes? NO (not directly)
Why not? Because the smallest deployable unit of computing is not a container, but ...
Pod
smallest deployable unit of computing in Kubernetes
colocated multiple apps(containers) into a single atomic unit, scheduled onto a single
machine
upon creation, statically allocated to a certain node
Pod
each container runs in its own cgroup (CPU + RAM allocation), but they share some
namespaces and filesystems, such as:
• IP address and port space
• same hostname
• IPC channels for communication
So, why a pod and not container directly?
all or nothing approach for a group of symbiotic containers, that need to be kept
together at all times
pod considered running if all containers are scheduled and running
Can you deploy a container in Kubernetes? Yes, inside a pod!
Service
abstraction which defines a logical set of Pods (selected using label selector), that
provide the same functionality (same microservice)
different types, for different types of exposure provided by the service
Deployment
manages replica set through time and versions for pod spec
scale != version update
using health checks, makes sure a new version works
allows rollbacks to older versions (keeps track of changes)
Deployment strategies - recreate
all previous pods are destroyed and new pods are created
quickest
downtime while new pods start
in case of problems and rollback, even more downtime
Kubernetes - next steps
Soooo many things to configure :(
at least one controller
some services
some configMaps and Secrets
preallocate persistentVolumes or create storage class for dynamic provisioning
Solution: another level of abstraction
higher-level controller that can manage lower-level elements
for the moment, not included in Kubernetes ... YET!
BUT can be added, through third-party controllers
What is Helm?
package manager for Kubernetes
provides higher-level abstraction (Chart) to configure full-fledged applications
manage complexity, easy upgrades, simple sharing of full application setups, safe
rollbacks
How does Helm work?
Helm CLI + Tiller server in Kubernetes (which is a controller)
CLI responsible for management + requests for releases of charts on Kubernetes
Tiller - listens for requests, combines chart + configuration = release, install release,
track release
Helm++
Helm release controller - current Lentiq way to manage applications
expose HelmRelease as a CRD (custom resource definition) in Kubernetes, to work
directly with Kubernetes to manage apps
What are Operators?
domain-specific controller
manages lifetime of a single application
works with Kubernetes primitives, as well as performing application-specific steps
Operators
pre and post provision hooks, for application-specific operations
single tool to perform all management (kubectl)
work in a scalable, repeatable, standard fashion
improve resiliency while reducing burden on IT teams
Relation status - it’s complicated
Write
Build a container image
Deploy the application
Expose at an endpoint
Request-level load
balancing
Set up SSL/TLS
Scale up based on
demand
Scale down to zero
Canary deployments
Monitor metrics
Cloud native stack
What Kubernetes missing ?
Source-to-URL deploys
Canary deployments, rollouts/rollbacks
Kubernetes needs container images built/pushed
Kubernetes has no notion of immutable revisions to cleanly rollback
Manage application traffic
Kubernetes cannot natively split traffic (lack of L7 HTTP load balancing)
Out-of-the box monitoring
Kubernetes doesn’t provide monitoring signals beyond CPU/memory
Scale-to-zero
Kubernetes cannot do natively
Going forward
More projects will natively support k8s
CockroachDB - A database architected and built for Kubernetes
SiSense BI engine rewritten in k8s)
More business scenarios (KubeFlow - Running ML/DS pipeline)
Go serverless (Knative ,kubeless)
Lightweight k8s (k3s - running on edge devices)
Advanced k8s management systems (Multi cloud ,Backup and restore
,Security)
Q&A

More Related Content

PPTX
Jenkins 1
PPTX
Photon Controller: An Open Source Container Infrastructure Platform from VMware
PDF
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
PPTX
Ultimate Guide to Microservice Architecture on Kubernetes
PPTX
NetflixOSS for Triangle Devops Oct 2013
PDF
Kubernetes - Sailing a Sea of Containers
PDF
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
PDF
Microservices, Kubernetes and Istio - A Great Fit!
Jenkins 1
Photon Controller: An Open Source Container Infrastructure Platform from VMware
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Ultimate Guide to Microservice Architecture on Kubernetes
NetflixOSS for Triangle Devops Oct 2013
Kubernetes - Sailing a Sea of Containers
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
Microservices, Kubernetes and Istio - A Great Fit!

What's hot (20)

PPTX
Why kubernetes matters
PDF
DCEU 18: Docker Enterprise Platform and Architecture
PDF
Building Your Docker Swarm Tech Stack
PPTX
DockerCon 15 Keynote - Day 2
PDF
Kubernetes Architecture - beyond a black box - Part 1
PPTX
Container Orchestration with Docker Swarm and Kubernetes
PDF
Microservices + Events + Docker = A Perfect Trio by Docker Captain Chris Rich...
PDF
Zero downtime-java-deployments-with-docker-and-kubernetes
PDF
DockerCon SF 2015: Ben Golub's Keynote Day 1
PPTX
7+1 myths of the new os
PDF
DCSF19 Container Security: Theory & Practice at Netflix
PDF
Docker in Production, Look No Hands! by Scott Coulton
PDF
DockerCon SF 2015: Keynote Day 1
PDF
DockerCon SF 2015: DHE/DTR
PPTX
Introduction to Docker - 2017
PDF
DCSF19 Docker Containers & Java: What I Wish I Had Been Told
PDF
DCEU 18: Docker Container Networking
PDF
Docker Meetup at Docker HQ: Docker Cloud
PDF
Cluster management with Kubernetes
ODP
Practical Container Security by Mrunal Patel and Thomas Cameron, Red Hat
Why kubernetes matters
DCEU 18: Docker Enterprise Platform and Architecture
Building Your Docker Swarm Tech Stack
DockerCon 15 Keynote - Day 2
Kubernetes Architecture - beyond a black box - Part 1
Container Orchestration with Docker Swarm and Kubernetes
Microservices + Events + Docker = A Perfect Trio by Docker Captain Chris Rich...
Zero downtime-java-deployments-with-docker-and-kubernetes
DockerCon SF 2015: Ben Golub's Keynote Day 1
7+1 myths of the new os
DCSF19 Container Security: Theory & Practice at Netflix
Docker in Production, Look No Hands! by Scott Coulton
DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: DHE/DTR
Introduction to Docker - 2017
DCSF19 Docker Containers & Java: What I Wish I Had Been Told
DCEU 18: Docker Container Networking
Docker Meetup at Docker HQ: Docker Cloud
Cluster management with Kubernetes
Practical Container Security by Mrunal Patel and Thomas Cameron, Red Hat

Similar to Intro to kubernetes (20)

PPTX
Kubernetes Immersion
PPTX
KubernetesPPT.pptx
PPTX
Newesis - Introduction to Containers
PDF
modern-guide-to-container-monitoring-and-orchestration.pdf
PDF
Kubernetes Basics - ICP Workshop Batch II
DOCX
Containerization Report
PPTX
Kubernetes_101_Zero_to_Platform_Engineer.pptx
PPTX
Docker and kubernetes
PDF
IRJET- Container Live Migration using Docker Checkpoint and Restore
PDF
Why kubernetes for Serverless (FaaS)
PDF
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
PPTX
Kubernetes: від знайомства до використання у CI/CD
PPTX
Mesos and Kubernetes ecosystem overview
PPTX
Techdays SE 2016 - Micros.. err Microcosmos
PPTX
Containers and workload security an overview
PPTX
Containers kuberenetes
PPTX
Containers kuberenetes
PPTX
Kubernetes: A Top Notch Automation Solution
PPTX
Openshift Workshop
PDF
Introduction to containers, k8s, Microservices & Cloud Native
Kubernetes Immersion
KubernetesPPT.pptx
Newesis - Introduction to Containers
modern-guide-to-container-monitoring-and-orchestration.pdf
Kubernetes Basics - ICP Workshop Batch II
Containerization Report
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Docker and kubernetes
IRJET- Container Live Migration using Docker Checkpoint and Restore
Why kubernetes for Serverless (FaaS)
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
Kubernetes: від знайомства до використання у CI/CD
Mesos and Kubernetes ecosystem overview
Techdays SE 2016 - Micros.. err Microcosmos
Containers and workload security an overview
Containers kuberenetes
Containers kuberenetes
Kubernetes: A Top Notch Automation Solution
Openshift Workshop
Introduction to containers, k8s, Microservices & Cloud Native

More from Elad Hirsch (10)

PDF
Data in the wild west with some DevOps to the rescue
PDF
KNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADS
PPTX
JaVers (Open Source) - Object auditing and diff framework
PDF
So you want to write a cloud function
PDF
Migrate AngularJS to Angular (v5)
PDF
Refactoring to GO modules
PDF
Cloud native - CI/CD
PPTX
devjam2018 - angular 5 performance
PPT
Jenkins 17 IL - JavaScript CI/CD
PPTX
AngularJS - Architecture decisions in a large project 
Data in the wild west with some DevOps to the rescue
KNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADS
JaVers (Open Source) - Object auditing and diff framework
So you want to write a cloud function
Migrate AngularJS to Angular (v5)
Refactoring to GO modules
Cloud native - CI/CD
devjam2018 - angular 5 performance
Jenkins 17 IL - JavaScript CI/CD
AngularJS - Architecture decisions in a large project 

Recently uploaded (20)

PDF
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
PDF
Launch a Bumble-Style App with AI Features in 2025.pdf
PDF
The AI Revolution in Customer Service - 2025
PDF
ment.tech-Siri Delay Opens AI Startup Opportunity in 2025.pdf
PPTX
Information-Technology-in-Human-Society.pptx
PDF
substrate PowerPoint Presentation basic one
PDF
Identification of potential depression in social media posts
PDF
giants, standing on the shoulders of - by Daniel Stenberg
PDF
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
PDF
Build Real-Time ML Apps with Python, Feast & NoSQL
PDF
EIS-Webinar-Regulated-Industries-2025-08.pdf
PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PDF
Co-training pseudo-labeling for text classification with support vector machi...
PDF
Data Virtualization in Action: Scaling APIs and Apps with FME
PDF
SaaS reusability assessment using machine learning techniques
PDF
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
PPTX
How to Convert Tickets Into Sales Opportunity in Odoo 18
PDF
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
PPTX
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
PDF
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
Launch a Bumble-Style App with AI Features in 2025.pdf
The AI Revolution in Customer Service - 2025
ment.tech-Siri Delay Opens AI Startup Opportunity in 2025.pdf
Information-Technology-in-Human-Society.pptx
substrate PowerPoint Presentation basic one
Identification of potential depression in social media posts
giants, standing on the shoulders of - by Daniel Stenberg
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
Build Real-Time ML Apps with Python, Feast & NoSQL
EIS-Webinar-Regulated-Industries-2025-08.pdf
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
Co-training pseudo-labeling for text classification with support vector machi...
Data Virtualization in Action: Scaling APIs and Apps with FME
SaaS reusability assessment using machine learning techniques
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
How to Convert Tickets Into Sales Opportunity in Odoo 18
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf

Intro to kubernetes

  • 2. Contents Why even bother Containers Container Orchestrators Kubernetes - What? Why? How? Kubernetes - The details Extending Kubernetes Relation status - it’s complicated Going forward
  • 4. Let’s define players Service based Event driven Open API No infra management Managed security Pay only for usage Developer Operator
  • 8. Container - What's in a name? Coming from the shipping industry Caused aquatic theme for domain
  • 9. Shipping containers Portability - can be used on any of supported types of ships Wide variety of cargo that can be packed inside Standard sizes - standard fittings on ships Many containers on a ship Isolates cargo from each other
  • 10. Translated to software Portability - can be used on any supported system (system with container execution environment) Wide variety of software that can be packed inside Standard format Many containers to a physical node Isolates execution of one container from another
  • 11. What is a container? way to pack code and dependencies together can run anywhere execute multiple containers to a physical machine
  • 12. Sounds familiar? same concept as virtual machines pack OS and software together, to run in isolated instances can run anywhere the specific hypervisor runs multiple VMs to a physical machine
  • 13. How do VMs work? hypervisor = layer between VM and kernel emulates system calls allows multiple types of operating systems on a machine (Windows on Linux) overhead for hypervisor
  • 14. Containers on the other hand ... only contain application and application-related libraries and frameworks, that run on the host machine's kernel smaller lower overhead differences in OS distributions and dependencies are abstracted - same kernel
  • 15. Working together, not against each other Windows on Linux possible only with VMs older software needs to be adapted to be run as containers (and won't) usage of VMs as a medium for containers (better isolation and easier scaling)
  • 16. Greater modularity in software Monolithic application → independent services that interact (microservices)
  • 17. Containers empowering microservices quicker start times -> easy to prototype or scale allow work to be done independently on modules -> independent releases for components (take care of interfaces) isolated and abstracted runtime environments, that can be tailored for each module shared runtime environment, for heterogeneous applications
  • 18. Containers history – early days need for resources to be shared among many users -> multiple terminals connected to the same mainframe main problem - execution can cause the main computer to crash -> down for everybody
  • 19. Containers history – Linux containers (lxc) 2008 Provides virtualization at OS level Provides containers with its own process and network space
  • 20. Containers history – Docker 2013 Container execution and management system Originally started with lxc, then moved to libcontainer, which allows containers to work with: • linux namespaces • libcontainer control groups • capabilities • app armor security profiles • network interfaces • firewall rules
  • 21. Containers history – OCI & CNCF Open Container Initiative – 2015 industry format for a container format and container runtime software for all platforms spend resources on developing additional software to support use of standard containers, instead of format alternatives Cloud Native Container Foundation – 2015 Working on different projects to further standardize the market: • Kubernetes • Container Network Interface • Containerd
  • 23. Need for something more? docker started out with a CLI tool on top of lxc, that built, created, started, stopped and exec'd containers does management at a node level, upon specific requests easy to manually manage with up to 100s of containers and 10s of nodes, but what next?
  • 24. Orchestrator manage and organize both hosts and docker containers running on a cluster main issue - resource allocation - where can a container be scheduled, to fulfill its requirements (CPU/RAM/disk) + how to keep track of nodes and scale
  • 25. Some orchestrator tasks manage networking and access track state of containers scale services do load balancing relocation in case of unresponsive host service discovery attribute storage to containers
  • 26. Orchestrator options Kubernetes – open-source, product of CNCF Apache Mesos – cluster management tool, with container orchestration being only one of the things it can do, originally through a plugin called Marathon Docker Swarm – integrated in docker container platform
  • 27. Lately ... Mesos announced Kubernetes support as container orchestration, alongside Marathon Docker Enterprise Edition - integration with Kubernetes alongside Swarm → Kubernetes becoming the de-facto standard for container orchestration (allowing developers to focus on building on top instead of alternatives)
  • 28. Kubernetes – What? Why? How?
  • 29. What is Kubernetes? “Kubernetes” = Greek for governor, helmsman, captain open-source container orchestration system originally designed by Google, maintained by CNCF aim to provide "platform for automating deployment, scaling and operations of application containers across clusters of hosts"
  • 30. Why Kubernetes? - Goals Main objectives, stated by devs, for community Achieve velocity Allow scaling of both software and teams Present abstract infrastructure Gain efficiency
  • 31. Achieve velocity Velocity = number of things you ship while maintaining a highly available service Achieved by: • immutability - created artifact cannot be changed • declarative configuration - declare desired state and Kubernetes' job is to ensure it matches • self-healing systems - trying to maintain desired states if something changes
  • 32. Allow scaling of software encouraging decoupling in applications - separated components that communicate via defined APIs via load-balanced services running in shared abstract environment, without interference utilizing standard container format that runs on any machine
  • 33. Allow scaling of teams separation of concerns for consistency and scaling • application ops rely on the SLA provided by the platform • orchestrator ops uphold SLA
  • 34. Present abstract infrastructure decoupling container images and machines cluster can be heterogeneous and reduce overhead and cost portability - container can be used on another cluster without being changed
  • 35. Gain efficiency optimized usage of physical machines - multiple containers on same machine isolated with namespaces, to not interfere with each other
  • 36. Kubernetes - the details
  • 37. Container image format layered format, allowing to inherit from lower levels and to modify them by adding, changing or removing files using unified file system that allows this layering issue – deleted file remains in older layers image size bigger and build time longer -> development of better tools
  • 38. Running a container image provides the filesystem base for execution configuration, to interoperate with the rest of the system – environment variables, CPU/RAM requirements, process to execute, ports to expose, etc.
  • 39. Kubernetes and containers Can you deploy a container in Kubernetes? NO (not directly) Why not? Because the smallest deployable unit of computing is not a container, but ...
  • 40. Pod smallest deployable unit of computing in Kubernetes colocated multiple apps(containers) into a single atomic unit, scheduled onto a single machine upon creation, statically allocated to a certain node
  • 41. Pod each container runs in its own cgroup (CPU + RAM allocation), but they share some namespaces and filesystems, such as: • IP address and port space • same hostname • IPC channels for communication
  • 42. So, why a pod and not container directly? all or nothing approach for a group of symbiotic containers, that need to be kept together at all times pod considered running if all containers are scheduled and running Can you deploy a container in Kubernetes? Yes, inside a pod!
  • 43. Service abstraction which defines a logical set of Pods (selected using label selector), that provide the same functionality (same microservice) different types, for different types of exposure provided by the service
  • 44. Deployment manages replica set through time and versions for pod spec scale != version update using health checks, makes sure a new version works allows rollbacks to older versions (keeps track of changes)
  • 45. Deployment strategies - recreate all previous pods are destroyed and new pods are created quickest downtime while new pods start in case of problems and rollback, even more downtime
  • 47. Soooo many things to configure :( at least one controller some services some configMaps and Secrets preallocate persistentVolumes or create storage class for dynamic provisioning
  • 48. Solution: another level of abstraction higher-level controller that can manage lower-level elements for the moment, not included in Kubernetes ... YET! BUT can be added, through third-party controllers
  • 49. What is Helm? package manager for Kubernetes provides higher-level abstraction (Chart) to configure full-fledged applications manage complexity, easy upgrades, simple sharing of full application setups, safe rollbacks
  • 50. How does Helm work? Helm CLI + Tiller server in Kubernetes (which is a controller) CLI responsible for management + requests for releases of charts on Kubernetes Tiller - listens for requests, combines chart + configuration = release, install release, track release
  • 51. Helm++ Helm release controller - current Lentiq way to manage applications expose HelmRelease as a CRD (custom resource definition) in Kubernetes, to work directly with Kubernetes to manage apps
  • 52. What are Operators? domain-specific controller manages lifetime of a single application works with Kubernetes primitives, as well as performing application-specific steps
  • 53. Operators pre and post provision hooks, for application-specific operations single tool to perform all management (kubectl) work in a scalable, repeatable, standard fashion improve resiliency while reducing burden on IT teams
  • 54. Relation status - it’s complicated Write Build a container image Deploy the application Expose at an endpoint Request-level load balancing Set up SSL/TLS Scale up based on demand Scale down to zero Canary deployments Monitor metrics
  • 56. What Kubernetes missing ? Source-to-URL deploys Canary deployments, rollouts/rollbacks Kubernetes needs container images built/pushed Kubernetes has no notion of immutable revisions to cleanly rollback Manage application traffic Kubernetes cannot natively split traffic (lack of L7 HTTP load balancing) Out-of-the box monitoring Kubernetes doesn’t provide monitoring signals beyond CPU/memory Scale-to-zero Kubernetes cannot do natively
  • 57. Going forward More projects will natively support k8s CockroachDB - A database architected and built for Kubernetes SiSense BI engine rewritten in k8s) More business scenarios (KubeFlow - Running ML/DS pipeline) Go serverless (Knative ,kubeless) Lightweight k8s (k3s - running on edge devices) Advanced k8s management systems (Multi cloud ,Backup and restore ,Security)
  • 58. Q&A