Tutorial
Hans Kristian Flaatten & Zach Wachtel
- Date
- Runtime
- 1:28:33
- Share
About this video
What You'll Learn
- Debug cluster access problems by checking kubeconfig endpoints, kubelet and API server logs, and transport socket errors.
- Identify broken control-plane components by removing stale encryption provider config and validating etcd and control-plane health.
- Locate performance kill-switches in cron jobs, disable harmful system services, and restore startup with Cilium and Kyverno fixes.
Hans Kristian Flaatten and Zach Wachtel tackle two broken Kubernetes clusters, debugging a bad kubeconfig IP, an encryption provider config, a disk IO throttle cron job, plus Kyverno webhooks and a Cilium egress policy.
Jump to a chapter
View 39 chapters
- 2:41 Introduction
- 2:58 Guest Introductions (Hans & Zach)
- 3:56 Discussion on Breaking Kubernetes Clusters
- 5:13 Show Mechanics & Sponsors (Teleport, Equinix Metal)
- 5:50 Starting with Zach's Cluster (Hans Fixes First)
- 6:08 Teleport Connection Issues Debugging
- 9:55 Hans Shares Screen & Initial Cluster Access
- 10:16 Inspecting KubeConfig (Wrong IP Address)
- 12:11 Checking Kubelet Status and Logs
- 13:28 Debugging API Server Logs (Socket Error)
- 15:40 Examining Kube API Server Static Pod Manifest
- 17:55 Investigating Encryption Config File
- 19:06 Removing Encryption Config Reference
- 20:25 API Server Logs: Etcd Timeout Errors
- 21:30 Slow kubectl Commands and Pod CrashLoopBackOff
- 30:21 Diagnosing Slowness (Hint: Etcd/IO)
- 35:11 Identifying Suspicious Defunct Process
- 44:56 Discovering the IO Throttle Script
- 45:56 Disabling the Throttle Systemd Service
- 46:47 Cluster Control Plane Recovery
- 48:20 Pods Pending, Cilium CrashLoopBackOff
- 49:09 Attempting to Deploy Custard v2
- 50:09 Zach's Cluster Fixed
- 51:07 Starting Hans' Cluster (Zach Fixes Second)
- 51:12 Zach Takes Over Screen Sharing
- 53:27 Hans' Cluster: Pod CrashLoopBackOff & Slow kubectl
- 55:08 Identifying Mutating Webhooks (Kyverno Annotations)
- 57:06 Removing Kyverno (Dealing with Finalizers)
- 59:03 Post-Kyverno Status & Custard Service Issue
- 59:29 Database Failure & DNS Resolution Error
- 1:21:32 Checking Network Policies
- 1:22:39 Discovering and Deleting Cilium Egress Policy
- 1:23:07 Pod Still CrashLooping (App Check Error)
- 1:24:38 App-Level Check: v2 Image Already Present
- 1:25:30 Forcing Image Pull Policy Always
- 1:25:50 Hans' Cluster Fixed
- 1:26:02 Recap of the Breaks Found
- 1:26:24 Cron Job Location Revealed
- 1:26:45 Conclusion and Thanks
Technologies featured
Meet the Cast
Comments and resources
Comments
Loading comment...
Loading text content...
Loading comment...
Loading text content...
Loading comment...
Loading text content...
Additional Resources
More from Klustered
View all 45 episodes Rawkode Academy newsletter
Academy publications by email
Get an email when Rawkode Academy publishes new tutorials, articles, and videos.
Loading email signup. If it does not load, manage email preferences in account settings.