SlideShare une entreprise Scribd logo
1  sur  75
Télécharger pour lire hors ligne
Building images
efficiently and securely
on Kubernetes with BuildKit
Akihiro Suda, NTT
1
Raise your hand if you have heard of
BuildKit?
2
Raise your hand if you are already using
BuildKit?
3
Raise your hand if you are already running
BuildKit on Kubernetes?
4
Part 1
Introduction to BuildKit
5
BuildKit: next-generation
docker build
6
● Concurrent multi-stage build
● Efficient caching
● Secure access to private assets
● Flexible syntax for build definition
● Does not require root privileges
BuildKit: next-generation
docker build
7
● BuildKit is included in Docker since v18.06
● But this talk will focus on the standalone version of
BuildKit (buildkitd & buildctl)
○ No dependency on Docker
$ export DOCKER_BUILDKIT=1
$ docker build ...
LLB DAG
8
● LLB is to Dockerfile what LLVM IR is to C
● Typically compiled from Dockerfile
● Accurate dependency expression with DAG structure
○ Efficient caching
○ Concurrent execution
docker-image://alpine
Image
git://foo/bar
docker-image://gcc
Run("apk add ..")Run("make")
LLB DAG
9
FROM golang AS stage0
...
RUN go build –o /foo ...
FROM clang AS stage1
...
RUN clang –o /bar ...
FROM debian AS stage2
COPY --from=stage0 /foo /usr/local/bin/foo
COPY --from=stage1 /bar /usr/local/bin/bar
0

2

1

•DAGはマルチステージDockerfileを用いて記述できる
BuildKit: 次世代 `docker build`
FROM golang AS stage0
...
RUN go build –o /foo ...
FROM clang AS stage1
...
RUN clang –o /bar ...
FROM debian AS stage2
COPY --from=stage0 /foo /usr/local/bin/foo
COPY --from=stage1 /bar /usr/local/bin/bar
0

2

1

