[conductor log] : init
Building a Mobile-Friendly Kubernetes Client with Expo and Next.js
As a developer managing infrastructure on Azure Kubernetes Service (AKS), I frequently need to interact with our clusters. We operate two primary environments: a staging
/development
cluster for testing and experimentation and a production
cluster, which powers our live applications.
Often, I need to access logs, monitor resources, or perform quick actions on these clusters. While this is straightforward on a desktop, there have been several instances where I found myself traveling or remote, armed only with my iPhone.
This led me to search for a mobile Kubernetes client that was:
- Affordable (or free).
- Efficient in terms of performance.
- Intuitive and beautifully designed for seamless use on a mobile interface.
To my disappointment, the available options were either outdated and no longer maintained, excessively priced, or fell short in terms of design and usability.
A Personal Goal: Building My Own Kubernetes Client
Frustrated by the lack of good options, I decided to take matters into my own hands and build the client I wished existed. This project also aligns perfectly with a long-standing goal of mine: diving into mobile application development. For years, I’ve been intrigued by the possibilities of the React-Native and Expo ecosystems, which allow developers to create cross-platform apps with a shared codebase.
Thus, I embarked on a journey to create a Kubernetes client that:
- Works seamlessly on both mobile and web platforms.
- Provides a clean, intuitive interface for managing clusters.
- Is built with modern tools and frameworks for easy maintenance and scalability.
Technology Stack: Why Expo and Next.js?
To achieve this, I chose:
- Expo: for building the mobile app, leveraging React Native’s flexibility while simplifying setup and development workflows.
- Next.js: for the web version, ensuring server-side rendering, great performance, and a foundation I’m already comfortable with.
This combination allows me to share a significant portion of the codebase between platforms while also taking advantage of each platform's unique strengths.
Progress So Far
It’s been about a week since I started, and I’ve primarily focused on the web application. As someone well-versed in web development, this has given me a head-start and allowed me to:
- Prototype core features like resource browsing and log retrieval.
- Build reusable UI components that can later be adapted for mobile.
- Establish a strong foundation for transitioning to React Native.
What’s Next?
With the web application progressing steadily, I’m excited to transition into mobile development soon. My next steps include:
- Adapting the UI for mobile using Expo and React Native.
- Adding offline support for quick cluster checks without reliable internet.
- Implementing secure authentication for accessing Kubernetes clusters.
This project has been a thrilling opportunity to combine two passions: infrastructure management and exploring mobile app development. I look forward to sharing updates as the journey continues, and I hope this app can someday benefit others who find themselves in similar situations.