-
๐ญ My final year research project - The research investigates the use of the brownout approach for container orchestration to achieve energy efficiency in containerized applications on edge clusters. A software system consisting of an analytical model to compute the power consumption and a brownout controller for container orchestration is being developed.
-
๐จโ๐ป Projects:
-
๐ผ Work Experience
- WSO2 LLC - Software Engineer
- WSO2 LLC - Software Engineering Intern
- iXD Labs (Pvt) Ltd - Software Engineering Intern
-
๐ Certifications
-
๐ซ How to reach me [email protected]
brownout-controller's Introduction
brownout-controller's People
brownout-controller's Issues
Improvement to consider battery percentage in main brownout algorithm
Get the battery percentage via an API endpoint and activate and deactivate the brownout algorithm when its within a certain range.
Obtain a battery min value to activate the algorithm and a max battery value to deactivate the algorithm.
Implement the Node Idling Selection Policy algorithm
Configure Docker file and Kubernetes manifest for Raspberry Pi deployment
The Docker file and Kubernetes manifests to build and deploy on a Raspberry Pi are in the rpi-deploy
branch
https://github.com/Lakshan-Banneheke/brownout-controller/tree/rpi-deploy
Implement the LUCF container selection policy algorithm
Develop the web frontend interface/dashboard
Implement the HUCF container selection policy algorithm
Issue with using LUCF per node within NISP
Lucf uses GetPodsPower to calculate the power when used within NISP. It doesnt consider that some nodes have been turned off. GetPodsPower uses the full worker node count when calculating power.
Integrate Prometheus for monitoring to get SLA violations
DeactivateNode needs to prevent new pods from being created in the deactivated node.
Issue
New pods may get scheduled on a node that is deactivated and made idle.
Eg: If the user creates a new deployment, those pods may get created on the deactivated node.
If that node is turned off after a new pod has gotten scheduled, that will cause issues
This will help when doing container migration as well
Solutions
- Cordon off the node - But then how can it be reconnected
- Add a label to mark a node as idle
Develop the dashboard
Functionality on deactivating containers
Improvements to make the applications more efficient for the edge environments.
- Use watchers instead of periodic polling
- Deactivating pods deployment-wise
- Improve error handling
Develop analytical model to compute power consumption based on cluster configurations
Implement the RCSP container selection policy algorithm
Connect to Kubernetes Cluster
Improvements after experimentation
Implement the LRU container selection policy algorithm
Integrate the power model with the abstract policy and nisp
The following functions are required in the power model
- Get the power given a set of pods in the cluster
- Get the power given a set of nodes in the cluster
Once the functions are available, need to use them in the executePolicy method in both abstract policy and nisp
Container Migration to improve the power saved in NISP
Migrating containers from the least utilized nodes to the other nodes will allow more nodes to be idle.
Since some containers of the "i"th node will be removed based on LUCF within the NISP policy, it is possible to migrate these containers to other nodes to make the "i"th node idle as well which will further improve the power saved.
Draining the "i"th node using the Kubernetes API will automatically make that node idle and migrate its containers to other nodes
Develop the API
API Endpoints
- Activate Brownout
- [POST] /brownout/activate
- Empty body - Deactivate Brownout
- [POST] /brownout/deactivate
- Empty body - Set battery percentage
- [POST] /brownout/battery/set
- Body: {"Battery":50}
Functionality on activating containers
Functionality on retrieving data from Kubernetes
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.