https://t.co/aUKqQCVmXa
https://t.co/aUKqQCVmXa
https://t.co/aUKqQCVmXa
https://t.co/aUKqQCVmXa
RUN --mount=type=cache
14
● Allows preserving caches of compilers and package
managers
# syntax = docker/dockerfile:1.1-experimental
...
RUN --mount=type=cache,target=/root/.cache go build
...
RUN --mount=type=cache
15
● Allows preserving caches of compilers and package
managers
# syntax = docker/dockerfile:1.1-experimental
FROM ubuntu
RUN rm -f /etc/apt/apt.conf.d/docker-clean; 
echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > 
/etc/apt/apt.conf.d/keep-cache
RUN 
--mount=type=cache,target=/var/cache/apt 
--mount=type=cache,target=/var/lib/apt 
apt-get update && apt-get install -y gcc
https://t.co/aUKqQCVmXa
RUN --mount=type=secret
17
● Allows accessing private assets without leaking
credential in the image
# syntax = docker/dockerfile:1.1-experimental
...
RUN --mount=type=secret,id=aws,target=/root/.aws/credentials 
aws s3 cp s3://... ...
$ buildctl build –-secret id=aws,src=~/.aws/credentials ...
RUN --mount=type=secret
18
● Note: DON’T do this!
...
COPY my_aws_credentials /root/.aws/credentials
RUN aws s3 cp s3://... …
RUN rm -f /root/.aws/credentials
...
RUN --mount=type=secret
19
● Note: DON’T do this either!
$ docker build 
--build-arg 
MY_AWS_CREDENTIALS=$(cat ~/.aws/credentials)
RUN --mount=type=ssh
20
● Akin to --mount=type=secret but specific to SSH
● Supports passphrase
# syntax = docker/dockerfile:1.1-experimental
...
RUN --mount=type=ssh git clone ssh://github.com/...
$ eval $(ssh-agent)
$ ssh-add ~/.ssh/id_rsa
(Enter your passphrase)
$ buildctl build –-ssh default=$SSH_AUTH_SOCK ...
Non-Dockerfiles
21
● LLB can be also compiled from non-Dockerfiles
● Several languages are being proposed
○ Buildpacks
○ Mockerfile
○ Gockerfile
● You can also create your own language
Buildpacks
22
● Ported from Heroku/CloudFoundry Buildpacks
● No support for Cloud Native Buildpacks yet
# syntax = tonistiigi/pack
---
applications:
- name: myapp
memory: 128MB
disk_quota: 256MB
random-route: true
buildpack: python_buildpack
command: python hello.py
Mockerfile
23
● apt-get in highly declarative YAML
# syntax = r2d4/mocker
apiVersion: v1alpha1
images:
- name: demo
from: ubuntu:16.04
package:
repo:
- deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8
gpg:
- https://bazel.build/bazel-release.pub.gpg
install:
- bazel
Gockerfile
24
● Really simple
● Specific to Golang
# syntax = po3rin/gocker
repo: github.com/foo/bar
path: ./cmd/baz
version: v0.0.1
Part 2
Deploying BuildKit on Kubernetes
25
Why build images on Kube?
26
Two kinds of motivation:
1. CI/CD
2. Developer Experience
Why build images on Kube?
27
BK Pod
BK Pod
BK Pod
Some
Pod
Some
webhook
1
1. CI/CD
28poor CPU, RAM, Wi-FI, battery
2. Developer Experience
BK Pod
BK Pod
BK Pod
Some
Pod
Some
webhook
1
1. CI/CD
2
Why build images on Kube?
Issue with docker build on Kube
29
● The common pattern was to run docker Pod with
/var/run/docker.sock hostPath
● Or run docker:dind Pod with
securityContext.privileged
● Both are insecure
Part 2.1
Rootless mode
30
Rootless mode
31
● BuildKit can be executed as a non-root user
● No extra securityContext configuration needed
● Protect the host from potential BuildKit vulns
Demo
32
● Not true since BuildKit v0.4.0
● But you need to disable “Process Sandbox”:
launch buildkitd with
--oci-worker-no-process-sandbox
○ Disable unsharing PIDNS and mounting /proc
for RUN instructions
33
myth 1: requires
securityContext.privileged
BuildKit daemon
worker container (e.g. RUN gcc …)
Host
Process sandbox
34
myth 1: requires
securityContext.privileged
Process sandbox
(needs to be disabled)
BuildKit daemon
--oci-worker-no-process-sandbox
worker container (e.g. RUN gcc …)
Host
worker container can kill(2) the daemon
Host is still protected
Process sandbox
35
myth 1: requires
securityContext.privileged
● To enable Process Sandbox,
securityContext.procMount needs to be set to
Unmasked
○ Requires Kubernetes v1.12+ with Docker v18.06+ /
containerd v1.2+ / CRI-O v1.12
36
myth 1: requires
securityContext.privileged
37
myth 2: seccomp and AppArmor
need to be disabled
● Not a myth :P
● seccomp (and AppArmor) is typically disabled by
default on Kubernetes anyway
○ In Kubernetes world, seccomp is still in alpha status
and AppArmor is in beta
38
myth 2: seccomp and AppArmor
need to be disabled
39
myth 2: seccomp and AppArmor
need to be disabled
BuildKit daemon
worker container (e.g. RUN gcc …)
Host
seccomp
seccomp (needs to be disabled)
40
myth 2: seccomp and AppArmor
need to be disabled
BuildKit daemon
worker container (e.g. RUN gcc …)
worker containers are still protected with seccomp
Host
seccomp
Future work: gVisor integration?
● gVisor: Yet another Linux kernel implementation in
userspace
● взор (vzor): gVisor-based sandbox for runc containers
https://github.com/tonistiigi/vzor
41
Host
runc
взор
BuildKit daemon
Future work: gVisor integration?
● No need to disable seccomp/AppArmor for runc
● Can also mitigate kernel vulns
42
Host
runc
взор
BuildKit daemon
Future work: gVisor integration?
43
● Currently BuildKit fails with EINVAL due to syscall
incompatibility
● Or User-Mode Linux?
○ Full Linux compatibility
○ 20 yo, still alive :)
Rootless BuildKit vs Kaniko
44
● Kaniko runs as the root but “unprivileged”
○ No need to disable seccomp and AppArmor
● Kaniko might be able to mitigate some vuln that
Rootless BuildKit cannot mitigate - and vice versa
○ Rootless BuildKit might be weak against kernel vulns
○ Kaniko might be weak against runc vulns
Part 2.2
Deployment strategy
45
Deployment strategy
46
DaemonSet?
Deployment?
StatefulSet?
Job?
Deployment strategy
47
● Deployment
○ Most typical deployment
● DaemonSet
○ Better Pod placement
○ But unlikely to hit daemon-local cache if you have a
bunch of replicas
○ So might not be always optimal for large clusters w/
complex Dockerfiles
Deployment strategy
48
● StatefulSet
○ Consistent Pod names
○ Good for Consistent Hashing (discussed later)
Deployment strategy
49
● Job (“Daemonless”)
○ buildctl and ephemeral buildkitd in a single
container in an ephemeral Pod
○ No need to manage the life cycles of the daemons
○ Needs PR: moby/buildkit#1005
■ or github.com/genuinetools/img (lacks some
upstream features)
How to connect to BuildKit?
50
● BuildKit daemon can listen on TCP (with TLS)
● The entire operation (build & push) just needs a single
gRPC connection
● So you can create Kubernetes Service for
connecting to BuildKit Deployment / DaemonSet /
StatefulSet
How to connect to BuildKit?
51
BK Pod
BK Pod
BK Pod
ServiceClient
gRPC
request
Load-balancing component
(Can be just headless svc with DNSRR)
How to connect to BuildKit?
52
● But you don’t need to necessarily create Service
● buildctl CLI can directly connect to a daemon in a
Pod without Service
○ Internally invokes kubectl exec
How to connect to BuildKit?
53
$ kubectl run 
--generator=run-pod/v1 
--image=moby/buildkit:master-rootless 
bk -- --oci-worker-no-process-sandbox
$ export BUILDKIT_HOST=kube-pod://bk
$ buildctl build ...
Coming soon:
docker buildx for Kube
54
● docker buildx is the next generation CLI for
integrating BuildKit to Docker
○ Supports building multi-arch image with remote
ARM machines
○ “Bake”: compose-like build
● docker buildx will support connecting to BuildKit
on Kubernetes in the same UX
Part 2.3
Caching
55
Remote cache
56
● Cache can be shared via either registry or shared FS
● Similar to classic docker build --cache-from but
more chance of hitting cache
● For building non-container artifacts (it’s a valid
use-case), FS cache might be useful
Remote cache
57
BK pod
BK pod
BK pod
Service
Load-balancing component
(Can be just headless svc with DNSRR)
RegistryClient
gRPC
request
Image
Cache
Remote cache
58
●Remote cache might be slow compared to the
daemon-local cache
●Example from Part 1 slides:
○ No cache: 2m50s
○ Remote cache: : 36s
○ Daemon-local cache: 0.5s
Consistent hashing
59
●Consistent hashing allows sticking a build request to a
specific Pod in StatefulSet
●So the build request can always hit the daemon-local
cache in the Pod
Consistent hashing
60
buildkitd-1
buildkitd-0
buildkitd-2buildkitd-3
qux/Dockerfile
bar/Dockerfilebaz/Dockerfile
foo/Dockerfile
Consistent hashing
61
buildkitd-1
buildkitd-0
buildkitd-2buildkitd-3
qux/Dockerfile
bar/Dockerfilebaz/Dockerfile
foo/Dockerfile
Consistent hashing
62
buildkitd-1
buildkitd-0
buildkitd-2
qux/Dockerfile
bar/Dockerfilebaz/Dockerfile
foo/Dockerfile
Consistent hashing
63
buildkitd-1
buildkitd-0
buildkitd-2
qux/Dockerfile
bar/Dockerfilebaz/Dockerfile
foo/Dockerfile
quux/Dockerfile
Consistent hashing
64
●Caveats:
○ High I/O overhead on specific set of nodes
○ Some nodes might not be used at all
●See examples/kube-consistent-hashing in the
moby/buildkit repo
Remote cache vs
Consistent hashing?
65
● If your cache registry is fast enough for your
Dockerfiles, remote cache w/ load-balancing might be
better
● If you don’t like transferring cache, consistent hashing
might be better
Part 2.4
CRD
66
CRD
67
Registry
YAML
CRD
68
Container Builder
Interface (CBI)
● The first common build CRD
● Supports Docker, BuildKit, Buildah,
kaniko, img, Google Cloud Container
Builder, Azure Container Registry Build,
and OpenShift S2I
● Complex design with a bunch of
microservices
● Now being deprecated
CRD
69
Container Builder
Interface (CBI)
● Simpler than CBI and easily extensible
● The build component (not entire Knative)
might be going to be replaced by Tekton?
● Spun out from Knative
● Much more simple and extensible
CRD
70
Container Builder
Interface (CBI)
● Simpler than CBI and easily extensible
● The build component (not entire Knative)
might be going to be replaced by Tekton?
● Spun out from Knative
● Much more simple and extensible
Tekton
71
apiVersion: tekton.dev/v1alpha1
kind: TaskRun
metadata:
name: foobar
spec:
taskRef:
name: buildkit
...
The interface is same as other image
builders (Buildah, Kaniko, and Makisu)
Tekton
72
inputs:
resources:
- name: source
resourceSpec:
type: git
params:
- name: url
value: git@github.com:foo/bar.git
SSH credential is loaded from the Secret
associated with the ServiceAccount
Tekton
73
outputs:
resources:
- name: image
resourceSpec:
type: image
params:
- name: url
value: registry.example.com/foo/bar
Registry credential is loaded from the Secret
associated with the ServiceAccount
Wrap-up
● BuildKit is fast and secure
● Several deployment plans, w/ and w/o daemon
● Example:
BuildKit
BuildKit
BuildKit
Headless
Service
Tekton
Controller
BuildKit
Client
DaemonSet
Registry
74
YAML
75
Join us: https://github.com/moby/buildkit

