stackconf 2024 | Buzzing across the eBPF Landscape and into the Hive by Bill Mulligan
NETWAYS
34 views
72 slides
Jul 02, 2024
Slide 1 of 72
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
About This Presentation
The buzz around the Linux kernel technology eBPF is growing quickly and it can be hard to know where to start or how to keep up with this technology that is reshaping our infrastructure stack. In this talk, Bill will trace how he got into eBPF, explore some of the applications leveraging eBPF today,...
The buzz around the Linux kernel technology eBPF is growing quickly and it can be hard to know where to start or how to keep up with this technology that is reshaping our infrastructure stack. In this talk, Bill will trace how he got into eBPF, explore some of the applications leveraging eBPF today, and teach others how to dive into the hive of activity around eBPF. People just beginning with eBPF will learn how eBPF makes it possible to have efficient networking, observability without instrumentation, effortless tracing, and real-time security (among other things) without needing your own kernel team. Those already familiar with eBPF will get an overview of the eBPF landscape and learn about many new and expanding eBPF applications that allow them to harness the power without needing to dive into the bytecode. The audience will walk away with an understanding of the buzz around eBPF and knowledge of new tools that may solve some of their problems in networking, observability, and security.
Size: 8.88 MB
Language: en
Added: Jul 02, 2024
Slides: 72 pages
Slide Content
Buzzing Across the eBPF
Landscape and Into the
Hive
Bill Mulligan | @breakawaybilly
Community Pollinator, Isovalent at Cisco
@breakawaybilly
@breakawaybilly
A Vision for eBPF Inside
eBPF
Buzz or Byte?
@breakawaybilly
Kernel Space/User Space “Paradox”
●Kernel: System awareness,
but lacks flexibility
●User space:
Programmable, but no
direct access to kernel
structures, resources
●Kernel modules: Difficult,
unsafe, not stable
Flexibility
Performance
Visibility
@breakawaybilly
Kernel Space/User Space “Paradox”
Can we have programmability in
the kernel?
Flexibility
Performance
Visibility
@breakawaybilly
What is ?
@breakawaybilly
What is ?
eBPF makes the Linux kernel programmable
@breakawaybilly
Makes the Linux kernel
programmable in a secure
and efficient way.
“What JavaScript is to the
browser, eBPF is to the
Linux Kernel”
@breakawaybilly
"BPF has actually been really useful, and the real power of it
is how it allows people to do specialized code that isn't
enabled until asked for"
- Linus Torvalds
Dynamically Change Kernel
Behavior
@breakawaybilly
@breakawaybilly
@breakawaybilly
“Superpowers for Linux”
- Brendan Gregg
@breakawaybilly
Vision
@breakawaybilly
eBPF is the Cloud Native App Store
https://commons.wikimedia.org/wiki/File:Steve_Jobs_presents_iPhone.jpg
@breakawaybilly
Safety: eBPF Verifier
●Programs will run to completion
●Does not crash or otherwise harm the system
●Only priviledged users allowed to load
@breakawaybilly
Performance: In Kernel & JIT Compiler
●Translate program bytecode into the machine specific
instruction set to optimize execution speed of the program
●Runs as efficiently as natively compiled kernel code
@breakawaybilly
Performance
@breakawaybilly
Shared Memory: BPF maps
Between eBPF programs and between kernel and user space
●No data loss
●More performant
eBPF
Today
userspace
kernel
network call
read file
run process
podcontainer
pod containercontainer
One kernel
per host
@breakawaybilly
userspace
kernel
app
app
pods
networking
access files
create
containersKernel aware of
everything on the
host
userspace
app
kernel
app
pods
network call
read file
run process
eBPF programs
can see
everything
userspace
podcontainer
pod containercontainer
userspace
app
kernel
app
pods
network call
read file
run process
eBPF programs
can see
everything
No changes to
code or config
userspace
podcontainer
pod containercontainer
Flexibility
Performance
Visibility
eBPF in Kernel Space
In the kernel but flexible
Safety, performance, observability,
and programmability
Available by default
Real world
Use Cases
Networking
-Networking
-Security
-Observability
-Service Mesh & Ingress
-based:
Foundation Technology
31
Over 120 USERS.md entries
Vision
Inent & identity-based, high performance
container networking platform built using eBPF
The Beginning
Network Security 1.0
Cluster Mesh
Adding reach to end-to-end network security and observability
Load Balancer
Adding reach to end-to-end network security and observability
$ kubectl logs ds/tetragon -c export-stdout -f | tetragon
observe
?????? process default/xwing /usr/bin/vi /etc/passwd
?????? open default/xwing /usr/bin/vi /etc/passwd
?????? close default/xwing /usr/bin/vi
?????? open default/xwing /usr/bin/vi /etc/passwd
?????? write default/xwing /usr/bin/vi /etc/passwd 1275 bytes
?????? close default/xwing /usr/bin/vi
?????? exit default/xwing /usr/bin/vi /etc/passwd 0
Security observability
Runtime Enforcement
Security Observability &
Runtime Enforcement
43
@breakawaybilly
Tracing and Profiling
@breakawaybilly
Tracing and Profiling
@breakawaybilly
eBPF tools provide rich,
context-aware event streams
eBPF everything???
Or not?
@breakawaybilly
Still not a magic bullet
userspace
kernel
network call
read file
run process
podcontainer
pod containercontainer
“Add product X to cart”
open file 345
forward packet to 6.7.8.9
read file 111
create a socket
…
…
query service A
write to database
…
●eBPF doesn’t have business context!
●Requires kernel knowledge
●the data volume can be absurd
eBPF is challenging
Buzzing
Community
@breakawaybilly
Kernel Community
Happy 10th Birthday ??????