SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
Zero-Touch OS Infrastructure
for Container and Kubernetes Workloads
18. April 2024
Open Source Camp Nürnberg
Hello, I'm
Thilo
Thilo Fromm
Flatcar Maintainer, Eng. Mgr @ Microsoft
Github: t-lo
Mastodon: @thilo@fromm.social
Email: thilofromm@microsoft.com
Outline
Foundational Concepts
Fresh & Stable: Staying up to Date, safely
Composability
Community
Container Optimised Linux
Rethink the OS as a cloud-native replaceable commodity
o Provision like a container app or pod:
Nodes are instances of immutable images
o Leverage container isolation from the OS side
o Zero touch: safe auto-updates
==> A "Day #2" operating system
Container Optimised Linux
UX Philosophy
UX Philosophy
UX Philosophy
Container / Kubernetes App Provisioning
OS Provisions like a Container App
Bootstrap Initial Apps when Provisioning
Declarative configuration
Sensible defaults, no boilerplate
Storage networking, users, ssh, systemd units – only if you need these
Inline / download custom directories and files
No config drift
Configured at first boot / during provisioning
New and existing (updated) node configs do not differ
Extensive Automation
OS supports many cloud providers and private clouds, support is growing
Terraform integration, Go bindings
ClusterAPI integration
Operate the OS like a Container App or Pod
Configuration applied once, at provisioning time
Supported out-of-the box by Core CAPI and image-builder
Multiple large vendors are supported
AWS
Azure
VSphere
OpenStack
Tinkerbell (via Sysexts)
GCP support is work-in-progress.
Piloting sysext CAPI deployments (composed at provisioning, updatable)
Large-Scale deployments? ClusterAPI!
Provisioning and updates are immutable images
Always built from scratch, always fully tested. Self-contained, all bits included.
No version drift: releases are frozen version sets
No difference between new and existing (updated) nodes
All OS binaries on a separate, immutable partition
Everything is in /usr, read-only and dm-verity protected
In-place updates via A/B partitions
Retains node state - DB node operators rejoice!
Updates are atomic, roll-backs are easy
Image-Based OS
Provisioning
Demo
Container apps are self-contained and run isolated
From each other, but also from the OS
Few and well-defined dependencies on the OS
No inter-dependencies OS <-> App
No shared libraries / binaries
No shared configuration
➔ Portable Applications
Leverage Container Isolation
Well-defined interfaces OS <-> App
Very few components, easy to test thoroughly
No other inter-dependencies
Container apps isolate from the OS
Runtime + Kernel is a Contract
App relies on contract and nothing else
OS guarantees and fulfils contract
➔ Interchangeable OS
Main Focus on upholding
runtime contract
Contract
Leverage Container Isolation from the OS side
User
Workloads
Contract is well-testable (and rigorously tested)
Interchangeable OS
Contract is well-tested
Always upheld across releases
Interchangeable OS
Contract
v3510.2.8
Contract
v3602.2.4
Contract
v3760.2.0
== ==
Contract is well-tested
Always upheld across releases
Contract is our “light switch”
Interchangeable OS
Staying up to date
Atomic In-Place Updates
Atomic In-Place Updates
1. Stage
Staying up to date
Atomic In-Place Updates
1. Stage
2. Activate (Reboot)
Staying up to date
Atomic In-Place Updates
1. Stage
2. Activate
3. Done
Staying up to date
Atomic In-Place Updates
1. Stage
2. Activate
3. Done?
Staying up to date
Atomic Roll-Backs
1. Stage
2. Activate
3. Done?
4. Roll Back
Staying up to date
Atomic Roll-Backs
1. Stage
2. Activate
3. Done?
4. Roll Back
to known-good state
Staying up to date
Update
Demo
(Usually automated.
Manual ONLY
for demo purposes)
Updates need Reboots
Maintenance windows (date / time)
Sync via custom etcd lock (max number of nodes to reboot)
Kubernetes: update operator (FLUO, KureD) w/ node draining, reboot, un-cordoning
Stateful, FOSS update server
Nebraska project - “Omaha” protocol used by chromium
Easy to self-host. For large fleets – custom grouping, staggered roll-out, version overview, etc.
Users part of the stabilization process
Run canaries and keep your workloads safe
Rolling out Updates
Major OS release stabilisation milestones:
"Alpha" Fully tested but may contain incomplete features. For developers.
"Beta" Fully tested for production use. Recommended for canaries
"Stable" For widespread production use.
Additional stabilisation through user feedback from Beta canaries.
Deployments defaults to "stable" but can be customised to any channel.
Stabilisation Process: Ensuring safe updates
Use stable for most workloads, and run a few Beta canaries
Each Beta is fully tested
Canaries smoke-test incoming changes and detect issues with your workload
(And roll-back is easy!)
Report Issues detected by canaries
The issue will be fixed in the next Beta, before changes go stable
==> Your clusters will receive stable versions that are proven to work
Stabilisation Process: Ensuring safe updates
Composability
OS-level extensibility via Systemd Sysext
OS is immutable
Nice set of tools, but I need podman/Kubernetes/WASM/…
Extensible via systemd-Sysexts
Immutable filesystem images that ship custom libraries / binaries as full root FS tree
(only /usr and /opt subtrees supported)
A/B updates independent from OS via systemd-sysupdate (via HTTPS server, e.g. Github Release)
Flatcar makes extensive use of sysexts
Bundled with the base OS and updated in lock-step, e.g. OEM / guest tools
Independent of the base OS with custom update cycle, e.g. Kubernetes sysext for CAPI, WASM, …
Using Sysexts
/usr/
/lib/
libdep1.so
libdep2.so
libmytool.so
/bin/
mytool
Sysext image
/usr/
/lib/
libc.so
libcrypt.so
….
/bin/
cat
ls
...
Root FS
Merge
/usr/
/lib/
libc.so
libcrypt.so
libdep1.so
libdep2.so
libmytool.so
….
/bin/
cat
ls
mytool
...
Root FS
Building Sysexts
/usr/
/lib/
libdep1.so
libdep2.so
libmytool.so
/bin/
mytool
sysext
src/
...
build/
libdep1.so
libdep2.so
libmytool.so
mytool
Build system
copy
usr/
/lib/
libdep1.so
libdep2.so
libmytool.so
/bin/
mytool
Subdirectory
mkfs,
mkosi,
etc.
Sysexts Day #2
Solid update story
HTTPS endpoint + index file ("SHA256SUMS")
Complimentary systemd-sysupdate service for staging + updating atomically
Can be updated independently of the OS, but also support OS version requirements
Simple, easy development / publish process
Straightforward packaging as filesystem image
Lightweight metadata requirements
Clean separation between OS + customisations
Independent of the base OS with custom update cycle, e.g. Kubernetes syst for CAPI, WASM, …
Image composability in Flatcar
Pre-bake images
Add custom sysexts + configuration to stock Flatcar release image
Update via self-hosted sysexts (e.g. gitops via github actions)
Compose at provisioning time
Use declarative configuration to download & configure, sysupdate to update
CAPI pilot
Proof-of-concept Kubernetes sysext composed into stock image during provisioning
CAPO, Tinkerbell are supported, CAPA, CAPZ, and CAPV work in progress.
Sysext
Demo
Community
Flatcar
Community
Community-driven FOSS project
No single vendor, full community stewardship
Submitted to the CNCF as incubation project (ongoing)
Roadmap, Implementation, Releases
Matrix, Slack - Our day-to-day comms
Office hours - Every 2nd Tuesday, 3:30pm UTC
Dev Sync - Every 4th Tuesday, 3:30pm UTC
Focus on low entry bar to OS Development
(Some Gentoo knowledge is useful though)
Used by Maintainers and in our automation
Includes easy-to-run, full test suite
Portable,
Easy to use
SDK
git clone https://github.com/flatcar/scripts.git
cd scripts
git checkout alpha-3794.0.0
./run_sdk_container –t ./build_packages
./run_sdk_container –t ./build_image
./image_to_vm.sh --from=../build/images/amd64-usr/latest/ 
--format=qemu_uefi --image_compression_formats none
./run_local_tests.sh
Wrap Up
Leverage Isolation of OS and Apps
Declarative Configuration at Provisioning
Atomic, Automated Updates
Composable images with Sysext
Community driven, submitted to CNCF
The Community’s
Container Linux
Thank you