Contenu connexe

Tendances

The Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps ToolkitThe Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps Toolkit
Weaveworks
 
Red Hat Global File System (GFS)
Red Hat Global File System (GFS)Red Hat Global File System (GFS)
Red Hat Global File System (GFS)
Schubert Zhang
 

Tendances (20)

OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 
The overview of lazypull with containerd Remote Snapshotter & Stargz Snapshotter
The overview of lazypull with containerd Remote Snapshotter & Stargz SnapshotterThe overview of lazypull with containerd Remote Snapshotter & Stargz Snapshotter
The overview of lazypull with containerd Remote Snapshotter & Stargz Snapshotter
 
Qemu Introduction
Qemu IntroductionQemu Introduction
Qemu Introduction
 
Docker Networking Overview
Docker Networking OverviewDocker Networking Overview
Docker Networking Overview
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
 
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
 
Achieving the ultimate performance with KVM
Achieving the ultimate performance with KVM Achieving the ultimate performance with KVM
Achieving the ultimate performance with KVM
 
[KubeCon EU 2022] Running containerd and k3s on macOS
[KubeCon EU 2022] Running containerd and k3s on macOS[KubeCon EU 2022] Running containerd and k3s on macOS
[KubeCon EU 2022] Running containerd and k3s on macOS
 
