21
Yocto Project ® : Building and deploying containers with meta-virtualization: now & in the future Bruce Ashfield, Xilinx Yocto Project Virtual Summit, May 2021

meta-virtualization: now & in the future Yocto Project

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: meta-virtualization: now & in the future Yocto Project

Yocto Project® : Building and deploying containers with meta-virtualization: now & in the future

Bruce Ashfield, Xilinx

Yocto Project Virtual Summit, May 2021

Page 2: meta-virtualization: now & in the future Yocto Project

2 Yocto Project® | The Linux Foundation®

Agenda

● Goals

● (Brief) History of meta-virtualization

● Technology timeline

● Why use the Yocto project for containers ?

● Components of container build (and deployment)

● Past and current container build / deployment

● Future container build / deployment efforts

Page 3: meta-virtualization: now & in the future Yocto Project

3 Yocto Project® | The Linux Foundation®

Presentation Goals

● Introduce the concepts driving container build and deploy

○ Not a how-to, not a survey

● Level set on the technology timeline

● Background / understanding of current capabilities

● What is where, and how (why) it works ..

● Insight into direction and upcoming features

Page 4: meta-virtualization: now & in the future Yocto Project

Yocto Project | The Linux Foundation

Overview

Page 5: meta-virtualization: now & in the future Yocto Project

5 Yocto Project® | The Linux Foundation®

meta-virtualization: a brief history● Started June 2012

○ 1306+ commits made by 155+ contributors

● Point of integration for ‘virtualization’ technologies○ VMs and containers

○ Core technology + support software

○ Many audiences: Bleeding edge and established tech

○ Tested (improving) and stable: needs CI

○ Baseline for creating OE derived virtualization solutions

○ Recipes migrate over time (into and out of meta-virtualization)

Page 6: meta-virtualization: now & in the future Yocto Project

6 Yocto Project® | The Linux Foundation®

meta-virtualization: technology timeline

2012 2013 2014 2015 2016 2017 2018 2019 2020 2021

complexity

LXC

XENKVM

libvirt docker

containerd

runckvmtool

ocitools

cri-o

k8srunv

kata*

skopeopodman

crun

sloci

xvisorrunx

k3s

VM basedcontainer runtimetoolsoe-core

framework

oci img type

container img type

umoci

nerdctl

* broken (patches

accepted)

Page 7: meta-virtualization: now & in the future Yocto Project

7 Yocto Project® | The Linux Foundation®

meta-virtualization: timeline summary

● Started with mainly VM solutions○ now more container focused

● More solutions / choices than ever before○ Very little has been removed / depreciated

● ‘Complexity’ has increased○ Hence more complete solutions are possible

○ Need more system level configuration and flexibility

● Plumbing, tools and image creation assists○ More are needed

Page 8: meta-virtualization: now & in the future Yocto Project

8 Yocto Project® | The Linux Foundation®

Why the Yocto Project and containers

● Isn’t it all about the application ?○ Why care about building from source ?

● Solves problems you don’t (yet) know you have○ Evolving (think SBOM)

● Standards compliant and compatible ● Building block technologies

○ Choice: don’t pick winners and don’t lock in

○ Flexibility: Elements of the solution are spread through the ecosystem

● Configurability and tunability

Page 9: meta-virtualization: now & in the future Yocto Project

Yocto Project | The Linux Foundation

Build & Deployment

Page 10: meta-virtualization: now & in the future Yocto Project

10 Yocto Project® | The Linux Foundation®

What are container “build” and “deployment” ?

● For our purposes:○ build:

■ compilation / construction from source of a container (or fetching of OE built artifacts)

○ deployment: ■ installing a container on a target (or image)

Page 11: meta-virtualization: now & in the future Yocto Project

11 Yocto Project® | The Linux Foundation®

Container Build

● OE core has base support● Techniques have evolved over time

○ Iterative / multiple builds and external assembly○ Multiconfig○ OCI Image type

● Leverage Yocto Project core values○ Embrace, not replace or duplicate

Page 12: meta-virtualization: now & in the future Yocto Project

12 Yocto Project® | The Linux Foundation®

Container Build: Challenges

● Clunky / Confusing○ Regardless of which method you use○ Not ‘end user’ friendly

● Path to binary container construction / reuse○ Commonly cited guides don’t apply

● Streamlining work is in progress

Page 13: meta-virtualization: now & in the future Yocto Project

13 Yocto Project® | The Linux Foundation®

Container Deployment

● Not standardized (and shouldn’t be)○ Varies based on container runtime

● Some options:○ Direct image install (for startup)○ Registry / artifact repository push → pull○ Management framework: k8s, k3s, etc○ Custom ‘hacks’

Page 14: meta-virtualization: now & in the future Yocto Project

14 Yocto Project® | The Linux Foundation®

Container Deployment: Challenges

● Not cross friendly○ Daemons, root requirements, host requirements,

licensing, reproducibility, etc● Requirement creep● Large set of runtimes and frameworks

Page 15: meta-virtualization: now & in the future Yocto Project

Yocto Project | The Linux Foundation

Upcoming ...

Page 16: meta-virtualization: now & in the future Yocto Project

16 Yocto Project® | The Linux Foundation®

Vision

● The Yocto Project as a 1st class platform for building CNCF technologies○ Leveraging OE advantages and technologies, feeding

into external solutions■ baked directly into the outputs

● Simple inherit to generate containerized recipe output● Direct deploy to images, or management framework● Binary artifacts / reusable base containers

Page 17: meta-virtualization: now & in the future Yocto Project

17 Yocto Project® | The Linux Foundation®

In progress / Upcoming (1/2)

● Streamlined build via bbclass○ kernel-module-split style / dynamic packaging ?

● Direct image install○ via -native tools○ Autostart (depending on runtime)

● Multi-layer OCI container image build○ Pluggable / flexible back end

Page 18: meta-virtualization: now & in the future Yocto Project

18 Yocto Project® | The Linux Foundation®

In progress / Upcoming (2/2)

● Reference container host and app / system container images

● Target container (on host) rapid test● Framework test / deployment streamlining

○ k8s, k3s, runX ..

Page 19: meta-virtualization: now & in the future Yocto Project

Thanks for your time

Page 20: meta-virtualization: now & in the future Yocto Project

20 Yocto Project® | The Linux Foundation®

What is the Yocto Project® ?

IT'S NOT AN EMBEDDED LINUX DISTRIBUTION,

IT CREATES A CUSTOM ONE FOR YOU.

The Yocto Project (YP) is an open source collaboration project that helps developers create custom

Linux-based systems regardless of the hardware architecture.

The project provides a flexible set of tools and a space where embedded developers worldwide can share

technologies, software stacks, configurations, and best practices that can be used to create tailored Linux

images for embedded and IOT devices, or anywhere a customized Linux OS is needed.

Page 21: meta-virtualization: now & in the future Yocto Project