{"id":13837209,"url":"https://github.com/TheNewNormal/kube-cluster-osx","last_synced_at":"2025-07-10T16:32:32.372Z","repository":{"id":79125258,"uuid":"45684056","full_name":"TheNewNormal/kube-cluster-osx","owner":"TheNewNormal","description":"Local development  multi node Kubernetes Cluster for macOS made very simple","archived":true,"fork":false,"pushed_at":"2017-10-05T14:46:54.000Z","size":1176905,"stargazers_count":298,"open_issues_count":5,"forks_count":26,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-07-05T03:39:34.027Z","etag":null,"topics":["kube-cluster","kubernetes","kubernetes-cluster","kubernetes-setup"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheNewNormal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2015-11-06T13:37:36.000Z","updated_at":"2025-01-23T23:54:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"4ebac44f-b454-48f1-909d-d4e4eb812348","html_url":"https://github.com/TheNewNormal/kube-cluster-osx","commit_stats":null,"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/TheNewNormal/kube-cluster-osx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheNewNormal%2Fkube-cluster-osx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheNewNormal%2Fkube-cluster-osx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheNewNormal%2Fkube-cluster-osx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheNewNormal%2Fkube-cluster-osx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheNewNormal","download_url":"https://codeload.github.com/TheNewNormal/kube-cluster-osx/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheNewNormal%2Fkube-cluster-osx/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264608135,"owners_count":23636684,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kube-cluster","kubernetes","kubernetes-cluster","kubernetes-setup"],"created_at":"2024-08-04T15:01:03.366Z","updated_at":"2025-07-10T16:32:29.925Z","avatar_url":"https://github.com/TheNewNormal.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"Easy Kubernetes Cluster for macOS\n============================\n\n**This project is not maintained anymore, please use [minikube](https://github.com/kubernetes/minikube) instead**\n\n**Kube-Cluster for macOS** is a `status bar app` which allows in an easy way to bootstrap and control multi-node (master+ two nodes) Kubernetes cluster on three [CoreOS](https://coreos.com) VMs.\n\n![k8s-multinode](k8s-multinode.png)\n\nIt leverages **macOS native Hypervisor virtualisation framework** of using [corectl](https://github.com/TheNewNormal/corectl) command line tool, so there are no needs to use VirtualBox or any other virtualisation software anymore.\n\n**Includes:** [Helm Classic](https://helm.sh) / [Helm v2](https://github.com/kubernetes/helm) - The Kubernetes Package Manager and an option from shell to install [Deis Workflow](https://deis.com) on top of Kubernetes: `$ install_deis`\n\n**Kube-Cluster App** can be used together with [CoreOS VM App](https://github.com/TheNewNormal/coreos-osx) which allows to build Docker containers and both apps have access to the same local Docker registry hosted by [Corectl App](https://github.com/TheNewNormal/corectl.app).\n\n**App's menu** looks as per image below:\n\n![Kube-Cluster](kube-cluster-osx.png \"Kubernetes-Cluster\")\n\nDownload\n--------\nHead over to the [Releases Page](https://github.com/TheNewNormal/kube-cluster-osx/releases) to grab the latest release.\n\n\nHow to install Kube-Cluster\n----------\n\n**Requirements**\n -----------\n  - **macOS 10.10.3** Yosemite or later \n  - Mac 2010 or later for this to work\n  - **Note: [Corectl App](https://github.com/TheNewNormal/corectl.app) must be installed, which will serve as `corectld` server daemon control.**\n  - [iTerm2](https://www.iterm2.com/) is required, if not found the app it will install it by itself.\n\n\n### Install:\n\n- Download [Corectl App](https://github.com/TheNewNormal/corectl.app) `latest dmg` from the [Releases Page](https://github.com/TheNewNormal/corectl.app/releases) and install it to `/Applications` folder, it allows to start/stop/update [corectl](https://github.com/TheNewNormal/corectl) tools needed to run CoreOS VMs on macOS\n- Open downloaded `dmg` file and drag the App e.g. to your Desktop. Start the `Kube-Cluster` and `Initial setup of Kube-Cluster VMs` will run, then follow the instructions there.\n\n**TL;DR**\n\n- App's files are installed to `~/kube-cluster` folder\n- App will bootstrap `master + two nodes` Kubernetes cluster on three VMs.\n- Mac user home folder is automaticly mounted via NFS (it has to work on Mac end of course) to to Node VMs `/Users/my_user`:`/Users/my_user` on each boot, check the [PV example](https://github.com/TheNewNormal/kube-cluster-osx/blob/master/examples/pv/nfs-pv-mount-on-pod.md) how to use Persistent Volumes.\n- After successful install you can control kube-cluster VMs via `kcluster` cli as well. Cli resides in `~/kube-cluster/bin` folder and has simple commands: `kcluster start|stop|status|ip`. Just copy the `kcluster` to your shell pre-set path.\n\n**The install will do the following:**\n\n* All dependent files/folders will be put under `kube-cluster` folder in the user's home folder e.g `/Users/someuser/kube-cluster`\n* user-data file will have fleet, etcd and flannel set\n* Will download latest CoreOS ISO image (if there is no such) and run `corectl` to initialise VM \n* When you first time do install or 'Up' after destroying Kube-Cluster setup, k8s binary files (with the version which was available when the App was built) get copied to CoreOS VMs, this speeds up Kubernetes cluster setup. \n* It will install `fleetctl, kubectl, helm and deis` clients to `~/kube-cluster/bin/`\n* Kubernetes services will be installed with fleet units which are placed in `~/kube-cluster/fleet`, this allows very easy updates to fleet units if needed.\n* [Fleet-UI](http://fleetui.com) via unit file will be installed to check running fleet units\n* [Kubernetes Dashboard](http://kubernetes.io/docs/user-guide/ui/) and  [DNS](https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dns) will be instlled as add-ons\n* Via assigned static IPs (which will be shown on first boot and will survive VMs reboots) you can access any port on any CoreOS VM\n* Persistent sparse disks (QCow2) `xxx-data.img` will be created and mounted to VMs as `/data` for these mount binds and other folders:\n\n```\n/data/var/lib/docker -\u003e /var/lib/docker\n/data/var/lib/rkt -\u003e /var/lib/rkt\n/var/lib/kubelet sym linked to /data/kubelet\n/data/opt/bin\n/data/var/lib/etcd2\n/data/kubernetes\n``` \n\nHow it works\n------------\n\nJust start `Kube-Cluster` application and you will find a small icon with the Kubernetes logo in the Status Bar.\n\n* There you can `Up`, `Halt`, `Reload` CoreOS VMs\n* Under `Up` and `OS Shell` OS Shell (terminal) will have such environment set:\n````\n1) kubernetes master - export KUBERNETES_MASTER=http://192.168.64.xxx:8080\n2) etcd endpoint - export ETCDCTL_PEERS=http://192.168.64.xxx:2379\n3) fleetctl endpoint - export FLEETCTL_ENDPOINT=http://192.168.64.xxx:2379\n4) fleetctl driver - export FLEETCTL_DRIVER=etcd\n5) Path to ~/kube-cluster/bin where fleetctl, helmc, deis and kubectl are stored\n````\n\n* `Updates/Update Kubernetes to latest stable version` will update to latest stable version of Kubernetes.\n* `Updates\\Change Kubernetes version` allows you to insatll any Kubernetes version available on github.com.\n* `Updates/Update macOS fleetctl, helmc and deis clients` will update fleetctl to the same versions as Kube-Cluster Master runs and helmc and deis to the latest versions.\n* `SSH to k8smaster01 and k8snode-01/02` menu options will open VMs shell\n* [Fleet-UI](http://fleetui.com) dashboard will show running fleet units and etc\n* [Kubernetes Dashboard](http://kubernetes.io/docs/user-guide/ui/) will show nice Kubernetes Dashboard, where you can check Nodes, Pods, Replication, Deployments, Service Controllers, deploy Apps and etc.\n\n\nExample ouput of succesfull CoreOS + Kubernetes cluster install:\n\n````\nfleetctl list-units:\nUNIT\t\t\t\t\t\t\tMACHINE\t\t\t\t\t\tACTIVE\t\tSUB\nfleet-ui.service\t\t\t\t78ea6428.../192.168.64.5\tactive\t\trunning\nkube-apiserver.service\t\t\t78ea6428.../192.168.64.5\tactive\t\trunning\nkube-controller-manager.service\t78ea6428.../192.168.64.5\tactive\t\trunning\nkube-scheduler.service\t\t\t78ea6428.../192.168.64.5\tactive\t\trunning\nkube-kubelet.service\t\t\t1d00e269.../192.168.64.6\tactive\t\trunning\nkube-kubelet.service\t\t\tde9127a5.../192.168.64.7\tactive\t\trunning\nkube-proxy.service\t\t\t\t1d00e269.../192.168.64.6\tactive\t\trunning\nkube-proxy.service\t\t\t\tde9127a5.../192.168.64.7\tactive\t\trunning\n\nWaiting for Kubernetes cluster to be ready. This can take a few minutes...\n\\...\n\nWaiting for Kubernetes nodes to be ready. This can take a bit...\n-...\n\nnode \"k8snode-01\" labeled\nnode \"k8snode-02\" labeled\n\nCreating kube-system namespace ...\n\nInstalling SkyDNS ...\nreplicationcontroller \"kube-dns-v17\" created\nservice \"kube-dns\" created\n\nInstalling Kubernetes Dashboard ...\nDeployment \"kubernetes-dashboard-v1.4.0\" created\nservice \"kubernetes-dashboard\" created\n\nkubectl get nodes:\nNAME         STATUS    AGE\nk8snode-01   Ready     6s\nk8snode-02   Ready     6s\n````\n\n\n\nUsage\n------------\n\nYou're now ready to use Kubernetes cluster.\n\nSome examples to start with [Kubernetes examples](http://kubernetes.io/docs/samples/).\n\nOther CoreOS VM based Apps for macOS\n-----------\n* Kubernetes Solo Cluster VM App can be found here [Kube-Solo for macOS](https://github.com/TheNewNormal/kube-solo-osx).\n\n* Standalone CoreOS VM App (good for docker images building and testing) can be found here [CoreOS VM for macOS](https://github.com/TheNewNormal/coreos-osx).\n\n* CoreOS Cluster App without Kubernetes can be found here [CoreOS Cluster for macOS](https://github.com/rimusz/coreos-osx-cluster).\n\n## Contributing\n\n**Kube-Cluster for macOS** is an [open source](http://opensource.org/osd) project release under\nthe [Apache License, Version 2.0](http://opensource.org/licenses/Apache-2.0),\nhence contributions and suggestions are gladly welcomed!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTheNewNormal%2Fkube-cluster-osx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTheNewNormal%2Fkube-cluster-osx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTheNewNormal%2Fkube-cluster-osx/lists"}