In this KubeFM episode, Alexander Block delves into the intricacies of Kubernetes templating and deployment tools, sharing his journey from frustration with existing solutions to creating his tool, kluctl.
Alex also discusses the challenges and solutions in Kubernetes templating and deployment, emphasizing the need for more adaptable tools in the Kubernetes ecosystem.
You will learn:
- The fundamental flaws of Helm and how they impact Kubernetes deployments and tools packaging.
- How tools such as Kustomize, CUE, jsonnet are only a partial solution to templating.
- Alternatives to Helm and the future of Kubernetes resource templating and distribution.
Watch (or listen to) it here: https://kube.fm/kluctl-templating-codablock
With the rapid pace of the cloud-native ecosystem, staying current with Kubernetes updates and managing upgrades becomes a daunting task for many organizations.
In this KubeFM episode, Mat discusses the necessity of long-term support for Kubernetes and explores the intricacies of managing Kubernetes upgrades in a fast-evolving landscape.
You will learn:
- The importance of long-term support (LTS) for Kubernetes and how it can alleviate the challenges associated with the platform's rapid release cycles.
- Strategies for managing Kubernetes upgrades, including insights into the release cycle and the potential pitfalls of the upgrading process.
- The role of managed services and semi-automatic upgrades in simplifying Kubernetes maintenance for organizations, especially in cost optimization and resource constraints.
- The implications of charging for support of older Kubernetes versions and the potential for a community-based approach to navigating the complexities of Kubernetes upgrades.
Watch (or listen to) it here: https://kube.fm/kubernetes-lts-mat
Ensuring the repeatability of your infrastructure is a crucial aspect of managing Kubernetes clusters.
This allows you to swiftly tear down and set up a new one, a practice that is quite handy.
However, there are exceptional circumstances when your cluster becomes more than a disposable tool.
Dan shared, "A Kubernetes cluster will be treated as disposable until you deploy ingress, and then it becomes a pet."
In this episode, you will delve into the concept of 'disposable' and 'pet' Kubernetes clusters and learn:
- How you can use GitOps to create a repeatable infrastructure that syncs.
- How resources such as the Ingress and external-dns require careful maintenance and monitoring to make your cluster special.
- How Crossplane and vCluster help you define repeatable environments that are disposable.
- All the flavours for Argo: Workflows, Autopilot, CD, etc., and "Project" a newer abstraction to manage apps across environments.
Watch (or listen to) it here: https://kube.fm/ingress-gitops-dan
Service meshes and the community's opinion of them have changed drastically over the years.
From being perceived as unnecessary, complicated and bloated, they matured into security and observability powerhouses (while still retaining much of their complexity).
In this KubeFM episode, William deep dives into the world of service meshes and explains a few of the technical choices and trade-offs of service meshes in simple terms.
You will learn:
- What is a service mesh and its design (i.e. control plane and data plane).
- How Ambient mesh departs from the traditional sidecar model and how it affects reliability and security.
- Why there's more than just eBPF in sidecarless service meshes and the limitation of this technology.
- The direct costs (compute) and human factors involved in operating a service mesh.
Watch (or listen to) it here: https://kube.fm/service-mesh-william
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 your infrastructure as code.
- Steven's operator manages hundreds of databases at scale at QuestDB.
Watch (or listen to) it here: https://kube.fm/operators-steven
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:
1. You can use multiple authentication providers simultaneously (e.g., Okta, Keycloak, GitLab) — no need for Dex.
2. You can change the configuration dynamically without restarting the API server.
3. You can use any JWT-compliant token for authentication.
4. You can use CEL (Common Expression Language) to determine whether the token's claims match the user's attributes in Kubernetes (username, group).
Watch (or listen to) it here: https://kube.fm/structured-authentication-maksim
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 tenants.
- How to design and architect a platform on Kubernetes to optimise your developer's experience.
Watch (or listen to) it here: https://kube.fm/multitenancy-artem
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 of IP addresses to pods (and what you should watch out for).
- How to use `tcpdump` and `strace` to debug network traffic.
Watch (or listen to) it here: https://kube.fm/troubleshooting-kernel-alex
What are Pod Topology Spread Constraints, and why are they useful to ensure high availability for your apps?
In this episode of KubeFM, you will follow Martin and his team's journey in discovering and fixing a production incident (on a Friday afternoon) due to a pod topology spread constraint misconfiguration.
You will also learn:
- What are Pod Topology Spread Constraints, and how to use them?
- How unfulfillable scheduling requirements could lead to un-schedulable pods.
- How to detect and alert on unscheduled pods.
Watch (or listen to) it here: https://kube.fm/pod-topology-martin
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 discovering and fixing a production incident (on a Friday afternoon) due to a misconfiguration.
You will also learn:
- What are Pod Topology Spread Constraints, and how to use them?
- How unfulfillable scheduling requirements could lead to un-schedulable pods.
- How to detect and alert on unscheduled pods.
- How to manage your team during an incident to keep them calm and focused.
Watch (or listen to) it here: https://kube.fm/pod-topology-martin
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 1500 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 with validating containers for mixed architecture with a mutating webhook and the open source solution they came up with: noe.
- Building an internal platform requires careful planning and designing simple interfaces that are backwards compatible.
- How to not DDoS your container registries.
Watch it here: https://kube.fm/arm-nodes-thibault-miguel
How do Linux containers work?
And how do you build a tool like Docker?
Luca decided to find out and built his own container engine from scratch: 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 capabilities to secure the container.
- How to make the right syscall from C to build your own container engine.
Watch it here: https://kube.fm/barco-luca
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 capabilities to secure the container.
- How to make the right syscall from C to build your own container engine.
Watch it here: https://kube.fm/barco-luca
A good way to start some controversy in the Kubernetes ecosystem is to discuss the differences, the pros and cons, and the trade-offs between AKS, EKS, and GKE.
In this episode of KubeFM, Mathew Duggan explains how GKE is perhaps a better choice because of its developer experience.
🎙Bart "Master of Surprises" Farrell follows Mat's journey into AKS, GKE and EKS to discover:
- 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 management.
- How GCP's application of machine learning on the IAM permissions can help you gradually refine security permissions as applications are deployed.
Watch it here: https://kube.fm/foolproof-gke-mat
Listen on:
- Apple Podcast https://kube.fm/apple
- Spotify https://kube.fm/spotify
- Amazon Music https://kube.fm/amazon
- Overcast https://kube.fm/overcast
- Pocket casts https://kube.fm/pocket-casts
- Deezer https://kube.fm/deezer
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 (CRDs).
- How to test API deprecations with end-to-end testing.
- How to automate the process of upgrading clusters.
You will also learn from Pierre's experience in managing stateful applications in Kubernetes with 4500 nodes on bare metal.
Watch it here: https://kube.fm/upgrading-100s-clusters-pierre
Listen on:
- Apple Podcast https://kube.fm/apple
- Spotify https://kube.fm/spotify
- Amazon Music https://kube.fm/amazon
- Overcast https://kube.fm/overcast
- Pocket casts https://kube.fm/pocket-casts