Home
Softono

Ohmykube

Open source MIT Go
35
Stars
0
Forks
0
Issues
1
Watchers
5 months
Last Commit

 About Ohmykube

Oh My Kube: Make Local Kubernetes Simple and Fast!

Platforms

Web Self-hosted Kubernetes

Languages

Go

Links

Need Help Installing Ohmykube?

We provide expert installation service for this software. Our team will install, configure, and secure Ohmykube on your server. plans start at just $30.

Oh My Kube: Make Kubernetes Simple and Fast!

Quickly start a complete local kubernetes cluster on multi-node or heterogeneous virtual machines

中文文档 | English

Quick StartUse CasesKubernetes Version SupportRoadmap

Quick Start

Prerequisites

  1. Install Lima
  2. Install Go 1.23.0 or higher

Install

# Clone the repository
git clone https://github.com/monshunter/ohmykube.git
cd ohmykube

# Compile and install
make install

Basic Usage

# Create a cluster (default: 1 master + 2 workers)
ohmykube up

# View cluster status
export KUBECONFIG=~/.kube/ohmykube-config
kubectl get nodes

# Delete the cluster
ohmykube down

OhMyKube Up Demo

Creating Custom Clusters

# Customize node count and resources
ohmykube up --workers 3 --master-cpu 4 --master-memory 8 --master-disk 20 \
            --worker-cpu 2 --worker-memory 4 --worker-disk 10

# Select network plugin
ohmykube up --cni cilium

# Select storage plugin
ohmykube up --csi rook-ceph

# Enable LoadBalancer (automatically sets proxy-mode to ipvs)
ohmykube up --lb "metallb"

Cluster Management

# List all nodes
ohmykube list

# Add a node
ohmykube add --cpu 2 --memory 4 --disk 20

# Delete a node
ohmykube delete ohmykube-worker-2

# Force delete (without evicting Pods first)
ohmykube delete ohmykube-worker-2 --force

# Start a node
ohmykube start ohmykube-worker-2

# Stop a node
ohmykube stop ohmykube-worker-2

# Enter node Shell
ohmykube shell ohmykube-worker-2

Custom Kubeadm Configuration (not supported yet, but coming soon)

You can provide a custom kubeadm configuration file to override the default settings. The following sections are supported:

  • InitConfiguration
  • ClusterConfiguration
  • KubeletConfiguration
  • KubeProxyConfiguration

Example:

apiVersion: kubeadm.k8s.io/v1beta4
kind: InitConfiguration
nodeRegistration:
  criSocket: unix:///var/run/containerd/containerd.sock
---
apiVersion: kubeadm.k8s.io/v1beta4
kind: ClusterConfiguration
kubernetesVersion: v1.33.0
networking:
  podSubnet: 192.168.0.0/16
  serviceSubnet: 10.96.0.0/12

Use Cases

  • Development and Testing: Test applications in an environment similar to production
  • Learning Kubernetes: Understand how real Kubernetes clusters work
  • Local CI/CD: Build complete integration testing environments locally
  • Network and Storage Research: Test different CNI and CSI combinations
  • Cluster Management Practice: Learn node management, maintenance, and troubleshooting

Roadmap

We are planning the following feature enhancements:

Coming Soon 🚀

  • Multi-Cluster Management
    • Project initialization (ohmykube init)
    • Cluster switching (ohmykube switch)

Mid-term Plans 🔄

  • Provider Abstraction
    • Support for cloud API virtual machine creation (Alibaba Cloud, Tencent Cloud, AWS, GKE, etc.)
    • Support for more local virtualization platforms

Long-term Vision 🌈

  • Plugin Ecosystem

    • Plugin extension mechanism
    • Common plugin integration (monitoring, logging, CI/CD, etc.)
  • Developer Tools

    • IDE integration
    • Debugging toolchain
    • Development workflow optimization

Supported Platforms

  • Mac arm64 (supported)
  • Linux arm64/amd64 (coming soon)
  • Other platforms (coming soon)

Kubernetes Version Support

Supports Kubernetes v1.24.x and above

Contributing

We welcome contributions of all kinds, whether code, documentation, or ideas:

  • Submit Issues to report bugs or request features
  • Submit Pull Requests to contribute code or documentation
  • Participate in discussions and share your experiences
  • Help test new features and releases

License

MIT