Ekkremis
Optomize your Kubernetes pod lifecycle. Built with React Typescript with Electron/Node.js runtime.
Table of Contents
Introduction
Some Kubernetes pods can't be scheduled and get stuck in a pending phase of the pod lifecycle.
The status of pending pods has to be manually queried to proceed with resolving them, which slows down the deployment workflow.
This repository contains the code for Ekkremis: a prometheus-based alertmanager to resolve kubernetes pods pending issues. Ekkremis leverages prometheus data scraping and reports back when issues interfere with scheduling along with tailored solutions. Additionally, Ekkremis has an optional lifecycle dashboard where DevOps engineers will find a consolidated view of pod metrics by state. Solutions provided by Ekkremis (greek for pending) increases Kubernetes deployment efficiency by providing updates on pending and other unhealthy pods to get them up and running faster.
Requirements
- Prometheus (can run demo without)
- npm (web view only)
- yarn (web or electron app)
Features
A few of the things you can do with Ekkremis:
- Reduce manual queries to find unhealthy or pending pods
- Receive alerts by email or slack when your pods are stuck in pending
- Implement tailored solutions suggested by Ekkremis to get your pods up and running
Optional Ekkremis Lifecycle Dashboard.
Lots of great screenshots coming!
Alerts Setup
Dashboard Build Process
Initial Setup
- Clone or download the repo
npm install
to install dependencies
If running Ekkremis on Web App
npm run build
to create a build folder
If running Ekkremis on Electron App
- install yarn if you don't already have it (required for the following steps)
npm run postinstall
to install electron-specific dependenciesnpm run electron:build
to build the Electron app for current platform and current architecture using default target
Once running the app
- Add your prometheus metrics endpoint for Kubernetes pods to the metrics input (Ekkremis defaults to http://localhost:9090)
- Navigate between pod status metric displays through the navigation bar on the left
- Gain more information about individual unhealthy or pending pods by selecting the 'error' and 'charts' buttons
- Implement solutions suggested in Ekkremis for pending pods
Running the DEMO with Mock Data
- Add this mock promethus endpoint to the metrics input
Feedback
If something is not behaving intuitively, it is a bug and should be reported. Report it here by creating an issue: https://github.com/oslabs-beta/ekkremis/issues
Help us fix the problem as quickly as possible by following Mozilla's guidelines for reporting bugs.
Feel free to send us feedback on Twitter or file an issue. Feature requests are always welcome. If you wish to contribute, please take a quick look at the guidelines!
If there's anything you'd like to chat about, please feel free to join our Gitter chat!
Contributors
This project is brought to you by these awesome contributors.
Please take a look at the contributing guidelines for a detailed process on how to build your application as well as troubleshooting information.
Acknowledgments
Thanks to tech accelerator OSLabs-Beta for supporting this project.