Kubernetes Konnectivity xfr-channel-size Configuration

Kubernetes Konnectivity xfr-channel-size Configuration I have often encountered situations where network connectivity between the API server and cluster nodes becomes complicated. Firewalls, network policies, and VPC configurations can block direct communication. This is where Konnectivity comes in. It provides a network proxy system that tunnels traffic through these barriers. During my work with Konnectivity, I encountered the warning message Receive channel from agent is full in my cluster logs. I asked the Kubernetes community for help but didn’t receive a response. I also couldn’t find any documentation explaining what this warning meant or how to fix it, or even any documentation about this component :(. So, this led me to reading the source code to understand what xfr-channel-size actually does, which controls data buffering, and getting it right can make a difference in how your cluster performs under load. ...

February 7, 2026 · 8 min · Burak Sekili

Let's Build a CNI Plugin! From Linux Networking to CNI

This blog post is a collection of my personal notes on networking. For a long time, I had to jump between different notebooks to connect concepts; from core networking theory, to Linux internals, all the way up to Kubernetes and CNI. This post is my attempt to combine all those notes into a single, logical document. We’ll follow a step-by-step path. We’ll start with fundamental network concepts, then see how those are implemented in Linux, which is the foundation for most modern virtual networking. Finally, we’ll see how Kubernetes builds on top of it all. ...

November 9, 2025 · 70 min · Burak Sekili

Notes on i-nodes, File Descriptors, and Sockets

I’ve always found the best way to learn something is to try and write it down. This post is the result of that process, a collection of my personal notes (zettelkasten) aimed at connecting the dots between three fundamental concepts in Linux: inodes, file descriptors, and sockets. So, this post is just a cleaned-up version of my personal notes, explaining how inodes (representing files on disk), file descriptors (used by programs), and sockets (for network communication) all fit together. ...

September 6, 2025 · 9 min · Burak Sekili

Kubernetes Client-Side Indexing

Kubernetes Client-Side Indexing This post is part of Kubernetes controller development. Check out the first part on Diving into controller-runtime | Manager if you are interested in controller-runtime. When working with Kubernetes Operators, read requests (get and list) to the Kubernetes API server are handled by an in-memory cache that is maintained by client-go to reduce the load on your API server. This cache can be enhanced with indexes to retrieve resources more efficiently. ...

October 27, 2024 · 15 min · Burak Sekili

Thread Pooling in Rust

A thread pool is a software design pattern where a set of worker threads is created to execute tasks concurrently. Instead of creating a new thread for each task, which can be resource-intensive, tasks are submitted to the pool and executed by available worker threads. This blog post will go through a simple thread pool implementation - similar to the one in Rust book - with a couple of simple enhancements. ...

September 6, 2024 · 13 min · Burak Sekili