Starting up Containers Super Fast With Lazy Pulling of Images
Starting up Containers Super Fast With Lazy Pulling of ImagesStarting up Containers Super Fast With Lazy Pulling of Images
Starting up Containers Super Fast With Lazy Pulling of Images
 
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
 
The Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps ToolkitThe Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps Toolkit
 
Linux女子部 iptables復習編
Linux女子部 iptables復習編Linux女子部 iptables復習編
Linux女子部 iptables復習編
 
[KubeConEU2023] Lima pavilion
[KubeConEU2023] Lima pavilion[KubeConEU2023] Lima pavilion
[KubeConEU2023] Lima pavilion
 
[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2020] containerd Deep Dive[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2020] containerd Deep Dive
 
Argocd up and running
Argocd up and runningArgocd up and running
Argocd up and running
 
Red Hat Global File System (GFS)
Red Hat Global File System (GFS)Red Hat Global File System (GFS)
Red Hat Global File System (GFS)
 
Understanding docker networking
Understanding docker networkingUnderstanding docker networking
Understanding docker networking
 
DoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDKDoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDK
 
How to Survive an OpenStack Cloud Meltdown with Ceph
How to Survive an OpenStack Cloud Meltdown with CephHow to Survive an OpenStack Cloud Meltdown with Ceph
How to Survive an OpenStack Cloud Meltdown with Ceph
 

