k8-containers / kdd-k8s-dashboard

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

kdd

Simplify Troubleshooting your Kubernetes Cluster with KDD - A Developer Dashboard Under Heavy Development

Please note that the kdd project is currently in active development and is not yet suitable for production use. The platform may contain bugs, issues, and potential security risks that need to be addressed. While we are working hard to improve and refine the platform, we strongly recommend against using it in a production environment at this time. However, the project is still publicly available, and we welcome feedback and contributions from the community to help us make kdd a more robust and stable Kubernetes management solution. Thank you for your understanding and support.

Logview

The Logview in kdd allows you to monitor the logs of your Kubernetes workloads in real-time. You can view the logs for all the pods related to a workload and even filter them based on the pod and container names.

The Logview also comes with a search functionality that highlights the matching lines in the logs, allowing you to quickly find the information you need. You can navigate through the search results using buttons and easily jump to the relevant logline.

Logview

To access the Logview, you can either open it from the overview of workloads or from the detail page. Once opened, real-time logs will start streaming automatically without any need for selection. This makes it easy to quickly identify and troubleshoot any issues related to your Kubernetes workloads.

Getting started

running locally:

go run ./cmd/kdd.go --config <path to kdd.yaml>

As we are using http2 and server sent events for receiving realtime updates a self signed certificate needs to be created.

Creating self signed certificate with openssl: openssl req -newkey rsa:2048 -nodes -keyout server.key -x509 -days 365 -out server.crt

The FQDN needs to be set to the domain where the application is running on:

The certificate needs to be in the ./certs folder and the name of the file needs to be server.key & server.crt

sudo cp server.crt /usr/local/share/ca-certificates/server.crt sudo update-ca-certificates

configuration

variables defined in yaml:

variable yaml env default value type description
Local local KDD_LOCAL true bool run using kubeconfig (true), or using k8s service account (false)
HttpPort http_port KDD_HTTP_PORT 3333 int port to expose the web ui on
StaticFiles static_files KDD_STATIC_FILES ../_ui/build/ string location of react files
KubeConfigPath kube_config_path KDD_KUBE_CONFIG_PATH ~/.kube/config string location of kubeconfig, used when local=true
CertificatePath certificate_path CERTIFICATE_PATH "" string location to folder with server.crt and server.key certificates - will use self-signed local host certificate if left empty

There's one flag variable, --config, which points to the kdd.yaml file. The default value is "../"

Every variable can be configured using env vars with KDD_ prefix.

accessing the UI

Ui is exposed by default on localhost:3333/ui path. The port can be controlled by the http_port variable.

Development

As we are using http2, certificates need to be created.

To use live reloading one cert needs to be created for the ui self. (_ui/certs/server.key, _ui/certs/server.crt)

To enable http2 on the backend side you need to create certificate. The certificate needs to be created in cmd/certs/server.key or cmd/certs/server.crt

About

License:MIT License


Languages

Language:TypeScript 60.1%Language:Go 39.3%Language:HTML 0.2%Language:Dockerfile 0.2%Language:Shell 0.2%Language:CSS 0.1%