SlideShare a Scribd company logo
Build and run applications in a
Dockerless Kubernetes world
Jorge Morales
OpenShift Developer Advocate
DevConf India 2018
August 5th - 11:45 - Room 1
Me (aka Jorge Morales)
● Spanish by nature and by language
● Work at Red Hat
● OpenShift Developer Advocate
● Mostly Java developer
● Obsessed with improving the developer experience
@jorgemoralespou
github.com/jorgemoralespou
http://jorgemoral.es
Build and run applications in a dockerless kubernetes world - DevConf India 18
Build and run applications in a dockerless kubernetes world - DevConf India 18
Kernel namespaces: sandboxing processes
from one another
Control Groups (cgroups): control process
resource allocations
Security: capabilities drop (seccomp),
Mandatory access control (SELinux,
Apparmor)
Linux Containers
@jorgemoralespou
@jorgemoralespou
@jorgemoralespou
Build and run applications in a dockerless kubernetes world - DevConf India 18
@jorgemoralespou
@jorgemoralespou
With scale came complexity
Orchestration
@jorgemoralespou
OTHER ORCHESTRATORS
(Cloud Foundry Diego,
Nomad, Blox, etc.)
2 YEARS AGO
Fragmented landscape
TODAY
Kubernetes consolidation
OTHER
ORCHESTRATORS
CONTAINER ORCHESTRATION LANDSCAPE
@jorgemoralespou
Why kubernetes?
#1: Open source, backed by giants
#2: Vibrant and fast growing community
#3: Supported on all clouds
#4: Great partnerships
@jorgemoralespou
Started slow
June
2014
Docker 1.0
Dec
2014
Kubernetes 1.0: Supports
Docker containers
Rkt 0.1.0
July
2015
@jorgemoralespou
then more runtimes showed up
Rkt 1.0
Feb
2016
Kubernetes 1.3: Supports
Docker and Rkt containers
July
2016
June
2014
Docker 1.0
Dec
2014
Kubernetes 1.0: Supports
Docker containers
Rkt 0.1.0
July
2015
@jorgemoralespou
and code got messy
@jorgemoralespou
“Change is the essential
process of all of
existence.”
—SPOCK
Standardize containers
● Runtime spec (runc = Reference implementation)
● Image spec
● Distribution spec (proposal)
@jorgemoralespou
Use API/Interfaces to Container Runtimes
KUBELET
FRAKTI
OCI-RUNTIME
RUNC
DOCKERD RKT
CONTAINER RUNTIME INTERFACE (CRI)
DOCKERD RKT
KUBELET
@jorgemoralespou
Standardization became a fact
Rkt 1.0
Feb
2016
Kubernetes 1.3: Supports
Docker and Rkt containers
July
2016
June
2014
Docker 1.0
Dec
2014
Kubernetes 1.0: Supports
Docker containers
Rkt 0.1.0
July
2015
Dec
2016
Kubernetes 1.5: Container
Runtime Interface (CRI)
alpha
July
2017
Kubernetes 1.7: CRI
support GA
@jorgemoralespou
What is Container Runtime Interface (CRI)?
● A gRPC interface and a group of libraries
● Enables Kubernetes to use a wide variety of container runtimes
● Introduced in Kubernetes 1.5
● GA in Kubernetes 1.7
@jorgemoralespou
CRI Implementations
frakti
cri-containerd
dockershim
virtlet @jorgemoralespou
CRI-O
● Open source & Open governance
● Lean, Stable, Secure and BORING!
○ Tied to the CRI
○ No features that can mine stability
and performance
○ Shaped around Kubernetes
○ Only supported user is Kubernetes
○ Versioning and Support are tied to
Kubernetes
@jorgemoralespou
Man, this guy is so boring!
When is the live demo?
@jorgemoralespou
Build and run applications in a dockerless kubernetes world - DevConf India 18
What if I want to try it?
$ minikube start 
--network-plugin=cni 
--container-runtime=cri-o 
--bootstrapper=kubeadm
@jorgemoralespou
@jorgemoralespou
skopeo
● Copy images from/to (multiple transports/storages):
○ containers-storage:docker-reference
○ dir:path
○ docker://docker-reference
○ docker-archive:path[:docker-reference]
○ docker-daemon:docker-reference
○ oci:path:tag
○ ostree:image[@/absolute/repo/path]
● Inspect images
● Delete an image from a repository
● Standalone binary / No daemon running
● Perfect for pipelines (e.g. Jenkins)
@jorgemoralespou
@jorgemoralespou
buildah
● Build images
● No daemon running
● shell-like syntax
● Build from Dockerfile(s)
@jorgemoralespou
@jorgemoralespou
libpod/podman
Library (libpod) and CLI (podman) for
managing OCI-based Pods, Containers, and
Container Images
● Replacement for docker cli
○ known CLI
● Integrated with CRI-O (soon)
● No daemon running
@jorgemoralespou
Build and run applications in a dockerless kubernetes world - DevConf India 18
“Our ancestors called it
magic, but you call it
[computer] science.
I come from a land where
they are one and the same.”
—THOR
@jorgemoralespou
@jorgemoralespou
Daemon-less Dockerfile builds
● Consume a Dockerfile, but build image without a docker daemon
● Pros
○ Docker build-like experience (just write a Dockerfile)
○ Potentially more control over image layers (combine or shard)
○ Aim is for greater security
● Cons
○ Dockerfile fidelity might make difficult some use cases
○ Different approaches to image layer construction
@jorgemoralespou
Daemon-less Dockerfile builds
● Buildah
○ a tool that facilitates building OCI container images
● Img
○ Standalone, daemon-less, unprivileged Dockerfile and OCI compatible
container image builder.
○ The commands/UX are the same as docker (drop-in replacement)
● Kaniko
○ kaniko is a tool to build OCI container images from a Dockerfile, inside a
container or Kubernetes cluster
○ executes each command within a Dockerfile completely in userspace
● more...
@jorgemoralespou
Dockerfile-less builds
● User input is source / intent: “I want to run a Node.js web server”
● Pros:
○ Less configuration
○ Tools can intelligently build layers, better/safe layer caching
○ Docker image best practices can be codified into tools
● Cons:
○ Less flexible - Opinionated builds
○ Very fragmented across vendors, no real standard
@jorgemoralespou
Dockerfile-less builds
● Source to Image
○ User provides source, source gets built+layered into an application image
○ Dependent on ecosystem of framework/language builder images
● Buildpacks
○ Invented by Heroku, adopted by Cloud Foundry / Deis
○ User provides source, “build” produces “slug”, “export” produces container image
● FTL (Faster than light)
○ Purpose-built source to image builders per-language, goal is layer-per-dependency
○ Insight: turn build incrementality into deploy incrementality
● Bazel
○ Google’s OSS build system, supports declarative image builds
○ Used for user-mode Docker image builds for 3+ years
@jorgemoralespou
And don’t forget to
tweet if you liked it
(or if you didn’t)
@jorgemoralespou
@jorgemoralespou