Similaire à [KubeConEU] Building images efficiently and securely on Kubernetes with BuildKit

Similaire à [KubeConEU] Building images efficiently and securely on Kubernetes with BuildKit (20)

LinuxKit Deep Dive
LinuxKit Deep DiveLinuxKit Deep Dive
LinuxKit Deep Dive
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'a
 
Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD
 
Drone presentation
Drone presentationDrone presentation
Drone presentation
 
DCSF 19 Deploying Rootless buildkit on Kubernetes
DCSF 19 Deploying Rootless buildkit on KubernetesDCSF 19 Deploying Rootless buildkit on Kubernetes
DCSF 19 Deploying Rootless buildkit on Kubernetes
 
Présentation de Docker
Présentation de DockerPrésentation de Docker
Présentation de Docker
 
Clustering Docker with Docker Swarm on openSUSE
Clustering Docker with Docker Swarm on openSUSEClustering Docker with Docker Swarm on openSUSE
Clustering Docker with Docker Swarm on openSUSE
 
Perspectives on Docker
Perspectives on DockerPerspectives on Docker
Perspectives on Docker
 
How to debug the pod which is hard to debug (디버그 하기 어려운 POD 디버그 하기)
How to debug the pod which is hard to debug (디버그 하기 어려운 POD 디버그 하기)How to debug the pod which is hard to debug (디버그 하기 어려운 POD 디버그 하기)
How to debug the pod which is hard to debug (디버그 하기 어려운 POD 디버그 하기)
 
Kubernetes Basis: Pods, Deployments, and Services
Kubernetes Basis: Pods, Deployments, and ServicesKubernetes Basis: Pods, Deployments, and Services
Kubernetes Basis: Pods, Deployments, and Services
 
Putting the Fun into Functioning CI/CD with JHipster
Putting the Fun into Functioning CI/CD with JHipsterPutting the Fun into Functioning CI/CD with JHipster
Putting the Fun into Functioning CI/CD with JHipster
 
KubeCI - Cloud Native Continuous Delivery for Kubernetes
KubeCI - Cloud Native Continuous Delivery for KubernetesKubeCI - Cloud Native Continuous Delivery for Kubernetes
KubeCI - Cloud Native Continuous Delivery for Kubernetes
 
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 optimization mechanisms in GitLab and Docker
Build optimization mechanisms in GitLab and DockerBuild optimization mechanisms in GitLab and Docker
Build optimization mechanisms in GitLab and Docker
 
Containers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech TalkContainers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech Talk
 
MIPS-X
MIPS-XMIPS-X
MIPS-X
 
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
 
Build and run embedded apps faster from qt creator with docker
Build and run embedded apps faster from qt creator with dockerBuild and run embedded apps faster from qt creator with docker
Build and run embedded apps faster from qt creator with docker
 
