CoreOS-Vagrant Kubernetes Cluster for OS X
Note: This App is not much maintained anymore, please use it's alternative Kube-Cluster for macOS which is quicker to boot and does not need VirtualBox/Vagrant.
CoreOS-Vagrant Kubernetes Cluster GUI for Mac OS X is a Mac Status bar App which works like a wrapper around coreos-vagrant command line tool and bootstraps Kubernetes cluster with one master and two minions machines.
NEW: Includes Helm - The Kubernetes Package Manager
Head over to the Releases Page to grab the latest release.
How to install
- VirtualBox, Vagrant and iTerm 2
- Open downloaded dmg file and drag the App e.g. to your Desktop.
- Start the
CoreOS k8s ClusterApp and from menu
Initial setup of CoreOS-Vagrant k8s Cluster
The install will do the following:
- All dependent files/folders will be put under
coreos-k8s-clusterfolder in the user's home folder
- It will clone latest coreos-vagrant from git
- user-data files will have fleet, etcd and flannel set
- master machine will be set with IP
172.17.15.101and two cluster nodes with IPs:
172.17.15.102 and 172.17.15.103
- It will download latest vagrant VBox and run
vagrant upto initialise VM
- When you first time install or do 'Up' after destroying k8s cluster, k8s binary files (with the version which was available when the App was built) get copied to CoreOS VMs, this speeds up k8s cluster setup. To update K8s cluster just run from menu 'Updates' - Update Kubernetes cluster and OS X kubectl.
- It will install
fleetctl, etcdctl and kubectlto
- Kubernetes services will be installed with fleet units which are placed in
~/coreos-k8s-cluster/fleet, this allows very easy updates to fleet units if needed.
- Also DNS Add On will be installed
How it works
CoreOS k8s Cluster application and you will find a small icon with the CoreOS logo with (K) which means for k8s cluster in the Status Bar.
- There you can
ReloadCoreOS vagrant VMs
Up(first does 'vagrant up') and
OS ShellOS Shell (terminal) will have such environment set:
1) kubernetes master - export KUBERNETES_MASTER=http://172.17.15.101:8080 2) etcd endpoint - export ETCDCTL_PEERS=http://172.17.15.101:4001 3) fleetctl endpoint - export FLEETCTL_ENDPOINT=http://172.17.15.101:4001 4) fleetctl driver - export FLEETCTL_DRIVER=etcd 5) Path to ~/coreos-osx-cluster/bin where etcdctl, fleetctl and kubernetes binaries are stored
Updates/Update Kubernetes cluster and OS X kubectlwill update to latest version of Kubernetes.
Updates/Update OS X fleetctl, etcdclt and fleet unitswill update fleetctl, etcdclt clients to the same versions as CoreOS VMs run and to latest fleet units if the new version of App is used.
Updates/Force CoreOS updatewill be run
sudo update_engine_client -updateon each CoreOS VM.
Updates/Check updates for CoreOS vboxwill update CoreOS VM vagrant box.
SSH to k8smaster01 and k8snode-01/02menu options will open VM shells
node1/2 cAdvisorwill open cAdvisor URL in default browser
- Fleet-UI dashboard will show running fleet units and etc
- Kubernetes-UI (contributed by Kismatic.io) will show nice Kubernetes Dashboard, where you can check Nodes, Pods, Replication Controllers and etc.
Example ouput of succesfull CoreOS + Kubernetes cluster install:
$ etcd cluster: /registry /coreos.com fleetctl list-machines: MACHINE IP METADATA 9b88a46c... 172.17.15.103 role=node d0c68677... 172.17.15.102 role=node f93b555e... 172.17.15.101 role=control fleetctl list-units: UNIT MACHINE ACTIVE SUB fleet-ui.service f93b555e.../172.17.15.101 active running kube-apiserver.service f93b555e.../172.17.15.101 active running kube-controller-manager.service f93b555e.../172.17.15.101 active running kube-kubelet.service 9b88a46c.../172.17.15.103 active running kube-kubelet.service d0c68677.../172.17.15.102 active running kube-proxy.service 9b88a46c.../172.17.15.103 active running kube-proxy.service d0c68677.../172.17.15.102 active running kube-scheduler.service f93b555e.../172.17.15.101 active running k8s nodes list: NAME LABELS STATUS 172.17.15.102 node=worker1 Ready 172.17.15.103 node=worker2 Ready
You're now ready to use Kubernetes cluster.
Some examples to start with Kubernetes examples.