I'm working on setting up an environment where I can dynamically create Jupyter notebook kernels as separate pods within a Google Kubernetes Engine (GKE) cluster. Each pod needs to have customizable CPU, memory, and GPU configurations. The goal is to control these pods through a Python backend, handling actions like creating, deleting, and checking the status of pods.
I've encountered several challenges:
- Authenticating with GKE from a Python fastapi endpoint, especially when run on different platforms like Google Compute Engine with service account that has correct GKE permissions.
- Dynamically adjusting the resource allocations for each pod based on user demand.
- Simplifying the deployment and management process without extensive manual configuration or heavy tooling. I am looking for a backend solution or framework that integrates smoothly with Python and GKE, ideally without requiring extensive setup or overhead. The solution should allow programmatically managing Kubernetes resources directly from Python code.
Does anyone have recommendations for tools, libraries, or frameworks that could facilitate this? I'm aiming for a solution that is straightforward to implement and maintain, without getting too heavy on resources or complexity.