More Related Content

PDF
[Szjug] Docker. Does it matter for java developer?
PDF
Docker from a team perspective
PDF
Docker at MoneyBird
PDF
Docker in Production
PDF
06/03/19 Docker, Docker Compose y Heroku - Granada Developer Group - Salesforce
PPTX
QA Club Kiev #20. Making life easier with Docker
PDF
Docker for developers
PPTX
Настройка окружения для кросскомпиляции проектов на основе docker'a
[Szjug] Docker. Does it matter for java developer?
Docker from a team perspective
Docker at MoneyBird
Docker in Production
06/03/19 Docker, Docker Compose y Heroku - Granada Developer Group - Salesforce
QA Club Kiev #20. Making life easier with Docker
Docker for developers
Настройка окружения для кросскомпиляции проектов на основе docker'a

What's hot (20)

PDF
Quick Review of Desktop and Native Apps using Javascript
PDF
AllTheTalks 2020: Buildpacks - container for everyone!
PDF
Atomic Developer Bundle
PDF
DockerCon 2016 Seattle Recap
PDF
Kubernetes
PDF
VN Tech Seminor Vol.2 Docker Tutorial
PDF
Gomobile: gophers in the land of Android
PDF
Docker for Developers
PDF
Docker 101
PDF
Software archaeology for beginners: code, community and culture
PDF
DockerCon 2016 Recap
PDF
The Self-Service Developer - GOTOCon CPH
PDF
Writing native Linux desktop apps with JavaScript
PDF
Scaling Docker Registry
PDF
ISC HPCW talks
PDF
Docker off the grid
ODP
DevAssistant, Docker and You
PPTX
Knowit study group örnsköldsvik - introduction to qt & qt creator
PDF
Docker presentation
PPTX
Block Storage Updates - Juno Edition
Quick Review of Desktop and Native Apps using Javascript
AllTheTalks 2020: Buildpacks - container for everyone!
Atomic Developer Bundle
DockerCon 2016 Seattle Recap
Kubernetes
VN Tech Seminor Vol.2 Docker Tutorial
Gomobile: gophers in the land of Android
Docker for Developers
Docker 101
Software archaeology for beginners: code, community and culture
DockerCon 2016 Recap
The Self-Service Developer - GOTOCon CPH
Writing native Linux desktop apps with JavaScript
Scaling Docker Registry
ISC HPCW talks
Docker off the grid
DevAssistant, Docker and You
Knowit study group örnsköldsvik - introduction to qt & qt creator
Docker presentation
Block Storage Updates - Juno Edition
Ad

