SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
LinuxKit Deep Dive
Justin Cormack
Docker
Rolf Neugebauer
Docker
GH: justincormack
TW: @justincormack
GH: rn
TW: @neugebar
What is LinuxKit
A toolkit for building secure, portable and lean
operating systems for containers
● Uses moby tooling to build system images
● Everything is run in a container
● Running with containerd 1.0 branch for
over four months
● lightweight, fully customisable
LinuxKit architecture
Modern Linux kernel
Minimal init
containerD
Service
containers
on-boot
containers
shutdown
containers
kernel:
image: linuxkit/kernel:4.9.54
init:
- linuxkit/init:98e95fb67e8afcf02c09ba927e4b357fec42977a
- linuxkit/runc:991ef358ad8fc1111d64f4d8071f2009cc561f6a
- linuxkit/containerd:eaf0d615cfceb9d854408dd3c80429ee8ac4d051
onboot:
- name: dhcpcd
image: linuxkit/dhcpcd:aa685261ceb2557990dcfe9dd8824c6b9ec416e2
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
services:
- name: getty
image: linuxkit/getty:7abaf7b276c59f80891d92e9279e3e3ee8e2f512
env:
- INSECURE=true
● YAML files describes complete system
● moby tool assembles boot image &
verifies signatures
● linuxkit tool for testing/running
Some metrics
●
~ 1400 commits since open sourcing (April 2017)
Active community on #linuxkit community slack
80 contributors, 52 external!
Thank you!
Major additions
● arm64 support
● Improved Kubernetes support
● Linux Containers on Windows (LCOW) preview
● Improved platform support:
○ packet.net, Azure, AWS, GCP,
VMware, Vultr, IBM Bluemix, Hyper-V, …
○ Mainly community additions!
Lots of “small” improvements
● Multi-arch build system
● Fully immutable system images
● Flexible networking setup + WireGuard
● Namespace sharing
● Persistent disk support
● TPM support
● Kernels 4.9, 4.10, 4.11, 4.12, 4.13 (4.14 soon)
Demo
Multi-arch buildsystem
LinuxKit packages
● Small container images on hub
● Pulled and assembled using the moby tool
● Signed with notary
● Multi-arch images (x86_64 and arm64)
Dhcpcd package
● All core LinuxKit packages are build from
linuxkit/alpine
LinuxKit “base” image
● linuxkit/alpine contains a apk mirror of Alpine
packages needed to build LinuxKit packages
○ Compilers, tools, and packages
○ Recorded exact versions of packages
○ Stashed on docker hub and signed
● docker build --network=none
● Repeatable builds!
Multi-stage builds
(introduced in docker 17.05.0-ce)
Multi-stage builds (cont)
● Install in /out and then copy to scratch
● Less than 2MB in size (Thanks to Alpine!)
What is run
● Default Entry point
Container details
● Default OCI runtime configuration snippets
● E.g., dhcpcd needs CAP_NET_ADMIN
Package build
● Additional labels for the repository and the git
revision this was build from
Package tags
● Hash of all source files (git tree hash)
● The same on all architectures
Push to hub
● Pushed to hub with Content trust
(https://blog.mobyproject.org/sign-all-the-things-c12c2182d9f6)
Multi-arch build
● Create a manifest list linuxkit/dhcpcd:<hash>
● Points to linuxkit/dhcpcd:<hash>-amd64 and
linuxkit/dhcpcd:<hash>-arm64
Sign the manifest
● This soon will be a lot easier with:
docker manifest and docker trust
Summary
Repeatable, cross-platform builds from base
image to full system image with content trust
throughout
linuxkit/alpine Packages
YAML
System Image
Dockerfile
Custom network config
What is WireGuard
● fast, modern, secure VPN
● included in the LinuxKit kernels
● On the way to being upstreamed in Linux
● just appears as a network interface
Service namespaces
● can create namespaces and share between
system services
● can create network interfaces in desired
namespaces or move them
● restrict network access in system containers
WireGuard example
● secure a redis service with a VPN tunnel
● only access is one end of an encrypted
network tunnel
● no access to external network
● can only send encrypted traffic
WireGuard example
WireGuard example
WireGuard demo
Building Kubernetes
Kubernetes update
● continual progress on the Kubernetes work
since the original launch
● supports Kubernetes with Docker or
cri-containerd
● will ship in Docker for Mac and Windows
● will support production deployments
with InfraKit in future
Kubernetes setup in brief
● uses KubeAdm to configure Kubernetes
● runs Kubelet in a system container but
sharing parts of filesystem
● immutable infrastructure
● supports multiple nodes
Kubernetes deep dive
The end
● Tycho: Container-relevant Upstream Kernel Developments (after this talk)
● Phil & Michael: Docker Multi-arch All The Things (in parallel to this talk)
● John: Linux Containers on Windows: The Inside Story (Wed am)
● Natanael: Small, Simple, and Secure: Alpine Linux (Wed lunch)
● Qualcomm booth in Exhibit hall (arm64 demos)
● Moby Summit (Thursday):
○ Andrew: LinuxKit on ARM
○ Sven: RancherOS and LinuxKit
○ Stephen & Phil: containerd presentation
GH: justincormack GH: rn
TW: @justincormack TW: @neugebar
The end
● Tycho: Container-relevant Upstream Kernel Developments (after this talk)
● Phil & Michael: Docker Multi-arch All The Things (in parallel to this talk)
● John: Linux Containers on Windows: The Inside Story (Wed am)
● Natanael: Small, Simple, and Secure: Alpine Linux (Wed lunch)
● Moby Summit (Thursday):
○ Andrew: LinuxKit on ARM
○ Sven: RancherOS and LinuxKit
GH: justincormack GH: rn
TW: @justincormack TW: @neugebar

Contenu connexe

Tendances

Tendances (20)

Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)
 
