A lightweight Kubernetes health monitor and architecture visualizer. Made to observe a Kubernetes cluster externally to provide an alternative method to the potential data-skewing and unnecessary resource usage of internal monitoring.
Podz is a Kubernetes cluster visualizer for developers to see the metrics of their cluster.
Find out more at podz.site!
https://www.docker.com/products/docker-desktop/
)https://kubernetes.io/docs/tasks/tools/
)https://minikube.sigs.k8s.io/docs/start/
).Podz displays only user-made Kubernetes components and avoids the initial namespaces except ādefaultā (ākube-node-leaseā, ākube-publicā, ākube-systemā are all hidden). If you need example projects, we have provided some in the examples section.
For testing purposes Podz, we highly recommend the usage of Minikube, which uses a minimal local Kubernetes cluster.
To use Minikube with Podz, start Minikube with this command:
minikube start --extra-config apiserver.cors-allowed-origins=["http://*ā]
What this command does is start up minikube and prevent CORS blocking the connection between the Kubernetes API Server and the Podz website.
Next, you will need to expose the Kubernetes API Server through proxying for HTTP requests, to do this run the command:
kubectl proxy --port=<number>;
This can be any port of your choice, so long as you change the Podz websiteās port to match it.
For standalone Kubernetes, first disable CORS blocking of [http://] requests in the Kuberenetes API Serverās configuration.
Next, run the command:
kubectl proxy --port=<number>
This can be any port of your choice, so long as you change the Podz websiteās port to match it.
Currently, Podz is able to be connected to a MongoDb database to store snapshots of the cluster health and architecture at given points of time. To connect a database, copy and paste your MongoDb connection link into the field on the ādemoā page. Next enter the port that you are proxying and confirm.
To create a snapshot, simply to click the āTake Snasphotā button. To load snapshots, select a time range with the calendar component, and then click the āLoad Snapshotā button. The button will open a dropdown with all snapshots taken within that range of time, ordered by time. Finally, click one of the options and the snapshot will load a previous version of the cluster.
While you are following the steps, you may encounter an error mentioning about default not being found. You can run this command to fix it:
docker context use default
For testing purposes Podz, we highly recommend the usage of Minikube, which uses a minimal local Kubernetes cluster. To use Minikube with Podz, start Minikube with this command:
minikube start
What the following command does is start up minikube and prevent CORS blocking the connection between the Kubernetes API Server and the Podz website.
minikube start --extra-config apiserver.cors-allowed-origins=["http://*ā]
In the test-project
folder, you can use those project examples to store in your containers. Next, cd
to the test project folder and run the command:
docker-compose build
Now, you have 3 containers set up and you should be able to see 3 images in your Docker desktop!
After that is done, check if Minikube is created and started up with this command:
kubectl get all
Next, you need to load the images into Minikube. To do that, run this command:
minikube image load <image name:version>
At the moment, Minikube does not load images with the newest version of Docker. As of now, please download Docker version 24.0.7
image name
needs to be replaced by the name of the image and version
needs to be the tag of the image. Check Docker Desktop to find the image name and tags.
Now, you need to apply all .yaml
files to kubectl by running this command:
kubectl apply -f <.yml file name>
Next, you will need to expose the Kubernetes API Server through proxying for HTTP requests, to do this run the command:
kubectl proxy --port=<number>
This can be any port of your choice, so long as you change the Podz websiteās port to match it.
The open-source community is awesome because of contributors like you. Your contributions are invaluable!
If you have a suggestion, fork the repo and make a pull request. You can also open an issue to discuss your idea. And, donāt forget to give the project a star! Thanks!
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)