Mais conteúdo relacionado

Semelhante a OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubernetes-Workloads by Thilo Fromm

stackconf 2022: It’s Time to Debloat the Cloud with Unikraft
stackconf 2022: It’s Time to Debloat the Cloud with Unikraftstackconf 2022: It’s Time to Debloat the Cloud with Unikraft
stackconf 2022: It’s Time to Debloat the Cloud with UnikraftNETWAYS
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Intro to kubernetesElad Hirsch
 
Ubuntu phone engineering
Ubuntu phone engineeringUbuntu phone engineering
Ubuntu phone engineeringRex Tsai
 
Ubuntu Cloud at Florida Linux Show
Ubuntu Cloud at Florida Linux ShowUbuntu Cloud at Florida Linux Show
Ubuntu Cloud at Florida Linux Showzoopster
 
-OpenIoT Summit - IoT devices- secure boot and sw maintenance_0
-OpenIoT Summit - IoT devices- secure boot and sw maintenance_0-OpenIoT Summit - IoT devices- secure boot and sw maintenance_0
-OpenIoT Summit - IoT devices- secure boot and sw maintenance_0Igor Stoppa
 
如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备Rex Tsai
 
Surat MuleSoft Meetup#2 - Anypoint Runtime Fabric
Surat MuleSoft Meetup#2 - Anypoint Runtime FabricSurat MuleSoft Meetup#2 - Anypoint Runtime Fabric
Surat MuleSoft Meetup#2 - Anypoint Runtime FabricJitendra Bafna
 
ERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsChristian Charreyre
 
Code Factory avec GitLab CI et Rancher
Code Factory avec GitLab CI et RancherCode Factory avec GitLab CI et Rancher
Code Factory avec GitLab CI et RancherSUSE
 
exp_1_20bca1108(kashish_dixit.docx
exp_1_20bca1108(kashish_dixit.docxexp_1_20bca1108(kashish_dixit.docx
exp_1_20bca1108(kashish_dixit.docxApkaAmitbro
 
exp_1_20bca1066 Internet.docx
exp_1_20bca1066 Internet.docxexp_1_20bca1066 Internet.docx
exp_1_20bca1066 Internet.docxApkaAmitbro
 
4 implementation
4 implementation4 implementation
4 implementationhanmya
 
Finer Things Club - Lesser known zOSMF SW Mgmt Functions.pdf
Finer Things Club - Lesser known zOSMF SW Mgmt Functions.pdfFiner Things Club - Lesser known zOSMF SW Mgmt Functions.pdf
Finer Things Club - Lesser known zOSMF SW Mgmt Functions.pdfMarna Walle
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best PracticesAshraf Fouad
 

Semelhante a OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubernetes-Workloads by Thilo Fromm (20)

stackconf 2022: It’s Time to Debloat the Cloud with Unikraft
stackconf 2022: It’s Time to Debloat the Cloud with Unikraftstackconf 2022: It’s Time to Debloat the Cloud with Unikraft
stackconf 2022: It’s Time to Debloat the Cloud with Unikraft
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Intro to kubernetes
 
Ubuntu phone engineering
Ubuntu phone engineeringUbuntu phone engineering
Ubuntu phone engineering
 
Ubuntu Cloud at Florida Linux Show
Ubuntu Cloud at Florida Linux ShowUbuntu Cloud at Florida Linux Show
Ubuntu Cloud at Florida Linux Show
 
-OpenIoT Summit - IoT devices- secure boot and sw maintenance_0
-OpenIoT Summit - IoT devices- secure boot and sw maintenance_0-OpenIoT Summit - IoT devices- secure boot and sw maintenance_0
-OpenIoT Summit - IoT devices- secure boot and sw maintenance_0
 
Beyond static configuration
Beyond static configurationBeyond static configuration
Beyond static configuration
 
如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备
 
Surat MuleSoft Meetup#2 - Anypoint Runtime Fabric
Surat MuleSoft Meetup#2 - Anypoint Runtime FabricSurat MuleSoft Meetup#2 - Anypoint Runtime Fabric
Surat MuleSoft Meetup#2 - Anypoint Runtime Fabric
 
ERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projects
 
Linux internals v4
Linux internals v4Linux internals v4
Linux internals v4
 
Code Factory avec GitLab CI et Rancher
Code Factory avec GitLab CI et RancherCode Factory avec GitLab CI et Rancher
Code Factory avec GitLab CI et Rancher
 
HPC_MPI_CICD.pptx
HPC_MPI_CICD.pptxHPC_MPI_CICD.pptx
HPC_MPI_CICD.pptx
 
Fedora Modularity
Fedora ModularityFedora Modularity
Fedora Modularity
 
exp_1_20bca1108(kashish_dixit.docx
exp_1_20bca1108(kashish_dixit.docxexp_1_20bca1108(kashish_dixit.docx
exp_1_20bca1108(kashish_dixit.docx
 
exp_1_20bca1066 Internet.docx
exp_1_20bca1066 Internet.docxexp_1_20bca1066 Internet.docx
exp_1_20bca1066 Internet.docx
 
4 implementation
4 implementation4 implementation
4 implementation
 
Finer Things Club - Lesser known zOSMF SW Mgmt Functions.pdf
Finer Things Club - Lesser known zOSMF SW Mgmt Functions.pdfFiner Things Club - Lesser known zOSMF SW Mgmt Functions.pdf
Finer Things Club - Lesser known zOSMF SW Mgmt Functions.pdf
 
Studienarb linux kernel-dev
Studienarb linux kernel-devStudienarb linux kernel-dev
Studienarb linux kernel-dev
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best Practices
 
Fedora15 lovelock-pres
Fedora15 lovelock-presFedora15 lovelock-pres
Fedora15 lovelock-pres
 

Último

Presentation on Engagement in Book Clubs
Presentation on Engagement in Book ClubsPresentation on Engagement in Book Clubs
Presentation on Engagement in Book Clubssamaasim06
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )Pooja Nehwal
 
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Delhi Call girls
 
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort ServiceDelhi Call girls
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...henrik385807
 
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Salam Al-Karadaghi
 
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesPooja Nehwal
 
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...Sheetaleventcompany
 
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...NETWAYS
 
Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Chameera Dedduwage
 
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfOpen Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfhenrik385807
 
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxMohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxmohammadalnahdi22
 
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AIMicrosoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AITatiana Gurgel
 
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStrSaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStrsaastr
 
Mathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMoumonDas2
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Pooja Nehwal
 
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyCall Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyPooja Nehwal
 
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝soniya singh
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024eCommerce Institute
 

Último (20)

Presentation on Engagement in Book Clubs
Presentation on Engagement in Book ClubsPresentation on Engagement in Book Clubs
Presentation on Engagement in Book Clubs
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
 
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
 
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
 
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
 
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
 
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
 
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
 
Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)
 
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfOpen Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
 
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxMohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
 
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AIMicrosoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AI
 
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStrSaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
 
Mathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptx
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
 
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyCall Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
 
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024
 

OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubernetes-Workloads by Thilo Fromm

  • 1. Zero-Touch OS Infrastructure for Container and Kubernetes Workloads 18. April 2024 Open Source Camp Nürnberg
  • 2. Hello, I'm Thilo Thilo Fromm Flatcar Maintainer, Eng. Mgr @ Microsoft Github: t-lo Mastodon: @thilo@fromm.social Email: thilofromm@microsoft.com
  • 3. Outline Foundational Concepts Fresh & Stable: Staying up to Date, safely Composability Community
  • 5. Rethink the OS as a cloud-native replaceable commodity o Provision like a container app or pod: Nodes are instances of immutable images o Leverage container isolation from the OS side o Zero touch: safe auto-updates ==> A "Day #2" operating system Container Optimised Linux
  • 9. Container / Kubernetes App Provisioning
  • 10. OS Provisions like a Container App
  • 11. Bootstrap Initial Apps when Provisioning
  • 13. Sensible defaults, no boilerplate Storage networking, users, ssh, systemd units – only if you need these Inline / download custom directories and files No config drift Configured at first boot / during provisioning New and existing (updated) node configs do not differ Extensive Automation OS supports many cloud providers and private clouds, support is growing Terraform integration, Go bindings ClusterAPI integration Operate the OS like a Container App or Pod
  • 14. Configuration applied once, at provisioning time
  • 15. Supported out-of-the box by Core CAPI and image-builder Multiple large vendors are supported AWS Azure VSphere OpenStack Tinkerbell (via Sysexts) GCP support is work-in-progress. Piloting sysext CAPI deployments (composed at provisioning, updatable) Large-Scale deployments? ClusterAPI!
  • 16. Provisioning and updates are immutable images Always built from scratch, always fully tested. Self-contained, all bits included. No version drift: releases are frozen version sets No difference between new and existing (updated) nodes All OS binaries on a separate, immutable partition Everything is in /usr, read-only and dm-verity protected In-place updates via A/B partitions Retains node state - DB node operators rejoice! Updates are atomic, roll-backs are easy Image-Based OS
  • 18. Container apps are self-contained and run isolated From each other, but also from the OS Few and well-defined dependencies on the OS No inter-dependencies OS <-> App No shared libraries / binaries No shared configuration ➔ Portable Applications Leverage Container Isolation
  • 19. Well-defined interfaces OS <-> App Very few components, easy to test thoroughly No other inter-dependencies Container apps isolate from the OS Runtime + Kernel is a Contract App relies on contract and nothing else OS guarantees and fulfils contract ➔ Interchangeable OS Main Focus on upholding runtime contract Contract Leverage Container Isolation from the OS side User Workloads
  • 20. Contract is well-testable (and rigorously tested) Interchangeable OS
  • 21. Contract is well-tested Always upheld across releases Interchangeable OS Contract v3510.2.8 Contract v3602.2.4 Contract v3760.2.0 == ==
  • 22. Contract is well-tested Always upheld across releases Contract is our “light switch” Interchangeable OS
  • 23. Staying up to date Atomic In-Place Updates
  • 24. Atomic In-Place Updates 1. Stage Staying up to date
  • 25. Atomic In-Place Updates 1. Stage 2. Activate (Reboot) Staying up to date
  • 26. Atomic In-Place Updates 1. Stage 2. Activate 3. Done Staying up to date
  • 27. Atomic In-Place Updates 1. Stage 2. Activate 3. Done? Staying up to date
  • 28. Atomic Roll-Backs 1. Stage 2. Activate 3. Done? 4. Roll Back Staying up to date
  • 29. Atomic Roll-Backs 1. Stage 2. Activate 3. Done? 4. Roll Back to known-good state Staying up to date
  • 31. Updates need Reboots Maintenance windows (date / time) Sync via custom etcd lock (max number of nodes to reboot) Kubernetes: update operator (FLUO, KureD) w/ node draining, reboot, un-cordoning Stateful, FOSS update server Nebraska project - “Omaha” protocol used by chromium Easy to self-host. For large fleets – custom grouping, staggered roll-out, version overview, etc. Users part of the stabilization process Run canaries and keep your workloads safe Rolling out Updates
  • 32. Major OS release stabilisation milestones: "Alpha" Fully tested but may contain incomplete features. For developers. "Beta" Fully tested for production use. Recommended for canaries "Stable" For widespread production use. Additional stabilisation through user feedback from Beta canaries. Deployments defaults to "stable" but can be customised to any channel. Stabilisation Process: Ensuring safe updates
  • 33. Use stable for most workloads, and run a few Beta canaries Each Beta is fully tested Canaries smoke-test incoming changes and detect issues with your workload (And roll-back is easy!) Report Issues detected by canaries The issue will be fixed in the next Beta, before changes go stable ==> Your clusters will receive stable versions that are proven to work Stabilisation Process: Ensuring safe updates
  • 35. OS-level extensibility via Systemd Sysext OS is immutable Nice set of tools, but I need podman/Kubernetes/WASM/… Extensible via systemd-Sysexts Immutable filesystem images that ship custom libraries / binaries as full root FS tree (only /usr and /opt subtrees supported) A/B updates independent from OS via systemd-sysupdate (via HTTPS server, e.g. Github Release) Flatcar makes extensive use of sysexts Bundled with the base OS and updated in lock-step, e.g. OEM / guest tools Independent of the base OS with custom update cycle, e.g. Kubernetes sysext for CAPI, WASM, …
  • 36. Using Sysexts /usr/ /lib/ libdep1.so libdep2.so libmytool.so /bin/ mytool Sysext image /usr/ /lib/ libc.so libcrypt.so …. /bin/ cat ls ... Root FS Merge /usr/ /lib/ libc.so libcrypt.so libdep1.so libdep2.so libmytool.so …. /bin/ cat ls mytool ... Root FS
  • 38. Sysexts Day #2 Solid update story HTTPS endpoint + index file ("SHA256SUMS") Complimentary systemd-sysupdate service for staging + updating atomically Can be updated independently of the OS, but also support OS version requirements Simple, easy development / publish process Straightforward packaging as filesystem image Lightweight metadata requirements Clean separation between OS + customisations Independent of the base OS with custom update cycle, e.g. Kubernetes syst for CAPI, WASM, …
  • 39. Image composability in Flatcar Pre-bake images Add custom sysexts + configuration to stock Flatcar release image Update via self-hosted sysexts (e.g. gitops via github actions) Compose at provisioning time Use declarative configuration to download & configure, sysupdate to update CAPI pilot Proof-of-concept Kubernetes sysext composed into stock image during provisioning CAPO, Tinkerbell are supported, CAPA, CAPZ, and CAPV work in progress.
  • 42. Flatcar Community Community-driven FOSS project No single vendor, full community stewardship Submitted to the CNCF as incubation project (ongoing) Roadmap, Implementation, Releases Matrix, Slack - Our day-to-day comms Office hours - Every 2nd Tuesday, 3:30pm UTC Dev Sync - Every 4th Tuesday, 3:30pm UTC
  • 43. Focus on low entry bar to OS Development (Some Gentoo knowledge is useful though) Used by Maintainers and in our automation Includes easy-to-run, full test suite Portable, Easy to use SDK git clone https://github.com/flatcar/scripts.git cd scripts git checkout alpha-3794.0.0 ./run_sdk_container –t ./build_packages ./run_sdk_container –t ./build_image ./image_to_vm.sh --from=../build/images/amd64-usr/latest/ --format=qemu_uefi --image_compression_formats none ./run_local_tests.sh
  • 44. Wrap Up Leverage Isolation of OS and Apps Declarative Configuration at Provisioning Atomic, Automated Updates Composable images with Sysext Community driven, submitted to CNCF