FreeSWITCH on Docker
FreeSWITCH on DockerFreeSWITCH on Docker
FreeSWITCH on Docker
 
Application Monitoring using Open Source: VictoriaMetrics - ClickHouse
Application Monitoring using Open Source: VictoriaMetrics - ClickHouseApplication Monitoring using Open Source: VictoriaMetrics - ClickHouse
Application Monitoring using Open Source: VictoriaMetrics - ClickHouse
 
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
 
OpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdfOpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdf
 
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/NeutronOverview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
 
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
 
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
AnsibleFest 2021 - DevSecOps with Ansible, OpenShift Virtualization, Packer a...
AnsibleFest 2021 - DevSecOps with Ansible, OpenShift Virtualization, Packer a...AnsibleFest 2021 - DevSecOps with Ansible, OpenShift Virtualization, Packer a...
AnsibleFest 2021 - DevSecOps with Ansible, OpenShift Virtualization, Packer a...
 
Automating with Ansible
Automating with AnsibleAutomating with Ansible
Automating with Ansible
 
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
 
Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성
 
Automation with ansible
Automation with ansibleAutomation with ansible
Automation with ansible
 
New features of Minimal APIs in .NET 7 -Muralidharan Deenathayalan.pptx
New features of Minimal APIs in .NET 7 -Muralidharan Deenathayalan.pptxNew features of Minimal APIs in .NET 7 -Muralidharan Deenathayalan.pptx
New features of Minimal APIs in .NET 7 -Muralidharan Deenathayalan.pptx
 
Installing and Configuring NGINX Open Source
Installing and Configuring NGINX Open SourceInstalling and Configuring NGINX Open Source
Installing and Configuring NGINX Open Source
 
[WhaTap DevOps Day] 세션 4 : 롯데ON MSA 모니터링 최적화 사례
[WhaTap DevOps Day] 세션 4 : 롯데ON MSA 모니터링 최적화 사례[WhaTap DevOps Day] 세션 4 : 롯데ON MSA 모니터링 최적화 사례
[WhaTap DevOps Day] 세션 4 : 롯데ON MSA 모니터링 최적화 사례
 
Rancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep DiveRancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep Dive
 
Docker compose
Docker composeDocker compose
Docker compose
 
[WhaTap DevOps Day] 세션 2 : 성장하는 엔지니어 학습 문화
[WhaTap DevOps Day] 세션 2 : 성장하는 엔지니어 학습 문화[WhaTap DevOps Day] 세션 2 : 성장하는 엔지니어 학습 문화
[WhaTap DevOps Day] 세션 2 : 성장하는 엔지니어 학습 문화
 

En vedette

En vedette (20)

Introduction to LinuxKit - Docker Bangalore Meetup
Introduction to LinuxKit - Docker Bangalore MeetupIntroduction to LinuxKit - Docker Bangalore Meetup
Introduction to LinuxKit - Docker Bangalore Meetup
 
