Skip to content

Kubernetes Troubleshooting

  1. Introduction
  2. Kubernetes Events
  3. Kubernetes Network Troubleshooting
  4. Exit Codes in Containers and Kubernetes
  5. ImagePullBackOff
  6. CrashLoopBackOff
  7. Failed to Create Pod Sandbox
  8. Terminated with exit code 1 error
  9. Pod in Terminating or Unknown Status
  10. OOM Kills
  11. Pause Container
  12. Preempted Pod
  13. Evited Pods
  14. Stuck Namespace
  15. Access PVC Data without the POD
  16. CoreDNS issues
  17. Debugging Techniques and Strategies. Debugging with ephemeral containers
  18. Troubleshooting Tools
    1. Komodor
    2. Palaemon
    3. cdebug and debug-ctr
    4. kubectl-debug
    5. Kubeshark
  19. Slides
  20. Images
  21. Tweets

Introduction

Kubernetes Events

Kubernetes Network Troubleshooting

Exit Codes in Containers and Kubernetes

ImagePullBackOff

CrashLoopBackOff

Failed to Create Pod Sandbox

Terminated with exit code 1 error

Pod in Terminating or Unknown Status

OOM Kills

Pause Container

Preempted Pod

Evited Pods

Stuck Namespace

Access PVC Data without the POD

CoreDNS issues

Debugging Techniques and Strategies. Debugging with ephemeral containers

Troubleshooting Tools

  • github.com/replicatedhq/troubleshoot Troubleshoot is a framework for collecting and analyzing diagnostic information about a Kubernetes cluster. The framework is customizable and allows third-party application developers to create troubleshoot specs that can be run by cluster operators.
  • github.com/airwallex: k8s-pod-restart-info-collector k8s-pod-restart-info-collector is a simple Kubernetes customer controller that watches for Pods changes and collects K8s Pod restart reasons, logs, and events to Slack channels when a Pod restarts

Komodor

Palaemon

cdebug and debug-ctr

  • iximiuz/cdebug a swiss army knife of container debugging. It’s like “docker exec”, but it works even for containers without a shell (scratch, distroless, slim, etc). The “cdebug exec” command allows you to bring your own toolkit and start a shell inside of a running container.
  • felipecruz91/debug-ctr A commandline tool for interactive troubleshooting when a container has crashed or a container image doesn’t include debugging utilities, such as distroless images. Heavily inspired by kubectl debug, but for containers instead of Pods.

kubectl-debug

  • github.com/JamesTGrant/kubectl-debug kubectl-debug is a tool that lets you debug a target container in a Kubernetes cluster by automatically creating a new, non-invasive, ‘debug’ container in the same PID, network, user, and IPC namespace as the target container without any disruption

Kubeshark

Slides

Click to expand!

Images

Click to expand!

learnk8s debug your pods

Tweets

Click to expand!