k8sviz is a tool to generate Kubernetes architecture diagrams from the actual state in a namespace. Currently, this only generates a diagram similar to https://github.com/kubernetes/community/tree/master/icons#usage-example by using graphviz. For examples of the generated diagrams, see Examples below.
k8sviz.sh
is implemented as bash script and depends on below commands:
- awk
- bash
- cat
- dot (graphviz)
- getopt
- grep
- kubectl
- sed
- seq
- tr
Just git clone this repository or copy k8sviz.sh
file and icons
directory with keeping directory structure.
$ ./k8sviz.sh --help
Generate Kubernetes architecture diagrams from the actual state in a namespace
Usage:
k8sviz.sh [options]
Options:
-h, --help Displays the help text
-n, --namespace The namespace to visualize. Default is default
-o, --outfile The filename to output. Default is k8sviz.out
-t, --type The type of output. Default is dot
- Generate dot file for namespace
default
$ ./k8sviz.sh -n default -o default.dot
- Generate png file for namespace
default
$ ./k8sviz.sh -n default -t png -o default.png
- Output for an example wordpress deployment will be like below:
- Output for an example cassandra deployment with statefulset will be like below:
Examples for more complex deployment (kubeflow case)
- Generate dot file for namespace
kubeflow
andistio-system
$ ./k8sviz.sh -n kubeflow -o examples/kubeflow/kubeflow.dot
$ ./k8sviz.sh -n istio-system -o examples/kubeflow/istio-system.dot
- Generate png file for namespace
kubeflow
andistio-system
$ ./k8sviz.sh -n kubeflow -t png -o examples/kubeflow/kubeflow.png
$ ./k8sviz.sh -n istio-system -t png -o examples/kubeflow/istio-system.png
This project is licensed under the Apache License - see the LICENSE file for details