All Projects → digitalocean → doks-debug

digitalocean / doks-debug

Licence: MIT license
A Docker image with Kubernetes manifests for investigation and troubleshooting.

Programming Languages

Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to doks-debug

React Performance Observer
Get performance measurements from React Fiber
Stars: ✭ 207 (+152.44%)
Mutual labels:  debug
Simple Pt
Simple Intel CPU processor tracing on Linux
Stars: ✭ 232 (+182.93%)
Mutual labels:  debug
UnityCLI
Unity TCP CLI communication for debugging
Stars: ✭ 22 (-73.17%)
Mutual labels:  debug
Bugsnag Ruby
Bugsnag error monitoring & reporting software for rails, sinatra, rack and ruby
Stars: ✭ 211 (+157.32%)
Mutual labels:  debug
Kint
Kint - a powerful and modern PHP debugging tool.
Stars: ✭ 2,582 (+3048.78%)
Mutual labels:  debug
Gulp Strip Debug
Strip console, alert, and debugger statements from JavaScript code
Stars: ✭ 242 (+195.12%)
Mutual labels:  debug
The Front End Knowledge You May Not Know
😇 你可能不知道的前端知识点
Stars: ✭ 2,238 (+2629.27%)
Mutual labels:  debug
gdbundle
Minimalist plugin manager for GDB and LLDB
Stars: ✭ 72 (-12.2%)
Mutual labels:  debug
Pysnooper
Never use print for debugging again
Stars: ✭ 14,815 (+17967.07%)
Mutual labels:  debug
fastapi-debug-toolbar
A debug toolbar for FastAPI.
Stars: ✭ 90 (+9.76%)
Mutual labels:  debug
Iosdebugdatabase
make it easy to debug databases in iOS applications iOS debug database
Stars: ✭ 219 (+167.07%)
Mutual labels:  debug
Icecream Cpp
🍦 Never use cout/printf to debug again
Stars: ✭ 225 (+174.39%)
Mutual labels:  debug
awaitwhat
Await, What?
Stars: ✭ 48 (-41.46%)
Mutual labels:  debug
Icecream
🍦 Never use print() to debug again.
Stars: ✭ 5,601 (+6730.49%)
Mutual labels:  debug
vscode
VSCode debug extension for probe-rs. It uses the MS DAP protocol to communicate directly with the probe (via probe-rs), and supports basic command line debugging in addition to VSCode UI.
Stars: ✭ 45 (-45.12%)
Mutual labels:  debug
Magicshader
🔮 Tiny helper for three.js to debug and write shaders
Stars: ✭ 205 (+150%)
Mutual labels:  debug
Cli Debugging Cheatsheets
🔥 Collection of command-line debugging cheatsheets for multiple languages and runtimes
Stars: ✭ 239 (+191.46%)
Mutual labels:  debug
debugging-async-operations-in-nodejs
Example code to accompany my blog post on debugging async operations in Node.js.
Stars: ✭ 22 (-73.17%)
Mutual labels:  debug
arm-hard-fault-handler
What to do when Hard fault hits? Debugger and error reporter solution for ARM Cortex M3 and M4.
Stars: ✭ 32 (-60.98%)
Mutual labels:  debug
alog
Update: use loguru instead. Simple straight logging your Python code
Stars: ✭ 38 (-53.66%)
Mutual labels:  debug

A Docker image with Kubernetes manifests for investigation and troubleshooting your cluster.

main build main release

Purpose

The DOKS team provides this image for use as-is and for transparency as the image used when a request to "deploy a debug pod" is made to our customers, which may occur when deeper investigation is needed with direct access to a cluster.

Usage

kubectl apply -f k8s/daemonset.yaml

This DaemonSet manifest will:

  1. Ensure a pod with our Docker image is running indefinitely on every node.
  2. Use hostPID, hostIPC, and hostNetwork.
  3. Mount the entire host filesystem to /host in the containers.
  4. Mount /var/run/docker.sock from the host.

In order to make use of these workloads, you can exec into a pod of choice by name:

kubectl -n kube-system exec -it my-pod-name bash

If you know the specific node name that you're interested in, you can exec into the debug pod on that node with:

NODE_NAME="my-node-name"
POD_NAME=$(kubectl -n kube-system get pods --field-selector spec.nodeName=${NODE_NAME} -ojsonpath='{.items[0].metadata.name}')
kubectl -n kube-system exec -it ${POD_NAME} bash

Once you're in, you have access to the set of tools listed in the Dockerfile. This includes:

  • vim - is a greatly improved version of the good old UNIX editor Vi.
  • screen - is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells.
  • curl - is a command-line tool for transferring data specified with URL syntax.
  • jq - is a lightweight and flexible command-line JSON processor.
  • dnsutils - includes various client programs related to DNS that are derived from the BIND source tree, specifically dig, nslookup, and nsupdate.
  • iputils-ping - includes the ping tool that sends ICMP ECHO_REQUEST packets to a host in order to test if the host is reachable via the network.
  • tcpdump - a powerful command-line packet analyzer; and libpcap, a portable C/C++ library for network traffic capture.
  • traceroute - tracks the route packets taken from an IP network on their way to a given host.
  • net-tools - includes the important tools for controlling the network subsystem of the Linux kernel, specifically arp, ifconfig, and netstat.
  • netcat - is a multi-tool for interacting with TCP and UDP; it can open TCP connections, send UDP packets, listen on arbitrary TCP and UDP ports, do port scanning, and deal with both IPv4 and IPv6.
  • iproute2 - is a collection of utilities for controlling TCP / IP networking and traffic control in Linux.
  • strace - is a diagnostic, debugging and instructional userspace utility with a traditional command-line interface for Linux. It is used to monitor and tamper with interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state.
  • docker - is the CLI tool used for interacting with Docker containers on the system.
  • dstat - is a versatile replacement for vmstat, iostat, netstat and ifstat. Dstat overcomes some of their limitations and adds some extra features, more counters and flexibility. Dstat is handy for monitoring systems during performance tuning tests, benchmarks or troubleshooting.
  • htop - is interactive process viewer for Unix systems.
  • atop - is an advanced interactive monitor for Linux-systems to view the load on system-level and process-level.

Tips and Tricks

chroot + systemctl

chroot /host /bin/bash
systemctl status kubelet
journalctl -xe
journalctl -u kubelet

Contributing

At DigitalOcean we value and love our community! If you have any issues or would like to contribute, feel free to open an issue or PR and cc any of the maintainers.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].