Online Meetup: Intro to LinuxKit
Online Meetup: Intro to LinuxKitOnline Meetup: Intro to LinuxKit
Online Meetup: Intro to LinuxKit
 
Practical Design Patterns in Docker Networking
Practical Design Patterns in Docker NetworkingPractical Design Patterns in Docker Networking
Practical Design Patterns in Docker Networking
 
Deeper Dive in Docker Overlay Networks
Deeper Dive in Docker Overlay NetworksDeeper Dive in Docker Overlay Networks
Deeper Dive in Docker Overlay Networks
 
Container-relevant Upstream Kernel Developments
Container-relevant Upstream Kernel DevelopmentsContainer-relevant Upstream Kernel Developments
Container-relevant Upstream Kernel Developments
 
Modernizing Java Apps with Docker
Modernizing Java Apps with DockerModernizing Java Apps with Docker
Modernizing Java Apps with Docker
 
Docker on Docker
Docker on DockerDocker on Docker
Docker on Docker
 
Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22
Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22
Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22
 
Plug-ins: Building, Shipping, Storing, and Running - Nandhini Santhanam and T...
Plug-ins: Building, Shipping, Storing, and Running - Nandhini Santhanam and T...Plug-ins: Building, Shipping, Storing, and Running - Nandhini Santhanam and T...
Plug-ins: Building, Shipping, Storing, and Running - Nandhini Santhanam and T...
 
Monitoring Dell Infrastructure using Docker & Microservices
Monitoring Dell Infrastructure using Docker & MicroservicesMonitoring Dell Infrastructure using Docker & Microservices
Monitoring Dell Infrastructure using Docker & Microservices
 
What's New in Docker 1.12?
What's New in Docker 1.12?What's New in Docker 1.12?
What's New in Docker 1.12?
 
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
 
Modernizing .NET Apps
Modernizing .NET AppsModernizing .NET Apps
Modernizing .NET Apps
 
Deep Dive into Docker Swarm Mode
Deep Dive into Docker Swarm ModeDeep Dive into Docker Swarm Mode
Deep Dive into Docker Swarm Mode
 
Kubernetes in Docker
Kubernetes in DockerKubernetes in Docker
Kubernetes in Docker
 
Introduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGIntroduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUG
 
Container Orchestration from Theory to Practice
Container Orchestration from Theory to PracticeContainer Orchestration from Theory to Practice
Container Orchestration from Theory to Practice
 
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, Docker
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, DockerUnder the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, Docker
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, Docker
 
Moby and Kubernetes entitlements
Moby and Kubernetes entitlements Moby and Kubernetes entitlements
Moby and Kubernetes entitlements
 
Containerd internals: building a core container runtime
Containerd internals: building a core container runtimeContainerd internals: building a core container runtime
Containerd internals: building a core container runtime
 

Similaire à LinuxKit Deep Dive

OpenNebulaConf 2014 - CentOS, QA and OpenNebula - Christoph Galuschka
OpenNebulaConf 2014 - CentOS, QA and OpenNebula - Christoph GaluschkaOpenNebulaConf 2014 - CentOS, QA and OpenNebula - Christoph Galuschka
OpenNebulaConf 2014 - CentOS, QA and OpenNebula - Christoph Galuschka
OpenNebula Project
 
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph GaluschkaOpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
NETWAYS
 

Similaire à LinuxKit Deep Dive (20)

LinuxKit: the first five months by Justin Cormack & Riyaz Faizullabhoy (Docker)
LinuxKit: the first five months by Justin Cormack & Riyaz Faizullabhoy (Docker)LinuxKit: the first five months by Justin Cormack & Riyaz Faizullabhoy (Docker)
LinuxKit: the first five months by Justin Cormack & Riyaz Faizullabhoy (Docker)
 
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
 
[KubeConEU] Building images efficiently and securely on Kubernetes with BuildKit
[KubeConEU] Building images efficiently and securely on Kubernetes with BuildKit[KubeConEU] Building images efficiently and securely on Kubernetes with BuildKit
[KubeConEU] Building images efficiently and securely on Kubernetes with BuildKit
 
Building images efficiently and securely on Kubernetes with BuildKit
Building images efficiently and securely on Kubernetes with BuildKitBuilding images efficiently and securely on Kubernetes with BuildKit
Building images efficiently and securely on Kubernetes with BuildKit
 
