Episodes
Can you run databases on Kubernetes and survive to tell the story?
Or should you refrain from running stateful workloads as much as possible?
In this KubeFM episode, Steven argues that you should run databases on Kubernetes.
He also goes further and demonstrates how to build your custom operator to manage your database.
Listen to the episode and learn how:
You can use Kubebuilder and the Operator Framework to build your operator.
Custom Resources lets you create higher abstractions to manage...
Published 03/05/24
Structured Authentication Config is the most significant Kubernetes authentication system update in the last six years.
In this KubeFM episode, Maksim explains how this is going to affect you:
You can use multiple authentication providers simultaneously (e.g., Okta, Keycloak, GitLab) — no need for Dex.
You can change the configuration dynamically without restarting the API server.
You can use any JWT-compliant token for authentication.
You can use CEL (Common Expression Language) to determine...
Published 02/27/24
Is sharing a cluster with multiple tenants worth it?
Should you share or have a single dedicated cluster per team?
In this KubeFM episode, Artem revisits his journey into Kubernetes multi-tenancy and discusses how the landscapes (and opinions) on multi-tenancy have changed over the years.
Here's what you will learn:
The trade-offs of multi-tenancy and the tooling necessary to make it happen (e.g. vCluster, Argo CD, Kamaji, etc.).
The challenges of providing isolated monitoring and logging for...
Published 02/20/24
How hard could it be to debug a network issue where pod connections time out?
It could take weeks if you are (un)fortunate like Alex.
But Alex and his team didn't despair and found strength in adversity while learning several Kubernetes networking and kubespray lessons.
In this KubeFM episode, you'll follow their journey and learn:
How a simple connection refused led to debugging the kernel syscalls.
How MetalLB works and uses Dynamic Admission webhooks.
How Calico works and assigns a range...
Published 02/13/24
Pod Topology Spread Constraints is a convenient feature to control how pods are spread across your cluster among failure domains such as regions, zones, nodes, etc.
You can also choose the pod distribution (skew), what happens when the constraint is unfulfillable (schedule anyway vs don't) and the interaction with pod affinity and taints.
It's a great and straightforward feature, so what could possibly go wrong?
In this episode of KubeFM, you will follow Martin and his team's journey in...
Published 02/06/24
On average, Kubernetes nodes running on ARM instances are 20% cheaper than their AMD counterpart.
Optimising your cloud bill is tempting, but how do you seamlessly migrate existing workloads to a different architecture?
And how do you do it at scale, with more than 4000 engineers and 30 clusters in 4 regions?
In this episode of KubeFM, Thibault and Miguel explain how Adevinta built an internal platform on Kubernetes for mixed AMD and ARM workloads.
You will learn:
The challenges they faced...
Published 01/30/24
The best way to learn something is to break it or to build it yourself.
And that's precisely what Luca did to understand how Linux containers (and Docker) work: he built his own, Barco.
In this episode of KubeFM, you will learn:
Why Linux containers "don't exist" but are the product of several Linux features you can put together and configure properly to get what we know as containers.
How Kernel features such as cgroups and namespaces isolate a process.
How you can use seccomp and...
Published 01/23/24
What if Kubernetes was so easy to install and manage to be foolproof?
In this KubeFM, Mat argues that GKE is the only Kubernetes managed service that offers a beginner-friendly and thought-through experience in running a Kubernetes cluster.
Follow Mat's journey to AKS, GKE and EKS and learn:
How GKE autopilot can help you optimize costs and reduce underutilized node resources.
How the GKE container-optimized OS prevents and eliminates an entire set of security misconfigurations in node...
Published 01/16/24
Network Policy usage is inverted.
It's easier to list the services that you want to connect to, but Network Policy forces you to list all clients that can connect to your pod.
How would you even know that another team plans to connect your apps?
But if Network Policy is not the right tool, then what should you use?
In this KubeFM podcast, you will explore:
How Network Policies are not as bad as you might think, but they are low-level APIs that are not always practical to use...
Published 12/12/23
Helm is a popular tool for templating and packaging Kubernetes resources, but does it mean it's the best?
In this episode of KubeFM, Jacco draws a parallel between Helm and PHP and the similarity in which both tools became a success despite their focus on templating strings.
You will also learn:
Helm's flaws and how you can avoid them.
Alternative tools that can (partially) replace Helm.
How to manage third-party packages and templating internal YAML resources.
Jacco shared several examples...
Published 12/05/23
By default, Kubernetes Secrets are not encrypted; values are merely base64 encoded.
And this is fine — at least, this is what Mac argues in this episode of KubeFM.
Mac says it all comes down to thinking strategically about security and where the Secrets could be leaked.
In this episode, you will learn:
How to define a threat model to inform your security posture and mitigations.
How Kubernetes Secrets offer sufficient guarantees for most common threat models.
If you should use Hashicorp Vault...
Published 11/28/23
What does it take to build a Kubernetes cluster on bare metal?
In this episode of KubeFM, you will learn how to plan and execute a successful setup for a bare-metal Kubernetes cluster.
You will follow Mathias' journey as he rebuilt his cluster several times and learn how to:
Identify dependencies and priorities between components to avoid incidents in the future.
Leverage FluxCD to have a predictable and documented setup.
Secure the nodes from external traffic with firewalls and Cilium...
Published 11/21/23
Should every project start with Kubernetes?
And if not, when is the right time to switch without incurring (unbearable) technical debt?
In this episode of KubeFM, you will learn how the team at Loovatech designed an app from scratch and decided to use Docker Compose to host their infrastructure cheaply and effectively in a single virtual machine.
As the project grew, the team had to make the difficult choice to rearchitect their infrastructure and plan for scalability and fault...
Published 11/14/23
How do you upgrade a Kubernetes cluster to the latest release without breaking anything?
And what if you had to upgrade hundreds of clusters simultaneously?
In this episode, Pierre explains the process, tooling and testing strategy in upgrading clusters at scale.
You will learn:
How the team at Qovery keeps updated with the latest (vanilla) Kubernetes changes and managed services changelogs.
How to upgrade Helm charts gradually and safely. Pierre has some tips for Custom Resource Definitions...
Published 10/31/23
Are logs enough to troubleshoot your deployment and infrastructure?
Perhaps, but there's a better way to observe, monitor and debug your stack: embracing observability.
In this episode, Adriana explains how she learned to love Open Telemetry and:
How you can combine Traces, Metrics and logs to really understand the root cause of your production issues.
What the Open Telemetry Collector is, and how it can simplify the ingestion of traces, logs and metrics without tying you into a particular...
Published 10/17/23
Follow Gazal's journey as he shares the lessons learned in adopting, rolling out and scaling EKS clusters at Target Australia over seven years.
You will learn:
What is Bottlerocket OS.
How Bottlerocket helps with securing your workloads.
Karpenter as an alternative to the Cluster Autoscaler.
How Karpenter can efficiently schedule and de-provision workloads.
Gazal hinted at a 40% reduction in compute capacity when combining Bottlerocket OS and Karpenter (and 30% lower response...
Published 10/10/23
How do you scale your pods on queue length?
In this episode, you will learn:
How KEDA simplifies autoscaling in Kubernetes thanks to its vast collection of metrics collectors (i.e. scalers).
Jorge's journey in tech: how he levelled up from passing wires as an electrician to learning Go and becoming a KEDA maintainer.
Two must-try KEDA scalers: the HTTP add-on to scale to zero and the Carbon-aware scaler for reducing your carbon footprint.
You will also dive into what it takes to maintain a...
Published 10/02/23
TL;DR: Learn the most exciting changes that made it to Kubernetes 1.28 from Grace — the Kubernetes release lead.
Kubernetes 1.28 brought us a few notable changes:
Sidecar containers are officially recognised as a container (not just a container pattern).
Pods from StatefulSet no longer get stuck into Terminating if a node is lost unexpectedly.
Validating Admission Policy graduates to Beta.
This podcast addresses the new features and dives into what it takes to release a new Kubernetes...
Published 09/18/23