- Kubernetes Icons Set provides icons to standardize Kubernetes architecture diagrams for presentation. Having uniform architecture diagrams improve understandibility.
-
CloudSkew: https://www.cloudskew.com
-
Creately: https://creately.com
-
Draw.io: https://www.drawio.com
-
Hyperglance: https://www.hyperglance.com/platforms/kubernetes/
-
Layer5: https://layer5.io/cloud-native-management/generate-kubernetes-architecture-diagram
-
Lucidchart: https://www.lucidchart.com
-
Moqups: https://moqups.com/templates/mapping-and-diagramming/network-diagrams/kubernetes-diagram/
-
Terrastruct: https://terrastruct.com
-
a lot of others!
-
Diagrams: https://github.com/mingrammer/diagrams
-
Diagrams as code: https://github.com/dmytrostriletskyi/diagrams-as-code
-
Kubernetes-PlantUML: https://github.com/dcasati/kubernetes-PlantUML
-
a few others!
-
KubeDiagrams: https://github.com/philippemerle/KubeDiagrams
- Generate Kubernetes architecture diagrams from Kubernetes manifest files, kustomization files, Helm charts, helmfiles, and actual cluster state. The main originality of KubeDiagrams is its configurability allowing for instance to deal with custom Kubernetes resources.
- Popularity:
- Activity:
- Implementation: Python with Diagrams, and JavaScript
- Usage mode: CLI, GUI, and SaaS
- Input formats: K8s manifests, kustomization files, Helm charts, helmfiles, and K8s API
- 47+ Kubernetes resource kinds supported
- KIS supported
- Resource clustering based on namespaces, labels, and annotations
- Output formats: PNG, JPG, GIF, TIFF, SVG, PDF, DOT, and draw.io
-
KubeView: https://github.com/benc-uk/kubeview
- Kubernetes cluster visualiser and graphical explorer
- Popularity:
- Activity:
- Implementation: JavaScript and Go
- Usage mode: GUI
- Input formats: K8s API
- Supported Kubernetes resources
- ConfigMap
- CronJob
- DaemonSet
- Deployment
- Endpoints
- Ingress
- Job
- Namespace
- PersistentVolumeClaim
- Pod
- ReplicaSet
- Secret
- Service
- StatefulSet
- KIS supported
- Resource clustering unsupported
- Output formats: Web pages
-
kubectl-graph: https://github.com/steveteuber/kubectl-graph
- A kubectl plugin to visualize Kubernetes resources and relationships
- Popularity:
- Activity:
- Implementation: Go
- Usage mode: CLI
- Input formats: K8s API
- Supported Kubernetes resources
- Endpoints
- Ingress
- Namespace
- NetworkPolicy
- Node
- Pod
- Route
- Service
- any other kinds
- KIS unsupported
- Resource clustering unsupported
- Output formats: AQL, ArangoDB, CQL, Cypher, DOT, and Mermaid
-
Lens Resource Map: https://github.com/nevalla/lens-resource-map-extension
- An extension for Lens - The Kubernetes IDE that displays Kubernetes resources and their relations as a real-time force-directed graph
- Popularity:
- Activity:
- Implementation: TypeScript
- Usage mode: GUI
- Input formats: K8s API
- Supported Kubernetes resources
- ConfigMap
- DaemonSet
- Deployment
- Ingress
- PersistentVolumeClaim
- Pod
- Secret
- Service
- StatefulSet
- KIS supported
- Resource clustering unsupported
- Output formats: Web pages
-
k8sviz: https://github.com/mkimuram/k8sviz
- Generate Kubernetes architecture diagrams from the actual state in a namespace
- Popularity:
- Activity:
- Implementation: Go and Graphviz
- Usage mode: CLI
- Input formats: K8s API
- Supported Kubernetes resources
- CronJob
- DaemonSet
- Deployment
- HorizontalPodAutoscaler
- Ingress
- Job
- Namespace
- PersistentVolumeClaim
- Pod
- ReplicaSet
- Service
- StatefulSet
- KIS supported
- Resource clustering based on namespaces
- Output formats: all Graphviz output formats
-
Kubernetes diagrams: https://github.com/trois-six/k8s-diagrams
- Create diagrams from the Kubernetes API with go-diagrams
- Popularity:
- Activity:
- Implementation: Go
- Usage mode: CLI
- Input formats: K8s API
- Supported Kubernetes resources
- DaemonSet
- Deployment
- Ingress
- Namespace
- Pod
- ReplicaSet
- Service
- StatefulSet
- KIS supported
- Resource clustering based on namespaces and
ReplicaSetowners - Output formats: DOT only
-
GruCloud: https://github.com/grucloud/grucloud
- Generate code and diagrams from cloud infrastructures: AWS, Azure, GCP, Kubernetes
- Popularity:
- Activity:
- Implementation: JavaScript
- Usage mode: CLI
- Input formats: JavaScript IaC
- Supported Kubernetes resources
- ConfigMap
- ClusterRole
- ClusterRoleBinding
- Deployment
- Ingress
- Namespace
- PersistentVolume
- PersistentVolumeClaim
- Role
- RoleBinding
- Secret
- Service
- ServiceAccount
- StatefulSet
- KIS unsupported
- Resource clustering unsupported
- Output formats: PlantUML
-
k8s-to-mermaid: https://github.com/sommerit/k8s-to-mermaid
- This script parses Kubernetes YAML files and generates a Mermaid class diagram that visualizes the resources and their relationships within a Kubernetes cluster
- Popularity:
- Activity:
- Implementation: Python
- Usage mode: CLI
- Input formats: K8s manifests
- Supported Kubernetes resources
- ConfigMap
- CronJob
- DaemonSet
- Deployment
- HorizontalPodAutoscaler
- Ingress
- Job
- NetworkPolicy
- PersistentVolumeClaim
- Pod
- ReplicaSet
- Secret
- Service
- StatefulSet
- KIS unsupported
- Resource clustering unsupported
- Output formats: Mermaid
-
K8s Diagram architecture generator: https://github.com/kocierik/k8s-to-diagram
- Generate a diagram architecture from kubernetes manifests
- Popularity:
- Activity:
- Implementation: Go and D2
- Usage mode: CLI
- Input formats: K8s manifest annotations
- Supported Kubernetes resources
- ConfigMap
- Deployment
- Ingress
- PersistentVolume
- PersistentVolumeClaim
- Pod
- Secret
- Service
- StatefulSet
- KIS unsupported
- Resource clustering unsupported
- Output formats: SVG and PNG
-
react-k8s-viewer: https://github.com/SocialGouv/react-k8s-viewer
- Render diagrams from your kubernetes manifests
- Popularity:
- Activity:
- Implementation: TypeScript
- Usage mode: GUI
- Input formats: K8s manifests
- Supported Kubernetes resources
- ConfigMap
- CronJob
- Deployment
- Ingress
- Job
- SealedSecret
- Secret
- Service
- ServiceMonitor
- KIS unsupported
- Resource clustering unsupported
- Output formats: React Flow
-
K8s Diagram Previewer: https://github.com/jimmymills/k8s-diagram-previewer
- Diagram generator for Kubernetes manifests
- Popularity:
- Activity:
- Implementation: Python with Diagrams
- Usage mode: CLI
- Input formats: K8s manifests and Helm charts
- Supported Kubernetes resources
- ConfigMap
- CronJob
- DaemonSet
- Deployment
- Ingress
- Job
- PersistentVolumeClaim
- Pod
- Secret
- Service
- StatefulSet
- KIS supported
- Resource clustering based on namespaces,
DeploymentandReplicaSetowners - Output formats: PNG, JPG, SVG, PDF, and DOT
-
k8s-diagrams: https://github.com/imjoseangel/k8s-diagrams
- Creates graphviz diagrams from the Kubernetes API
- Popularity:
- Activity:
- Implementation: Python with Diagrams
- Usage mode: CLI
- Input formats: K8s API
- Supported Kubernetes resources
- Deployment
- Endpoints
- HorizontalPodAutoscaler
- Ingress
- Namespace
- Pod
- ReplicaSet
- Service
- KIS supported
- Resource clustering based on namespaces
- Output formats: PNG, JPG, SVG, PDF, and DOT
-
kube-diagram: https://github.com/kahowell/kube-diagram
- Experimental cli tool to generate plantuml diagrams of k8s/openshift resources
- Popularity:
- Activity:
- Implementation: Java
- Usage mode: CLI
- Input formats: K8s manifests
- Supported Kubernetes resources:
- CronJob
- DeploymentConfig
- Service
- KIS unsupported
- Resource clustering unsupported
- Output formats: PlantUML
-
kube-diagrams: https://github.com/sunny10031982/kube-diagrams
-
k8s_diagram: https://github.com/MrSir/k8s_diagram
- A simple package to generate mermaid.js diagram of your Kubernetes Cluster
- Popularity:
- Activity:
- Implementation: Python
- Usage mode: None
- Input formats: K8s API
- Kubernetes resources supported
- CronJob
- Deployment
- Job
- Namespace
- Pod
- ReplicaSet
- Service
- StatefulSet
- KIS supported
- Resource clustering unsupported
- Output formats: PNG
-
Kubernetes to Draw.io Converter: https://github.com/nevidanniu/k8s-to-drawio
- A CLI tool that converts Kubernetes manifests to Draw.io diagrams with Kustomize support
- Popularity:
- Activity:
- Implementation: Go
- Usage mode: CLI
- Input formats: K8s manifests, kustomization files
- Kubernetes resources supported
- ConfigMap
- DaemonSet
- Deployment
- Ingress
- Namespace
- PersistentVolume
- PersistentVolumeClaim
- Secret
- Service
- ServiceAccount
- StatefulSet
- KIS unsupported
- Resource clustering based on namespaces
- Output formats: draw.io
-
Koomos: https://github.com/Pitchouneee/koomos
- CLI to generate architecture diagrams from Kubernetes YAML (Kustomize, ArgoCD, Helm)
- Popularity:
- Activity:
- Implementation: Go
- Usage mode: CLI
- Input formats: K8s manifests, kustomization files
- Kubernetes resources supported
- Deployment
- Ingress
- Service
- any other resource kinds
- KIS unsupported
- Resource clustering based on namespaces
- Output formats: Mermaid
-
KubeDraw: https://github.com/B0nam/kubedraw
- A Python-based tool designed to simplify the visualization of Kubernetes infrastructure
- Popularity:
- Activity:
- Implementation: Python with Diagrams
- Usage mode: CLI
- Input formats: K8s API
- Kubernetes resources supported
- Deployment
- Ingress
- Namespace
- Pod
- Service
- KIS supported
- Resource clustering unsupported
- Output formats: PNG
-
Kubeviz: https://www.bitfoundry.co/visualizing-kubernetes-manifests-and-helm-chart-with-kubeviz/
- A Web app to visualize your Kubernetes installation, helm chart, manifest without installation
- License not open source
- Popularity: no data available
- Activity: no data available
- Implementation: Diagrams
- Usage mode: SaaS
- Input formats: K8s manifests and Helm charts
- Kubernetes resources supported
- ConfigMap
- CronJob
- DaemonSet
- Deployment
- Ingress
- Job
- Pod
- Secret
- Service
- KIS supported
- Resource clustering based on namespaces
- Output formats: PNG
| Tool | K8s Kinds | KIS Support | Activity | Popularity |
|---|---|---|---|---|
| KubeDiagrams | 47+ | Yes | ||
| KubeView | 14 | Yes | ||
| kubectl-graph | 8+ | No | ||
| Lens Resource Map | 9 | Yes | ||
| k8sviz | 12 | Yes | ||
| Kubernetes diagrams | 8 | Yes | ||
| GruCloud | 14 | No | ||
| k8s-to-mermaid | 14 | No | ||
| K8s Diagram architecture generator | 9 | No | ||
| react-k8s-viewer | 9 | No | ||
| K8s Diagram Previewer | 11 | Yes | ||
| k8s-diagrams | 8 | Yes | ||
| kube-diagram | 3 | No | ||
| kube-diagrams | 3 | Yes | ||
| k8d | 2 | Yes | ||
| k8s_diagram | 8 | Yes | ||
| Kubernetes to Draw.io Converter | 11 | No | ||
| Koomos | 3+ | No | ||
| KubeDraw | 5 | Yes | ||
| Kubeviz | 9 | Yes | no data | no data |
| License | #Tools | %Tools |
|---|---|---|
| 8 | 40.00% | |
| 6 | 30.00% | |
| 3 | 15.00% | |
| 2 | 10.00% | |
| no open source license | 1 | 5.00% |
| Tool | Created At | Last Commit | Commits | Contributors |
|---|---|---|---|---|
| KubeDiagrams | ||||
| KubeView | ||||
| kubectl-graph | ||||
| Lens Resource Maps | ||||
| k8sviz | ||||
| Kubernetes diagrams | ||||
| GruCloud | ||||
| k8s-to-mermaid | ||||
| K8s Diagram architecture generator | ||||
| react-k8s-viewer | ||||
| K8s Diagram Previewer | ||||
| k8s-diagrams | ||||
| kube-diagram | ||||
| kube-diagrams | ||||
| k8d | ||||
| k8s_diagram | ||||
| Kubernetes to Draw.io Converter | ||||
| Koomos | ||||
| KubeDraw | ||||
| Kubeviz | no data | no data | no data | no data |
| Tool | Implementation Language |
|---|---|
| KubeDiagrams | Python |
| KubeView | JavaScript |
| kubectl-graph | Go |
| Lens Resource Map | TypeScript |
| k8sviz | Go |
| Kubernetes diagrams | Go |
| GruCloud | JavaScript |
| k8s-to-mermaid | Python |
| K8s Diagram architecture generator | Go |
| react-k8s-viewer | TypeScript |
| K8s Diagram Previewer | Python |
| k8s-diagrams | Python |
| kube-diagram | Java |
| kube-diagrams | Python |
| k8d | Go |
| k8s_diagram | Python |
| Kubernetes to Draw.io Converter | Go |
| Koomos | Go |
| KubeDraw | Python |
| Kubeviz | Unknown |
| Implementation Language | #Tools | %Tools |
|---|---|---|
| Go | 7 | 35.00% |
| Python | 7 | 35.00% |
| JavaScript | 2 | 10.00% |
| TypeScript | 2 | 10.00% |
| Java | 1 | 5.00% |
| Unknown | 1 | 5.00% |
| Tool | CLI | GUI | SaaS |
|---|---|---|---|
| KubeDiagrams | X | X | X |
| KubeView | X | ||
| kubectl-graph | X | ||
| Lens Resource Map | X | ||
| k8sviz | X | ||
| Kubernetes diagrams | X | ||
| GruCloud | X | ||
| k8s-to-mermaid | X | ||
| K8s Diagram architecture generator | X | ||
| react-k8s-viewer | X | ||
| K8s Diagram Previewer | X | ||
| k8s-diagrams | X | ||
| kube-diagram | X | ||
| kube-diagrams | X | ||
| k8d | X | ||
| k8s_diagram | |||
| Kubernetes to Draw.io Converter | X | ||
| Koomos | X | ||
| KubeDraw | X | ||
| Kubeviz | X |
| Usage Mode | #Tools | %Tools |
|---|---|---|
| CLI | 15 | 75.00% |
| GUI | 4 | 20.00% |
| SaaS | 2 | 10.00% |
| Tool | K8s API | K8s Manifest | Kustomization File | Helm Chart | Helmfile | Total |
|---|---|---|---|---|---|---|
| KubeDiagrams | X | X | X | X | X | 5 |
| KubeView | X | 1 | ||||
| kubectl-graph | X | 1 | ||||
| Lens Resource Map | X | 1 | ||||
| k8sviz | X | 1 | ||||
| Kubernetes diagrams | X | 1 | ||||
| GruCloud | 1 (JavaScript IaC) | |||||
| k8s-to-mermaid | X | 1 | ||||
| K8s Diagram architecture generator | annotations | 1 | ||||
| react-k8s-viewer | X | 1 | ||||
| K8s Diagram Previewer | X | X | 2 | |||
| k8s-diagrams | X | 1 | ||||
| kube-diagram | X | 1 | ||||
| kube-diagrams | X | 1 | ||||
| k8d | X | 1 | ||||
| k8s_diagram | X | 1 | ||||
| Kubernetes to Draw.io Converter | X | X | 2 | |||
| Koomos | X | X | 2 | |||
| KubeDraw | X | 1 | ||||
| Kubeviz | X | X | 2 |
| Input Format | #Tools | %Tools |
|---|---|---|
| K8s API | 11 | 55.00% |
| K8s Manifest | 9 | 45.00% |
| Helm Chart | 3 | 15.00% |
| Kustomization File | 3 | 15.00% |
| Helmfile | 1 | 5.00% |
| JavaScript IaC | 1 | 5.00% |
| Tool | #Kinds | ConfigMap | ClusterRole | ClusterRoleBinding | CronJob | CustomResourceDefinition | DaemonSet | Deployment | Endpoints | HorizontalPodAutoscaler | Ingress | Job | Namespace | NetworkPolicy | Node | PersistentVolume | PersistentVolumeClaim | Pod | PodSecurityPolicy | ReplicaSet | Role | RoleBinding | Secret | Service | ServiceAccount | StatefulSet | StorageClass | Others |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| KubeDiagrams | 47+ | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | Many |
| KubeView | 14 | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |||||||||||||
| kubectl-graph | 8+ | X | X | X | X | X | X | X | Route | |||||||||||||||||||
| Lens Resource Map | 9 | X | X | X | X | X | X | X | X | X | ||||||||||||||||||
| k8sviz | 12 | X | X | X | X | X | X | X | X | X | X | X | X | |||||||||||||||
| Kubernetes diagrams | 8 | X | X | X | X | X | X | X | X | |||||||||||||||||||
| GruCloud | 14 | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |||||||||||||
| k8s-to-mermaid | 14 | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |||||||||||||
| K8s Diagram architecture generator | 9 | X | X | X | X | X | X | X | X | X | ||||||||||||||||||
| react-k8s-viewer | 9 | X | X | X | X | X | X | X | SealedSecret ServiceMonitor | |||||||||||||||||||
| K8s Diagram Previewer | 11 | X | X | X | X | X | X | X | X | X | X | X | ||||||||||||||||
| k8s-diagrams | 8 | X | X | X | X | X | X | X | X | |||||||||||||||||||
| kube-diagram | 3 | X | X | DeploymentConfig | ||||||||||||||||||||||||
| kube-diagrams | 3 | X | X | X | ||||||||||||||||||||||||
| k8d | 2 | X | X | |||||||||||||||||||||||||
| k8s_diagram | 8 | X | X | X | X | X | X | X | X | |||||||||||||||||||
| Kubernetes to Draw.io Converter | 11 | X | X | X | X | X | X | X | X | X | X | X | ||||||||||||||||
| Koomos | 3+ | X | X | X | ||||||||||||||||||||||||
| KubeDraw | 5 | X | X | X | X | X | ||||||||||||||||||||||
| Kubeviz | 9 | X | X | X | X | X | X | X | X | X |
| Kind | #Tools | %Tools |
|---|---|---|
| Service | 19 | 95.00% |
| Ingress | 17 | 85.00% |
| Deployment | 16 | 80.00% |
| Pod | 15 | 75.00% |
| StatefulSet | 11 | 55.00% |
| ConfigMap | 10 | 50.00% |
| Namespace | 10 | 50.00% |
| Secret | 10 | 50.00% |
| CronJob | 9 | 45.00% |
| DaemonSet | 9 | 45.00% |
| PersistentVolumeClaim | 9 | 45.00% |
| Job | 8 | 40.00% |
| ReplicaSet | 7 | 35.00% |
| Endpoints | 4 | 20.00% |
| HorizontalPodAutoscaler | 4 | 20.00% |
| NetworkPolicy | 4 | 20.00% |
| PersistentVolume | 4 | 20.00% |
| ServiceAccount | 3 | 15.00% |
| ClusterRole | 2 | 10.00% |
| ClusterRoleBinding | 2 | 10.00% |
| Node | 2 | 10.00% |
| Role | 2 | 10.00% |
| RoleBinding | 2 | 10.00% |
| Route | 2 | 10.00% |
| ServiceMonitor | 2 | 10.00% |
| CustomResourceDefinition | 1 | 5.00% |
| DeploymentConfig | 1 | 5.00% |
| PodSecurityPolicy | 1 | 5.00% |
| SealedSecret | 1 | 5.00% |
| StorageClass | 1 | 5.00% |
| Tool | KIS Support | DOT | draw.io | GIF | JPG | PNG | SVG | TIFF | Others | |
|---|---|---|---|---|---|---|---|---|---|---|
| KubeDiagrams | X | X | X | X | X | X | X | X | X | Web |
| KubeView | X | Web | ||||||||
| kubectl-graph | X | AQL, ArangoDB, CQL, Cypher, and Mermaid | ||||||||
| Lens Resource Map | X | Web | ||||||||
| k8sviz | X | X | X | X | X | X | X | X | all Graphviz output formats | |
| Kubernetes diagrams | X | X | ||||||||
| GruCloud | PlantUML | |||||||||
| k8s-to-mermaid | Mermaid | |||||||||
| K8s Diagram architecture generator | X | X | ||||||||
| react-k8s-viewer | React Flow | |||||||||
| K8s Diagram Previewer | X | X | X | X | X | X | ||||
| k8s-diagrams | X | X | X | X | X | X | ||||
| kube-diagram | PlantUML | |||||||||
| kube-diagrams | X | X | ||||||||
| k8d | X | X | ||||||||
| k8s_diagram | X | X | ||||||||
| Kubernetes to Draw.io Converter | X | |||||||||
| Koomos | Mermaid | |||||||||
| KubeDraw | X | X | ||||||||
| Kubeviz | X | X |
| #Tools | %Tools | |
|---|---|---|
| KIS Support | 12 | 60.00% |
| Output Format | #Tools | %Tools |
|---|---|---|
| PNG | 9 | 45.00% |
| DOT | 6 | 30.00% |
| JPG | 4 | 20.00% |
| 4 | 20.00% | |
| SVG | 4 | 20.00% |
| Web (incl. React Flow) | 4 | 20.00% |
| draw.io | 3 | 15.00% |
| Mermaid | 3 | 15.00% |
| TIFF | 3 | 15.00% |
| GIF | 2 | 10.00% |
| PlantUML | 2 | 10.00% |
| AQL | 1 | 5.00% |
| ArangoDB | 1 | 5.00% |
| CQL | 1 | 5.00% |
| Cypher | 1 | 5.00% |
| Tool | Clustering Support | Namespaces | Owners | Labels | Annotations | Others |
|---|---|---|---|---|---|---|
| KubeDiagrams | X | X | X | X | ||
| KubeView | ||||||
| kubectl-graph | ||||||
| Lens Resource Map | ||||||
| k8sviz | X | X | ||||
| Kubernetes diagrams | X | X | X | |||
| GruCloud | ||||||
| k8s-to-mermaid | ||||||
| K8s Diagram architecture generator | ||||||
| react-k8s-viewer | ||||||
| K8s Diagram Previewer | X | X | X | |||
| k8s-diagrams | X | X | ||||
| kube-diagram | ||||||
| kube-diagrams | X | Ingress hosts and paths |
||||
| k8d | ||||||
| k8s_diagram | ||||||
| Kubernetes to Draw.io Converter | X | X | ||||
| Koomos | X | X | ||||
| KubeDraw | ||||||
| Kubeviz | X | X |
| Resource Clustering | #Tools | %Tools |
|---|---|---|
| Supported | 9 | 45.00% |
| Namespaces | 8 | 40.00% |
| Owners | 2 | 10.00% |
| Labels | 1 | 5.00% |
| Annotations | 1 | 5.00% |
| Others | 1 | 5.00% |
Following generated diagrams are based on the official Kubernetes WordPress tutorial.
See the used WordPress manifest declaring seven resources: 2 Services, 2 Deployments, 2 PersistentVolumeClaims, and 1 Secret.
Architecture diagram generated from the WordPress manifest:
Strengths:
- All seven resources and all their relationships are represented.
Namespaceand label-based clustering.
Weaknesses: None.
Architecture diagram generated from a WordPress instance deployed on a Kubernetes cluster:
Strengths:
- Cluster resources, i.e.,
PersistentVolumeandNode, are represented.
Weaknesses:
- Too many edges to the
SecretandPersistentVolumeClaimresources!
Architecture diagram generated from a WordPress instance deployed on a Kubernetes cluster:
Strengths:
- All resources are represented.
Weaknesses:
- 2 edges from each pod to the secret are not represented!
- 2 edges from each pod to the
kube-root-ca.crtconfig map are not represented!
Architecture diagram generated from a WordPress instance deployed on a Kubernetes cluster:
Strengths:
- All resources are represented.
Weaknesses:
- No Kubernetes icons!
- 2 edges from each pod to the secret are not represented!
- 2 edges from each pod to the
kube-root-ca.crtconfig map are not represented! - 2 edges from each persistent volume claim to its persistent volume are not represented!
Architecture diagram generated from a WordPress instance deployed on a Kubernetes cluster:
Strengths:
- All seven resources are represented.
Weaknesses:
- 2
ReplicaSets are not represented! - The
kube-root-ca.crtconfig map is not represented!
Architecture diagram generated from a WordPress instance deployed on a Kubernetes cluster:
Strengths:
Namespaceclustering.
Weaknesses:
- The secret and edges to it are not represented!
- The
kube-root-ca.crtconfig map is not represented!
Architecture diagram generated from a WordPress instance deployed on a Kubernetes cluster:
Strengths:
ReplicaSetclustering.
Weaknesses:
- The secret and edges to it are not represented!
- The
kube-root-ca.crtconfig map is not represented!
TODO but requires rewriting the WordPress manifest with GruCloud's JavaScript-based DSL!
Architecture diagram generated from the WordPress manifest:
classDiagram
class Service_default_wordpress_mysql {
+kind: Service
+api_version: v1
+name: wordpress-mysql
+namespace: default
+ports: [(3306, 'TCP', None)]
+service_type: ClusterIP
+cluster_ip: None
+is_headless: ✓
}
class PersistentVolumeClaim_default_mysql_pv_claim {
+kind: PersistentVolumeClaim
+api_version: v1
+name: mysql-pv-claim
+namespace: default
+ports: []
+access_modes: ['ReadWriteOnce']
+storage_size: 512M
}
class Deployment_default_wordpress_mysql {
+kind: Deployment
+api_version: apps/v1
+name: wordpress-mysql
+namespace: default
+image: mysql:8.0
+ports: []
}
class Secret_default_mysql_pass {
+kind: Secret
+api_version: v1
+name: mysql-pass
+namespace: default
+ports: []
+data_keys: ['password']
+secret_type: Opaque
}
class Service_default_wordpress {
+kind: Service
+api_version: v1
+name: wordpress
+namespace: default
+ports: [(80, 'TCP', None)]
+service_type: LoadBalancer
+is_headless: ✗
}
class PersistentVolumeClaim_default_wp_pv_claim {
+kind: PersistentVolumeClaim
+api_version: v1
+name: wp-pv-claim
+namespace: default
+ports: []
+access_modes: ['ReadWriteOnce']
+storage_size: 512M
}
class Deployment_default_wordpress {
+kind: Deployment
+api_version: apps/v1
+name: wordpress
+namespace: default
+image: wordpress:6.2.1-apache
+ports: []
}
%% Relationships
Deployment_default_wordpress_mysql --> Secret_default_mysql_pass : reads_secret_key
Deployment_default_wordpress_mysql --> Secret_default_mysql_pass : reads_secret_key
Deployment_default_wordpress --> Secret_default_mysql_pass : reads_secret_key
Strengths:
- All seven resources are represented.
Weaknesses:
- No Kubernetes icons!
- 4 edges from
Services toDeployments and fromDeployments toPersistentVolumeClaims are not represented!
TODO but requires annotating the WordPress manifest with K8s Diagram architecture generator annotations!
TODO but lacks documentation on how to run the tool!
Architecture diagram generated from the WordPress manifest:
Strengths:
- All seven resources are represented.
DeploymentandReplicaSet-based clustering.
Weaknesses: None.
Failed on a thrown AttributeError exception!
TODO but only supports CronJob, DeploymentConfig, and Service kinds!
Failed on a thrown ImportError exception!
TODO but only supports Pod and NetworkPolicy kinds!
TODO but lacks a CLI!
TODO but build failed!
Architecture diagram generated from the WordPress manifest:
graph TD
subgraph "default namespace"
wordpress_mysql_service["wordpress-mysql<br>(Service)"]
mysql_pv_claim_persistentvolumeclaim["mysql-pv-claim<br>(PersistentVolumeClaim)"]
wordpress_mysql_deployment["wordpress-mysql<br>(Deployment)"]
mysql_pass_secret["mysql-pass<br>(Secret)"]
wordpress_service["wordpress<br>(Service)"]
wp_pv_claim_persistentvolumeclaim["wp-pv-claim<br>(PersistentVolumeClaim)"]
wordpress_deployment["wordpress<br>(Deployment)"]
end
wordpress_mysql_service --> wordpress_mysql_deployment
wordpress_mysql_deployment --> mysql_pass_secret
wordpress_service --> wordpress_deployment
wordpress_deployment --> mysql_pass_secret
Strengths:
- All seven resources are represented.
Weaknesses:
- Edges from
DeploymenttoPersistentVolumeClaimresources are not represented!
Architecture diagram generated from a WordPress instance deployed on a Kubernetes cluster:
Strengths: None.
Weaknesses:
SecretandPersistentVolumeClaimresources are not represented!- The
kube-root-ca.crtconfig map is not represented! - Pod labels overlap!
TODO but the Kubeviz site appears to be down!
-
k8s-diagrams: https://github.com/cloudogu/k8s-diagrams
-
Hari Sekhon - Diagrams-as-Code: https://github.com/HariSekhon/Diagrams-as-Code
-
Drawing your Kubernetes cluster the right way: https://archive.fosdem.org/2023/schedule/event/container_kubernetes_cluster_right_way/attachments/slides/5304/export/events/attachments/container_kubernetes_cluster_right_way/slides/5304/kda_FOSDEM_2023_k8s.pdf
-
Visualizing Kubernetes with Generated Diagrams, talk at Southern California Linux Expo
-
Visualizing Kubernetes Distributed Systems: An Exploratory Study, D. G. Balreira, T. da Silva Araújo and F. Petrillo, 2023 IEEE Working Conference on Software Visualization (VISSOFT), Bogotá, Colombia, 2023, pp. 12-22, doi: 10.1109/VISSOFT60811.2023.00011.