OpenNebulaConf 2014 - CentOS, QA and OpenNebula - Christoph Galuschka
OpenNebulaConf 2014 - CentOS, QA and OpenNebula - Christoph GaluschkaOpenNebulaConf 2014 - CentOS, QA and OpenNebula - Christoph Galuschka
OpenNebulaConf 2014 - CentOS, QA and OpenNebula - Christoph Galuschka
 
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph GaluschkaOpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
 
Docker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine EvolutionDocker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine Evolution
 
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme PetazzoniWorkshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
 
Introduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" EditionIntroduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" Edition
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'a
 
Introduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New YorkIntroduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New York
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
 
Comparing Next-Generation Container Image Building Tools
 Comparing Next-Generation Container Image Building Tools Comparing Next-Generation Container Image Building Tools
Comparing Next-Generation Container Image Building Tools
 
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
 
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
 
Making your app soar without a container manifest
Making your app soar without a container manifestMaking your app soar without a container manifest
Making your app soar without a container manifest
 
Powercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptxPowercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptx
 
Présentation de Docker
Présentation de DockerPrésentation de Docker
Présentation de Docker
 
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
 
Docker Athens: Docker Engine Evolution & Containerd Use Cases
Docker Athens: Docker Engine Evolution & Containerd Use CasesDocker Athens: Docker Engine Evolution & Containerd Use Cases
Docker Athens: Docker Engine Evolution & Containerd Use Cases
 

Plus de Docker, Inc.

Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
Docker, Inc.
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
Docker, Inc.
 

Plus de Docker, Inc. (20)

Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience
 
How to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker BuildHow to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker Build
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
 
Securing Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINXSecuring Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINX
 
How To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and ComposeHow To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and Compose
 
Hands-on Helm
Hands-on Helm Hands-on Helm
Hands-on Helm
 
Distributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at SalesforceDistributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at Salesforce
 
The First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker HubThe First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker Hub
 
Monitoring in a Microservices World
Monitoring in a Microservices WorldMonitoring in a Microservices World
Monitoring in a Microservices World
 
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
 
Predicting Space Weather with Docker
Predicting Space Weather with DockerPredicting Space Weather with Docker
Predicting Space Weather with Docker
 
Become a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio CodeBecome a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio Code
 
How to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container RegistryHow to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container Registry
 
Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!
 
Kubernetes at Datadog Scale
Kubernetes at Datadog ScaleKubernetes at Datadog Scale
Kubernetes at Datadog Scale
 
Labels, Labels, Labels
Labels, Labels, Labels Labels, Labels, Labels
Labels, Labels, Labels
 
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelUsing Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
 
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
 
Developing with Docker for the Arm Architecture
Developing with Docker for the Arm ArchitectureDeveloping with Docker for the Arm Architecture
Developing with Docker for the Arm Architecture
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