Similar to Build and run applications in a dockerless kubernetes world - DevConf India 18 (20)

PDF
Build and run applications in a dockerless kubernetes world
PDF
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
PPTX
Containers behind the curtains
PDF
Containers without docker | DevNation Tech Talk
PPTX
Kubernetes: від знайомства до використання у CI/CD
PPTX
From shipping rpms to helm charts - Lessons learned and best practices
PDF
Docker 0.11 at MaxCDN meetup in Los Angeles
PDF
fabric8 ... and Docker, Kubernetes & OpenShift
PDF
[WSO2Con Asia 2018] Deploying Applications in K8S and Docker
PDF
Présentation de Docker
PDF
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
PDF
Serverless containers … with source-to-image
PDF
Serverless Container with Source2Image
PPTX
Running eZ Platform on Kubernetes (presented by Björn Dieding at eZ Conferenc...
PDF
DevOpsDays Houston 2019 - Shaun Ladewig, Robert Stone - From OverTheWallOps t...
PPTX
Using Azure DevOps to continuously build, test, and deploy containerized appl...
PDF
Kubernetes or OpenShift - choosing your container platform for Dev and Ops
PPTX
Docker Container As A Service - JAX 2016
PDF
CRI, OCI, and CRI-O
Build and run applications in a dockerless kubernetes world
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Containers behind the curtains
Containers without docker | DevNation Tech Talk
Kubernetes: від знайомства до використання у CI/CD
From shipping rpms to helm charts - Lessons learned and best practices
Docker 0.11 at MaxCDN meetup in Los Angeles
fabric8 ... and Docker, Kubernetes & OpenShift
[WSO2Con Asia 2018] Deploying Applications in K8S and Docker
Présentation de Docker
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Serverless containers … with source-to-image
Serverless Container with Source2Image
Running eZ Platform on Kubernetes (presented by Björn Dieding at eZ Conferenc...
DevOpsDays Houston 2019 - Shaun Ladewig, Robert Stone - From OverTheWallOps t...
Using Azure DevOps to continuously build, test, and deploy containerized appl...
Kubernetes or OpenShift - choosing your container platform for Dev and Ops
Docker Container As A Service - JAX 2016
CRI, OCI, and CRI-O
Ad

More from Jorge Morales (9)

PDF
OpenShift for developers in action! - jbcnconf19
PDF
Put the dev back in devops - Cloud-native at local speed! - RH Summit 19
PDF
Automating with operators - FossAsia Summit 2019
PDF
Odo improving the developer experience on OpenShift - hack & sangria
PDF
Mastering java in containers - MadridJUG
PDF
Automating stateful applications with kubernetes operators - Openstack Summit...
PDF
Improving the developer experience on OpenShift - devconf-india-18
PDF
Openshift: The power of kubernetes for engineers - Riga Dev Days 18
PDF
I tried to dockerize my app but I had to PaaS
OpenShift for developers in action! - jbcnconf19
Put the dev back in devops - Cloud-native at local speed! - RH Summit 19
Automating with operators - FossAsia Summit 2019
Odo improving the developer experience on OpenShift - hack & sangria
Mastering java in containers - MadridJUG
Automating stateful applications with kubernetes operators - Openstack Summit...
Improving the developer experience on OpenShift - devconf-india-18
Openshift: The power of kubernetes for engineers - Riga Dev Days 18
I tried to dockerize my app but I had to PaaS

Recently uploaded (20)

PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
medical staffing services at VALiNTRY
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
top salesforce developer skills in 2025.pdf
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
AI in Product Development-omnex systems
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Transform Your Business with a Software ERP System
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Nekopoi APK 2025 free lastest update
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
medical staffing services at VALiNTRY
CHAPTER 2 - PM Management and IT Context
top salesforce developer skills in 2025.pdf
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Which alternative to Crystal Reports is best for small or large businesses.pdf
AI in Product Development-omnex systems
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Odoo POS Development Services by CandidRoot Solutions
Transform Your Business with a Software ERP System
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Upgrade and Innovation Strategies for SAP ERP Customers
Understanding Forklifts - TECH EHS Solution
Nekopoi APK 2025 free lastest update
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Design an Analysis of Algorithms I-SECS-1021-03
PTS Company Brochure 2025 (1).pdf.......
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises

Build and run applications in a dockerless kubernetes world - DevConf India 18

  • 1. Build and run applications in a Dockerless Kubernetes world Jorge Morales OpenShift Developer Advocate DevConf India 2018 August 5th - 11:45 - Room 1
  • 2. Me (aka Jorge Morales) ● Spanish by nature and by language ● Work at Red Hat ● OpenShift Developer Advocate ● Mostly Java developer ● Obsessed with improving the developer experience @jorgemoralespou github.com/jorgemoralespou http://jorgemoral.es
  • 5. Kernel namespaces: sandboxing processes from one another Control Groups (cgroups): control process resource allocations Security: capabilities drop (seccomp), Mandatory access control (SELinux, Apparmor) Linux Containers @jorgemoralespou
  • 11. With scale came complexity
  • 13. OTHER ORCHESTRATORS (Cloud Foundry Diego, Nomad, Blox, etc.) 2 YEARS AGO Fragmented landscape TODAY Kubernetes consolidation OTHER ORCHESTRATORS CONTAINER ORCHESTRATION LANDSCAPE @jorgemoralespou
  • 14. Why kubernetes? #1: Open source, backed by giants #2: Vibrant and fast growing community #3: Supported on all clouds #4: Great partnerships @jorgemoralespou
  • 15. Started slow June 2014 Docker 1.0 Dec 2014 Kubernetes 1.0: Supports Docker containers Rkt 0.1.0 July 2015 @jorgemoralespou
  • 16. then more runtimes showed up Rkt 1.0 Feb 2016 Kubernetes 1.3: Supports Docker and Rkt containers July 2016 June 2014 Docker 1.0 Dec 2014 Kubernetes 1.0: Supports Docker containers Rkt 0.1.0 July 2015 @jorgemoralespou
  • 17. and code got messy @jorgemoralespou
  • 18. “Change is the essential process of all of existence.” —SPOCK
  • 19. Standardize containers ● Runtime spec (runc = Reference implementation) ● Image spec ● Distribution spec (proposal) @jorgemoralespou
  • 20. Use API/Interfaces to Container Runtimes KUBELET FRAKTI OCI-RUNTIME RUNC DOCKERD RKT CONTAINER RUNTIME INTERFACE (CRI) DOCKERD RKT KUBELET @jorgemoralespou
  • 21. Standardization became a fact Rkt 1.0 Feb 2016 Kubernetes 1.3: Supports Docker and Rkt containers July 2016 June 2014 Docker 1.0 Dec 2014 Kubernetes 1.0: Supports Docker containers Rkt 0.1.0 July 2015 Dec 2016 Kubernetes 1.5: Container Runtime Interface (CRI) alpha July 2017 Kubernetes 1.7: CRI support GA @jorgemoralespou
  • 22. What is Container Runtime Interface (CRI)? ● A gRPC interface and a group of libraries ● Enables Kubernetes to use a wide variety of container runtimes ● Introduced in Kubernetes 1.5 ● GA in Kubernetes 1.7 @jorgemoralespou
  • 24. CRI-O ● Open source & Open governance ● Lean, Stable, Secure and BORING! ○ Tied to the CRI ○ No features that can mine stability and performance ○ Shaped around Kubernetes ○ Only supported user is Kubernetes ○ Versioning and Support are tied to Kubernetes @jorgemoralespou
  • 25. Man, this guy is so boring! When is the live demo? @jorgemoralespou
  • 27. What if I want to try it? $ minikube start --network-plugin=cni --container-runtime=cri-o --bootstrapper=kubeadm @jorgemoralespou
  • 29. skopeo ● Copy images from/to (multiple transports/storages): ○ containers-storage:docker-reference ○ dir:path ○ docker://docker-reference ○ docker-archive:path[:docker-reference] ○ docker-daemon:docker-reference ○ oci:path:tag ○ ostree:image[@/absolute/repo/path] ● Inspect images ● Delete an image from a repository ● Standalone binary / No daemon running ● Perfect for pipelines (e.g. Jenkins) @jorgemoralespou
  • 31. buildah ● Build images ● No daemon running ● shell-like syntax ● Build from Dockerfile(s) @jorgemoralespou
  • 33. libpod/podman Library (libpod) and CLI (podman) for managing OCI-based Pods, Containers, and Container Images ● Replacement for docker cli ○ known CLI ● Integrated with CRI-O (soon) ● No daemon running @jorgemoralespou
  • 35. “Our ancestors called it magic, but you call it [computer] science. I come from a land where they are one and the same.” —THOR
  • 38. Daemon-less Dockerfile builds ● Consume a Dockerfile, but build image without a docker daemon ● Pros ○ Docker build-like experience (just write a Dockerfile) ○ Potentially more control over image layers (combine or shard) ○ Aim is for greater security ● Cons ○ Dockerfile fidelity might make difficult some use cases ○ Different approaches to image layer construction @jorgemoralespou
  • 39. Daemon-less Dockerfile builds ● Buildah ○ a tool that facilitates building OCI container images ● Img ○ Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder. ○ The commands/UX are the same as docker (drop-in replacement) ● Kaniko ○ kaniko is a tool to build OCI container images from a Dockerfile, inside a container or Kubernetes cluster ○ executes each command within a Dockerfile completely in userspace ● more... @jorgemoralespou
  • 40. Dockerfile-less builds ● User input is source / intent: “I want to run a Node.js web server” ● Pros: ○ Less configuration ○ Tools can intelligently build layers, better/safe layer caching ○ Docker image best practices can be codified into tools ● Cons: ○ Less flexible - Opinionated builds ○ Very fragmented across vendors, no real standard @jorgemoralespou
  • 41. Dockerfile-less builds ● Source to Image ○ User provides source, source gets built+layered into an application image ○ Dependent on ecosystem of framework/language builder images ● Buildpacks ○ Invented by Heroku, adopted by Cloud Foundry / Deis ○ User provides source, “build” produces “slug”, “export” produces container image ● FTL (Faster than light) ○ Purpose-built source to image builders per-language, goal is layer-per-dependency ○ Insight: turn build incrementality into deploy incrementality ● Bazel ○ Google’s OSS build system, supports declarative image builds ○ Used for user-mode Docker image builds for 3+ years @jorgemoralespou
  • 42. And don’t forget to tweet if you liked it (or if you didn’t) @jorgemoralespou @jorgemoralespou