Webinar: Building Embedded Applications from QtCreator with Docker
Webinar: Building Embedded Applications from QtCreator with DockerWebinar: Building Embedded Applications from QtCreator with Docker
Webinar: Building Embedded Applications from QtCreator with Docker
 
Powercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptxPowercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptx
 

Plus de Akihiro Suda

Plus de Akihiro Suda (20)

20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
20240321 [KubeCon EU Pavilion] Lima.pdf_
20240321 [KubeCon EU Pavilion] Lima.pdf_20240321 [KubeCon EU Pavilion] Lima.pdf_
20240321 [KubeCon EU Pavilion] Lima.pdf_
 
20240320 [KubeCon EU Pavilion] containerd.pdf
20240320 [KubeCon EU Pavilion] containerd.pdf20240320 [KubeCon EU Pavilion] containerd.pdf
20240320 [KubeCon EU Pavilion] containerd.pdf
 
20240201 [HPC Containers] Rootless Containers.pdf
20240201 [HPC Containers] Rootless Containers.pdf20240201 [HPC Containers] Rootless Containers.pdf
20240201 [HPC Containers] Rootless Containers.pdf
 
[Podman Special Event] Kubernetes in Rootless Podman
[Podman Special Event] Kubernetes in Rootless Podman[Podman Special Event] Kubernetes in Rootless Podman
[Podman Special Event] Kubernetes in Rootless Podman
 
[KubeConNA2023] Lima pavilion
[KubeConNA2023] Lima pavilion[KubeConNA2023] Lima pavilion
[KubeConNA2023] Lima pavilion
 
[KubeConNA2023] containerd pavilion
[KubeConNA2023] containerd pavilion[KubeConNA2023] containerd pavilion
[KubeConNA2023] containerd pavilion
 
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
 
[CNCF TAG-Runtime] Usernetes Gen2
[CNCF TAG-Runtime] Usernetes Gen2[CNCF TAG-Runtime] Usernetes Gen2
[CNCF TAG-Runtime] Usernetes Gen2
 
[DockerCon 2023] Reproducible builds with BuildKit for software supply chain ...
[DockerCon 2023] Reproducible builds with BuildKit for software supply chain ...[DockerCon 2023] Reproducible builds with BuildKit for software supply chain ...
[DockerCon 2023] Reproducible builds with BuildKit for software supply chain ...
 
The internals and the latest trends of container runtimes
The internals and the latest trends of container runtimesThe internals and the latest trends of container runtimes
The internals and the latest trends of container runtimes
 
[KubeConEU2023] containerd pavilion
[KubeConEU2023] containerd pavilion[KubeConEU2023] containerd pavilion
[KubeConEU2023] containerd pavilion
 
[FOSDEM2023] Bit-for-bit reproducible builds with Dockerfile
[FOSDEM2023] Bit-for-bit reproducible builds with Dockerfile[FOSDEM2023] Bit-for-bit reproducible builds with Dockerfile
[FOSDEM2023] Bit-for-bit reproducible builds with Dockerfile
 
[CNCF TAG-Runtime 2022-10-06] Lima
[CNCF TAG-Runtime 2022-10-06] Lima[CNCF TAG-Runtime 2022-10-06] Lima
[CNCF TAG-Runtime 2022-10-06] Lima
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
[Docker Tokyo #35] Docker 20.10
[Docker Tokyo #35] Docker 20.10[Docker Tokyo #35] Docker 20.10
[Docker Tokyo #35] Docker 20.10
 
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020
 
[FOSDEM 2020] Lazy distribution of container images
[FOSDEM 2020] Lazy distribution of container images[FOSDEM 2020] Lazy distribution of container images
[FOSDEM 2020] Lazy distribution of container images
 

Dernier

Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Dernier (20)

W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 

[KubeConEU] Building images efficiently and securely on Kubernetes with BuildKit