LinuxKit Deep Dive

  • 1. LinuxKit Deep Dive Justin Cormack Docker Rolf Neugebauer Docker GH: justincormack TW: @justincormack GH: rn TW: @neugebar
  • 2. What is LinuxKit A toolkit for building secure, portable and lean operating systems for containers ● Uses moby tooling to build system images ● Everything is run in a container ● Running with containerd 1.0 branch for over four months ● lightweight, fully customisable
  • 3. LinuxKit architecture Modern Linux kernel Minimal init containerD Service containers on-boot containers shutdown containers kernel: image: linuxkit/kernel:4.9.54 init: - linuxkit/init:98e95fb67e8afcf02c09ba927e4b357fec42977a - linuxkit/runc:991ef358ad8fc1111d64f4d8071f2009cc561f6a - linuxkit/containerd:eaf0d615cfceb9d854408dd3c80429ee8ac4d051 onboot: - name: dhcpcd image: linuxkit/dhcpcd:aa685261ceb2557990dcfe9dd8824c6b9ec416e2 command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"] services: - name: getty image: linuxkit/getty:7abaf7b276c59f80891d92e9279e3e3ee8e2f512 env: - INSECURE=true ● YAML files describes complete system ● moby tool assembles boot image & verifies signatures ● linuxkit tool for testing/running
  • 4. Some metrics ● ~ 1400 commits since open sourcing (April 2017) Active community on #linuxkit community slack 80 contributors, 52 external! Thank you!
  • 5. Major additions ● arm64 support ● Improved Kubernetes support ● Linux Containers on Windows (LCOW) preview ● Improved platform support: ○ packet.net, Azure, AWS, GCP, VMware, Vultr, IBM Bluemix, Hyper-V, … ○ Mainly community additions!
  • 6. Lots of “small” improvements ● Multi-arch build system ● Fully immutable system images ● Flexible networking setup + WireGuard ● Namespace sharing ● Persistent disk support ● TPM support ● Kernels 4.9, 4.10, 4.11, 4.12, 4.13 (4.14 soon)
  • 9. LinuxKit packages ● Small container images on hub ● Pulled and assembled using the moby tool ● Signed with notary ● Multi-arch images (x86_64 and arm64)
  • 10. Dhcpcd package ● All core LinuxKit packages are build from linuxkit/alpine
  • 11. LinuxKit “base” image ● linuxkit/alpine contains a apk mirror of Alpine packages needed to build LinuxKit packages ○ Compilers, tools, and packages ○ Recorded exact versions of packages ○ Stashed on docker hub and signed ● docker build --network=none ● Repeatable builds!
  • 12. Multi-stage builds (introduced in docker 17.05.0-ce)
  • 13. Multi-stage builds (cont) ● Install in /out and then copy to scratch ● Less than 2MB in size (Thanks to Alpine!)
  • 14. What is run ● Default Entry point
  • 15. Container details ● Default OCI runtime configuration snippets ● E.g., dhcpcd needs CAP_NET_ADMIN
  • 16. Package build ● Additional labels for the repository and the git revision this was build from
  • 17. Package tags ● Hash of all source files (git tree hash) ● The same on all architectures
  • 18. Push to hub ● Pushed to hub with Content trust (https://blog.mobyproject.org/sign-all-the-things-c12c2182d9f6)
  • 19. Multi-arch build ● Create a manifest list linuxkit/dhcpcd:<hash> ● Points to linuxkit/dhcpcd:<hash>-amd64 and linuxkit/dhcpcd:<hash>-arm64
  • 20. Sign the manifest ● This soon will be a lot easier with: docker manifest and docker trust
  • 21. Summary Repeatable, cross-platform builds from base image to full system image with content trust throughout linuxkit/alpine Packages YAML System Image Dockerfile
  • 23. What is WireGuard ● fast, modern, secure VPN ● included in the LinuxKit kernels ● On the way to being upstreamed in Linux ● just appears as a network interface
  • 24. Service namespaces ● can create namespaces and share between system services ● can create network interfaces in desired namespaces or move them ● restrict network access in system containers
  • 25. WireGuard example ● secure a redis service with a VPN tunnel ● only access is one end of an encrypted network tunnel ● no access to external network ● can only send encrypted traffic
  • 30. Kubernetes update ● continual progress on the Kubernetes work since the original launch ● supports Kubernetes with Docker or cri-containerd ● will ship in Docker for Mac and Windows ● will support production deployments with InfraKit in future
  • 31. Kubernetes setup in brief ● uses KubeAdm to configure Kubernetes ● runs Kubelet in a system container but sharing parts of filesystem ● immutable infrastructure ● supports multiple nodes
  • 33. The end ● Tycho: Container-relevant Upstream Kernel Developments (after this talk) ● Phil & Michael: Docker Multi-arch All The Things (in parallel to this talk) ● John: Linux Containers on Windows: The Inside Story (Wed am) ● Natanael: Small, Simple, and Secure: Alpine Linux (Wed lunch) ● Qualcomm booth in Exhibit hall (arm64 demos) ● Moby Summit (Thursday): ○ Andrew: LinuxKit on ARM ○ Sven: RancherOS and LinuxKit ○ Stephen & Phil: containerd presentation GH: justincormack GH: rn TW: @justincormack TW: @neugebar
  • 34. The end ● Tycho: Container-relevant Upstream Kernel Developments (after this talk) ● Phil & Michael: Docker Multi-arch All The Things (in parallel to this talk) ● John: Linux Containers on Windows: The Inside Story (Wed am) ● Natanael: Small, Simple, and Secure: Alpine Linux (Wed lunch) ● Moby Summit (Thursday): ○ Andrew: LinuxKit on ARM ○ Sven: RancherOS and LinuxKit GH: justincormack GH: rn TW: @justincormack TW: @neugebar