Skip to content

Kubernetes Troubleshooting

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

Introduction

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!