<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on Aleskandro</title><link>https://aleskandro.com/posts/</link><description>Recent content in Posts on Aleskandro</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>&lt;p xmlns:cc="http://creativecommons.org/ns#" style="margin:0;padding:0">
The content in this blog is licensed under
&lt;a href="https://creativecommons.org/licenses/by-nc-sa/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International&lt;/a>
&lt;/p>
&lt;p style="margin:0;padding:0;margin-top:5px">
&lt;img style="border:none;display:inline-block;padding:0;margin:0" height=40 src="https://aleskandro.com/img/by-nc-sa.png" alt="">
&lt;/p></copyright><lastBuildDate>Sat, 13 Dec 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://aleskandro.com/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Workaround for Fedora CoreOS boot partition space errors during upgrades</title><link>https://aleskandro.com/posts/workaround-no-space-left-on-device-boot-partition-fedora-coreos/</link><pubDate>Sat, 13 Dec 2025 00:00:00 +0000</pubDate><guid>https://aleskandro.com/posts/workaround-no-space-left-on-device-boot-partition-fedora-coreos/</guid><description>&lt;p>The default boot partition size for Fedora CoreOS installations is 384MB. This default size is likely not enough&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup> today for hosting new deployments and accommodating new kernels and initrd images in the boot partition&amp;rsquo;s /ostree folder. &lt;sup id="fnref:2">&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref">2&lt;/a>&lt;/sup>&lt;/p>
&lt;p>Eventually, some systems can start to fail when two kernels and initrd images cannot fit into the boot partition, and you may find &lt;code>rpm-ostree status&lt;/code> reporting:&lt;/p>
&lt;blockquote>
&lt;p>error: Installing kernel: regfile copy: No space left on device&lt;/p></description></item><item><title>Bridging Distributed Systems with Earth &amp; Sea Science: A Field-Driven Reading List</title><link>https://aleskandro.com/posts/climate-change-distributed-systems-journals-research/</link><pubDate>Fri, 29 Aug 2025 00:00:00 +0000</pubDate><guid>https://aleskandro.com/posts/climate-change-distributed-systems-journals-research/</guid><description>&lt;p>I&amp;rsquo;m just back from a 10-days road-trip in Scotland. It was a perfect break from work and a wonderful experience with Courtney and Justin.
It&amp;rsquo;s now official that I&amp;rsquo;m going to move out of my current team: my multi-arch compute Kubernetes chapter comes to an official end, and a new experience around LLM distributed serving will have me busy at Red Hat within a few weeks.&lt;/p>
&lt;p>But it wasn’t just a break-from-work trip - it was a reminder of what&amp;rsquo;s at stake.&lt;/p></description></item><item><title>Use overlayfs to compose /lib/modules for loading custom Kernel Modules on Fedora CoreOS</title><link>https://aleskandro.com/posts/custom-kernel-modules-autoload-overlayfs-fedora-coreos/</link><pubDate>Sat, 12 Apr 2025 00:00:00 +0000</pubDate><guid>https://aleskandro.com/posts/custom-kernel-modules-autoload-overlayfs-fedora-coreos/</guid><description>&lt;p>&lt;a href="https://fedoraproject.org/coreos/">Fedora CoreOS&lt;/a> is designed to be an &lt;strong>immutable operating system&lt;/strong>, meaning many critical system directories—like &lt;code>/lib/modules&lt;/code>—are &lt;strong>read-only&lt;/strong>. This poses a challenge when you need to &lt;strong>load custom kernel modules&lt;/strong> that aren&amp;rsquo;t shipped with the default kernel package.&lt;/p>
&lt;p>In this post, you&amp;rsquo;ll learn how to use &lt;strong>OverlayFS&lt;/strong> to compose a writable version of &lt;code>/lib/modules&lt;/code>, allowing custom modules to be loaded at boot without modifying the underlying system.&lt;/p>
&lt;h3 id="why-overlayfs">Why OverlayFS?&lt;/h3>
&lt;p>&lt;a href="https://www.kernel.org/doc/html/latest/filesystems/overlayfs.html">&lt;strong>OverlayFS&lt;/strong>&lt;/a> is a union filesystem that lets you layer a writable directory over a read-only one. While it&amp;rsquo;s common in container environments, it also works great for CoreOS when you want to &amp;ldquo;extend&amp;rdquo; immutable paths like &lt;code>/lib/modules&lt;/code>.&lt;/p></description></item><item><title>KubeCon EU 2025 Recap: Kubernetes Meets AI - a New Decade of Cloud Native development</title><link>https://aleskandro.com/posts/kubecon-2025-london-recap-scheduling-autoscaling-ai-workloads-orchestration/</link><pubDate>Mon, 07 Apr 2025 00:00:00 +0000</pubDate><guid>https://aleskandro.com/posts/kubecon-2025-london-recap-scheduling-autoscaling-ai-workloads-orchestration/</guid><description>&lt;p>KubeCon + CloudNativeCon Europe 2025 just concluded in London, bringing together thousands of cloud-native engineers, maintainers, and enthusiasts. As a local Distributed Systems Engineer involved in the Kubernetes community and ecosystem, attending in person was both energizing and insightful.&lt;/p>
&lt;p>A central theme emerged across sessions: Kubernetes is rapidly evolving beyond microservices, adapting to support batch workloads, AI/ML training, HPC scenarios, and global-scale multi-cluster deployments. This shift isn&amp;rsquo;t just technical - it&amp;rsquo;s reshaping the cloud-native landscape and redefining how we think about workload orchestration, scheduling, and autoscaling.&lt;/p></description></item><item><title>No borders, no strangers - Stay Human</title><link>https://aleskandro.com/posts/no-country-borders-people-strangers/</link><pubDate>Wed, 12 Mar 2025 13:19:02 +0200</pubDate><guid>https://aleskandro.com/posts/no-country-borders-people-strangers/</guid><description>&lt;blockquote>
&lt;p>Restiamo umani (&lt;em>Vittorio Arrigoni&lt;/em>)&lt;/p>&lt;/blockquote>
&lt;p>I grew up in a small town in southern Italy as a child of the Erasmus generation. I never knew borders - not in the way past generations did. Thanks to the European Union, I could move freely, study abroad, live, and work in different countries without a passport or visa. I was never a foreigner - only a person among people.&lt;/p>
&lt;p>And yet, despite everything we have built together, despite decades of peace, unity, and progress, we are watching it unravel. Since 2008, we have seen the signs: the economic crisis, the rise of far-right movements, Covid-19, nationalism, protectionism, and militarism. Today, governments speak once again of borders, tariffs, and walls. People I meet from day to day are living the wars directly in Palestine, Israel, Ukraine. Some countries are reintroducing compulsory military service. They invest in weapons instead of education, research, and welfare - fueling conflict instead of cooperation. They are dismantling the very foundation of the EU - not just economically, but in spirit.&lt;/p></description></item><item><title>A perspective on the current and future state of Kubernetes scheduling</title><link>https://aleskandro.com/posts/kubernetes-scheduler-plugins-custom-schedulers-future/</link><pubDate>Sat, 01 Mar 2025 00:19:02 +0200</pubDate><guid>https://aleskandro.com/posts/kubernetes-scheduler-plugins-custom-schedulers-future/</guid><description>&lt;p>Kubernetes scheduling is the brain of the cluster, deciding which node runs each Pod. In this post, I explore advanced scheduling mechanisms in Kubernetes. I start with how the default scheduler works under the hood, then dive into the scheduler-plugins project for extending its capabilities. I review custom schedulers and plugins in the ecosystem that focus on cost savings, SLA optimization, and performance tuning, noting which are community-supported or vendor-specific. Finally, I look at future trends in Kubernetes scheduling, from AI-driven algorithms to multi-cluster and energy-aware schedulers. This post brings together the key ideas from the full series I wrote on Kubernetes scheduling.&lt;/p></description></item><item><title>FOSDEM 2025 Recap</title><link>https://aleskandro.com/posts/fosdem-2025-recap/</link><pubDate>Sat, 08 Feb 2025 00:19:03 +0200</pubDate><guid>https://aleskandro.com/posts/fosdem-2025-recap/</guid><description>&lt;p>&lt;a href="https://fosdem.org/2025/">FOSDEM 2025&lt;/a>, one of the largest open-source conferences globally, concluded last week, featuring an array of talks, workshops, and community events. Held annually in Brussels, Belgium, FOSDEM gathers developers, contributors, and enthusiasts from around the world to explore the latest trends, projects, and innovations in the open-source ecosystem.&lt;/p>
&lt;p>Having missed the in-person event in 2024 due to my relocation to London, I was excited to attend FOSDEM 2025 in person and reconnect with the vibrant open-source community. This year, I boarded the Eurostar from London to Brussels, eager to engage with fellow contributors, maintainers, and developers.&lt;/p></description></item><item><title>Kubernetes Scheduling: Future Trends</title><link>https://aleskandro.com/posts/kubernetes-scheduler-p5-future-trends-scheduling-autoscaling/</link><pubDate>Sat, 01 Feb 2025 00:00:00 +0000</pubDate><guid>https://aleskandro.com/posts/kubernetes-scheduler-p5-future-trends-scheduling-autoscaling/</guid><description>&lt;p>The Kubernetes scheduler is the brain of the cluster, deciding which node runs each Pod. This is the final post in a series where I explore advanced scheduling mechanisms in Kubernetes. In this one, I look ahead at emerging trends and research directions that could shape the future of Kubernetes scheduling.
I discuss how new heuristics and processing architectures, AI and machine learning could drive smarter placement decisions, how multi-cluster and federated schedulers might support global workloads, and how energy-aware scheduling could make Kubernetes more sustainable. I also explore upcoming ideas like dynamic scheduler profiles, carbon-aware policies, and new architectures for resilience and scalability. From smarter algorithms to environmental impact, Kubernetes scheduling is evolving into a platform for innovation - and the road ahead looks promising.&lt;/p></description></item><item><title>Kubernetes Scheduling: community schedulers in the ecosystem</title><link>https://aleskandro.com/posts/kubernetes-scheduler-p4-custom-plugins-ecosystem/</link><pubDate>Sun, 05 Jan 2025 00:00:00 +0000</pubDate><guid>https://aleskandro.com/posts/kubernetes-scheduler-p4-custom-plugins-ecosystem/</guid><description>&lt;p>The Kubernetes scheduler is the brain of the cluster, deciding which node runs each Pod. This is the fourth post in a series where I explore advanced scheduling mechanisms in Kubernetes. In this one, I give a broad overview of community-driven and vendor-supported custom schedulers built on top of Kubernetes. I focus on how these schedulers and plugins target specific goals like cost savings, SLA optimization, and performance tuning. I cover batch and ML-focused schedulers like Volcano, YuniKorn, and Koordinator, as well as research-driven systems like Poseidon/Firmament. I also look at cost-optimization strategies using bin-packing, spot instances, and descheduling, along with SLA-driven and topology-aware scheduling techniques. Finally, I reflect on the balance between community projects and vendor platforms, and how Kubernetes’s extensibility allows users to tailor scheduling to their workload and infrastructure needs.&lt;/p></description></item><item><title>Download O'Reilly Media EPUB books with SSO Login</title><link>https://aleskandro.com/posts/download-oreilly-media-epub-pdf/</link><pubDate>Wed, 01 Jan 2025 00:19:02 +0200</pubDate><guid>https://aleskandro.com/posts/download-oreilly-media-epub-pdf/</guid><description>&lt;p>If you have an O&amp;rsquo;Reilly Media Account, you may have noticed that - unfortunately - the platform doesn&amp;rsquo;t provide an easy way to download EPUB files for offline reading on your e-reader. While O&amp;rsquo;Reilly offers a web-based reader and mobile apps, sometimes you just want to read your books offline or on a dedicated e-reader, like a Kindle or Kobo.&lt;/p>
&lt;p>&lt;a href="https://github.com/kirinnee/oreilly-downloader/tree/main">This project&lt;/a> on GitHub provides a simple Python script on a Docker container that allows you to download your O&amp;rsquo;Reilly Media EPUB books with a single sign-on (SSO) login. This way, you can easily transfer your books to your e-reader or mobile device for offline reading.&lt;/p></description></item><item><title>Kubernetes Scheduling: the scheduler-plugins project</title><link>https://aleskandro.com/posts/kubernetes-scheduler-p3-plugins/</link><pubDate>Sat, 21 Dec 2024 00:00:00 +0000</pubDate><guid>https://aleskandro.com/posts/kubernetes-scheduler-p3-plugins/</guid><description>&lt;p>The Kubernetes scheduler is the brain of the cluster, deciding which node runs each Pod. This is the third post in a series where I explore advanced scheduling mechanisms in Kubernetes. In this one, I focus on the scheduler-plugins project by SIG Scheduling. I explain how this project extends the Kubernetes Scheduling Framework with a collection of out-of-tree plugins that enable advanced behaviors like gang scheduling, NUMA-aware placement, load-aware scoring, and more. I walk through key plugins such as Capacity Scheduling, Coscheduling, Trimaran, and Network-Aware Scheduling, and show how they solve real-world scheduling problems. I also cover how to integrate these plugins into your cluster using a custom scheduler or as a secondary scheduler, and discuss the tradeoffs of each approach.&lt;/p></description></item><item><title>Kubernetes Scheduling: the scheduling framework</title><link>https://aleskandro.com/posts/kubernetes-scheduler-p2-scheduling-framework/</link><pubDate>Sat, 16 Nov 2024 00:00:00 +0000</pubDate><guid>https://aleskandro.com/posts/kubernetes-scheduler-p2-scheduling-framework/</guid><description>&lt;p>The Kubernetes scheduler is the brain of the cluster, deciding which node runs each Pod. This is the second post in a series where I explore advanced scheduling mechanisms in Kubernetes. In this one, I give an overview of the current state of the Kubernetes scheduling framework.
I explain how Kubernetes scheduling works as a batch-oriented process that handles one Pod at a time. I walk through the evolution from the older predicates and priorities model to the modern Scheduling Framework, where each step in the scheduling cycle is an extension point for plugins. I also cover extenders, PreEnqueue plugins, and SchedulingGates, which enable more flexible and complex scheduling workflows. Finally, I highlight projects like Kueue and the Multiarch Tuning Operator that build on these features to support AI, HPC, and multi-architecture workloads.&lt;/p></description></item><item><title>Resizing the boot partition on Fedora CoreOS</title><link>https://aleskandro.com/posts/resize-boot-partition-fedora-coreos/</link><pubDate>Sun, 03 Nov 2024 00:19:02 +0200</pubDate><guid>https://aleskandro.com/posts/resize-boot-partition-fedora-coreos/</guid><description>&lt;p>This covers the issue at installation time.
After the coreos installer runs, the layout of the partitions will include something like:&lt;/p>
&lt;pre tabindex="0">&lt;code>└ # gdisk -l /dev/sda
GPT fdisk (gdisk) version 1.0.10
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 1000215216 sectors, 476.9 GiB
Model: HUGWORLD SSD 512
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 9E151132-C6B9-4E44-92FD-60DB86CCB8BE
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 1000215182
Partitions will be aligned on 16-sector boundaries
Total free space is 2669 sectors (1.3 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 4095 1024.0 KiB EF02 BIOS-BOOT
2 4096 264191 127.0 MiB EF00 EFI-SYSTEM
3 264192 786432 384.4 MiB 8300 boot
4 786833 9717247 2.4 GiB 8300 root
&lt;/code>&lt;/pre>&lt;p>The root partition will be resized to its maximum size, after the reboot. This is the best time to shift it to the right and resize the boot partition.&lt;/p></description></item><item><title>Configuration of a Samba share on Fedora CoreOS based systems to allow public and browseable shares</title><link>https://aleskandro.com/posts/samba-fedora-coreos-kinoite-silverblue-home-public-browseable-share/</link><pubDate>Fri, 01 Nov 2024 00:19:02 +0200</pubDate><guid>https://aleskandro.com/posts/samba-fedora-coreos-kinoite-silverblue-home-public-browseable-share/</guid><description>&lt;p>Configuring samba on a Fedora CoreOS based system like Fedora Kinoite or Fedora Silverblue is not so different from
the traditional, non-atomic, OS configurations, including Fedora Workstation.
The main package to install is &lt;code>samba&lt;/code>, that you can achieve with the following command:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># rpm-ostree install samba&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># systemctl enable smb nmb --now&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>If you are using CoreOS-native layering, you might want to add this package and enable the unit in your &lt;code>Containerfile&lt;/code>.&lt;/p></description></item><item><title>Kubernetes Scheduling: Under the Hood</title><link>https://aleskandro.com/posts/kubernetes-scheduler-p1-under-the-hood/</link><pubDate>Thu, 10 Oct 2024 00:00:00 +0000</pubDate><guid>https://aleskandro.com/posts/kubernetes-scheduler-p1-under-the-hood/</guid><description>&lt;p>The Kubernetes scheduler is the brain of the cluster, deciding which node runs each Pod. This post is part of a series where I explore advanced scheduling mechanisms in Kubernetes. In this part, I focus on the current state of the default scheduler.&lt;/p>
&lt;p>I walk through how the default scheduler works under the hood, breaking it down into queueing, filtering, scoring, binding, and preemption. I explain how Pods move through different queues, how the scheduler picks viable nodes, and how it scores and selects the best one. I also touch on newer features like QueueingHint and PreEnqueue plugins, and discuss how the scheduler balances performance and fairness at scale. If you&amp;rsquo;re curious about how Kubernetes makes scheduling decisions, this post offers a detailed look at the mechanisms behind it.&lt;/p></description></item><item><title>Derivate Fedora CoreOS. Integrate MicroShift. Lightweight Kubernetes for lightweight travelling</title><link>https://aleskandro.com/posts/fedora-coreos-microshift/</link><pubDate>Tue, 02 Jan 2024 00:19:02 +0200</pubDate><guid>https://aleskandro.com/posts/fedora-coreos-microshift/</guid><description>&lt;p>As I prepare to move from Italy to the United Kingdom, I&amp;rsquo;ve started reassessing not just the physical belongings I&amp;rsquo;ll bring along, but also my personal infrastructure. My goal is to travel light, so reducing both physical and digital baggage has become a priority.&lt;/p>
&lt;p>As an OpenShift contributor and enthusiast of the Kubernetes and CoreOS ecosystem, I began exploring if MicroShift—a lightweight Kubernetes distribution built from OpenShift and optimized for small form factors and edge computing—could fulfill my needs.&lt;/p></description></item><item><title>Hack the Great Firewall</title><link>https://aleskandro.com/posts/hack-the-great-firewall/</link><pubDate>Sun, 22 Oct 2023 00:19:02 +0200</pubDate><guid>https://aleskandro.com/posts/hack-the-great-firewall/</guid><description>&lt;p>Shadowsocks is a versatile open-source proxy tool designed to bypass internet censorship and provide users with secure
and private access to the internet. It works by creating an encrypted tunnel between the user&amp;rsquo;s device and a remote
server, allowing them to circumvent firewalls and access blocked content. With its lightweight and efficient design,
Shadowsocks has become a popular choice for individuals seeking to maintain anonymity and freedom while browsing the
web, particularly in regions with strict online censorship policies.&lt;/p></description></item><item><title>Beyond the Great (Fire)Wall: A Journey Through Forbidden Landscapes and Cultural Wonders</title><link>https://aleskandro.com/posts/china-travel-beijing-shanghai-huang-shan/</link><pubDate>Thu, 12 Oct 2023 00:19:02 +0200</pubDate><guid>https://aleskandro.com/posts/china-travel-beijing-shanghai-huang-shan/</guid><description>&lt;p>For years, I collaborated with Red Hat colleagues
remotely, forging connections and driving projects forward from opposite ends of the globe. But it wasn&amp;rsquo;t until my trip
to China that I finally had the opportunity to meet them in person, to put faces to names and share
experiences beyond the confines of virtual communication.&lt;/p>
&lt;p>I could meet with
my first manager, the teammate just promoted from the intern position after months of work together,
some of the historical leads and managers of the Openshift QE group.
The experience of meeting and discussing of work with them and especially having
beers, dinners, Kao Rou in particular, has been one of the most grateful times of working in my current team.
It also is the beauty of such an international way we have of organizing our teams: it is technical need
as anytime there is at least one person awake and working in the team, but it also is a way to share and
enrich our culture and knowledge by exchanging experiences and traditions from our countries.&lt;/p></description></item><item><title>A journey to an OSTree container native distributed desktop configuration system with Fedora Silverblue/Kinoite</title><link>https://aleskandro.com/posts/rpm-ostree-container-native-fedora-silverblue-kinoite-dual-boot/</link><pubDate>Mon, 12 Dec 2022 00:19:02 +0200</pubDate><guid>https://aleskandro.com/posts/rpm-ostree-container-native-fedora-silverblue-kinoite-dual-boot/</guid><description>&lt;div class="no-text">
&lt;pre class="mermaid">
flowchart TD
A("cron-like schedule")
B("manual triggers")
C("push")
D["Build BaseOS Image"]
E["Build OSContent Image"]
A --> D
B --> D
B --> E
C --> E
D --> E
&lt;/pre>
&lt;/div>
&lt;p>The traditional desktop delivery model is based on a large number of distributed PCs executing the operating system and the desktop applications.
Managing traditional desktop environments is incredibly challenging and expensive.
Tasks like installations, configuration changes, and security measures require time-consuming procedures and dedicated deskside support.
Users in the Free and Open Source Software (FOSS) community have always been keen to implement strategies for the delivery of the configuration of their systems so that they (1) can share it with the community, and (2) distribute it across multiple workstations or servers. Dotfiles and Ansible repositories are usual buzzwords for those users to respectively version specific user configurations, deliver initial system-level setup to freshly installed OSes and update existing ones. Alternatively, and especially in desktop enterprise environments leveraging multi-user desktop configuration, the delivery of the user-specific configuration can be managed through technologies like Kerberos, LDAP and Active Directory. However, the latter still needs a specific centralized model that is either not always doable and optimal or even over-killing for small configurations like single-user workstations.&lt;/p></description></item><item><title>Hello World</title><link>https://aleskandro.com/posts/hello-world/</link><pubDate>Sun, 12 Jun 2022 00:19:02 +0200</pubDate><guid>https://aleskandro.com/posts/hello-world/</guid><description>&lt;p>Yet another (Web1.0+) blog. Why should someone make a blog in 2022, after the social networks era reached (and is likely going to lose) its steady state?
After participating in KubeCon22 in Valencia, Spain, I thought of implementing it.
It&amp;rsquo;s been my first experience as a Red Hatter to get in touch with hatters in person.
I just joined Red Hat for one year, remotely, from a small town in southern Italy, in the time of COVID-19. Since then, I have known many fantastic people remotely and for reasons related to my work: contributing to the enablement of OpenShift deployments on ARM64 servers. We are good at building teams and relationships remotely. However, you don&amp;rsquo;t share coffee, a beer, or a dinner with a colleague if you work in a remote setting like ours and in a team displaced around different timezones of the Earth.
Not sharing a coffee also means that you only have a little chance to get in discussions beyond the work, even related to it but more to disguise and enjoy the possibility of knowing more through relaxed knowledge sharing.&lt;/p></description></item></channel></rss>