sloop - Kubernetes History Visualization
Sloop monitors Kubernetes, recording histories of events and resource state changes and providing visualizations to aid in debugging past events.
Key features:
- Allows you to find and inspect resources that no longer exist (example: discover what host the pod from the previous deployment was using).
- Provides timeline displays that show rollouts of related resources in updates to Deployments, ReplicaSets, and StatefulSets.
- Helps debug transient and intermittent errors.
- Allows you to see changes over time in a Kubernetes application.
- Is a self-contained service with no dependencies on distributed storage.
Screenshots
Architecture Overview
Install
Sloop can be installed using any of these options:
Precompiled Binaries
DockerHub images coming soon.
Helm Chart
Helm chart coming soon.
Build from Source
Building Sloop from source needs a working Go environment with version 1.13 or greater installed.
Clone the sloop repository and build using make
:
$ mkdir -p $GOPATH/src/github.com/salesforce $ cd $GOPATH/src/github.com/salesforce $ git clone https://github.com/salesforce/sloop.git $ cd sloop $ make $ ~/go/bin/sloop
When complete, you should have a running Sloop version accessing the current context from your kubeConfig. Just point your browser at http://localhost:8080/
Other makefile targets:
- docker: Builds a Docker image.
- cover: Runs unit tests with code coverage.
- generate: Updates genny templates for typed table classes.
- protobuf: Generates protobuf code-gen.
Local Docker Run
To run from Docker you need to host mount your kubeconfig:
$ make docker $ docker run --rm -it -p 8080:8080 -v ~/.kube/:/kube/ -e KUBECONFIG=/kube/config sloop
In this mode, data is written to a memory-backed volume and is discarded after each run. To preserve the data, you can host-mount /data with something like -v /data/:/some_path_on_host/
Contributing
Refer to CONTRIBUTING.md
License
BSD 3-Clause
from Hacker News https://github.com/salesforce/sloop
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.