Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
v0.1.2
Browse files Browse the repository at this point in the history
  • Loading branch information
rimusz committed Jan 25, 2016
1 parent e90ffa1 commit ec079a9
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 19 deletions.
43 changes: 25 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
Kubernetes Cluster for OS X (work in progress)
Kubernetes Cluster for OS X
============================
![k8s-multinode](k8s-multinode.png)

**Kube-Cluster for Mac OS X** is a Mac Status bar App which works like a wrapper around the [corectl](https://github.com/TheNewNormal/corectl) command line tool and bootstraps Kubernetes cluster with one master and two nodes based on [CoreOS VMs](https://coreos.com).
**Kube-Cluster for Mac OS X** is a Mac Status bar App which works like a wrapper around the [corectl](https://github.com/TheNewNormal/corectl) command line tool (it makes easier to control [xhyve](https://github.com/xhyve-xyz/xhyve) based VMs) and bootstraps Kubernetes cluster with one master and two nodes based on [CoreOS VMs](https://coreos.com).

Includes [Helm](https://helm.sh) - The Kubernetes Package Manager.

Kube-Cluster App can be used together with [CoreOS VM App](https://github.com/TheNewNormal/coreos-osx) which allows to build Docker containers and has a private local Docker registry v2 which is accessible from Kube-Cluster App.

![Kube-Cluster](kube-cluster-osx.png "Kubernetes-Cluster")

Download
Expand All @@ -16,20 +18,16 @@ Head over to the [Releases Page](https://github.com/TheNewNormal/kube-cluster-os
How to install Kube-Cluster
----------

**WARNING**
**Requirements**
-----------
- You must be running **OS X 10.10.3** Yosemite or later and 2010 or later Mac for this to work.

- If you are, or were, running any version of VirtualBox, prior to 4.3.30 or 5.0,
and attempt to run xhyve your system will immediately crash as a kernel panic is
triggered. This is due to a VirtualBox bug (that got fixed in newest VirtualBox
versions) as VirtualBox wasn't playing nice with OSX's Hypervisor.framework used
by [xhyve](https://github.com/mist64/xhyve).
- **OS X 10.10.3** Yosemite or later
- Mac 2010 or later for this to work.
- If you want to use this App with any other VirtualBox based VM, you need to use newest versions of VirtualBox 4.3.x or 5.0.x.


###Install:

Start the `Kube-Cluster` and from menu `Setup` choose `Initial setup of Kube-Cluster` and the install will do the following:
Open downloaded `dmg` file and drag the App e.g. to your Desktop. Start the `Kube-Cluster` and and `Initial setup of Kube-Cluster VMs` will run.

* All dependent files/folders will be put under `kube-cluster` folder in the user's home folder e.g /Users/someuser/kube-cluster
* User's Mac password will be stored in `OS X KeyChain`, it will be used for sudo command which needs to be used starting VM with `corectl`
Expand All @@ -44,7 +42,14 @@ That allows to share the same images between different `corectl' based Apps and
* [Kubernetes UI](http://kubernetes.io/v1.1/docs/user-guide/ui.html) will be instlled as an add-on
* Also [DNS Add On](https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dns) will be installed
* 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
* Root persistant disks for VMs will be created and mounted to `/` so data will survive VMs reboots.
* Persistent disks `xxx-data.img` will be created and mounted to VMs `/data` for these mount binds:

```
/data/var/lib/docker -> /var/lib/docker
/data/var/lib/rkt -> /var/lib/rkt
/data/var/lib/etcd2 -> /var/lib/etcd2
/data/opt/bin -> /opt/bin
```

How it works
------------
Expand All @@ -58,15 +63,15 @@ Just start `Kube-Cluster` application and you will find a small icon with the Ku
2) etcd endpoint - export ETCDCTL_PEERS=http://192.168.64.xxx:2379
3) fleetctl endpoint - export FLEETCTL_ENDPOINT=http://192.168.64.xxx:2379
4) fleetctl driver - export FLEETCTL_DRIVER=etcd
5) Path to ~/kube-cluster/bin where etcdctl, fleetctl and kubernetes binaries are stored
5) Path to ~/kube-cluster/bin where etcdctl, fleetctl, helm and kubernetes binaries are stored
````

* `Updates/Update Kubernetes cluster and OS X kubectl` will update to latest stable version of Kubernetes.
*`Updates/Update OS X fleetctl and helm clients` will update fleetctl to the same versions as Kube-Cluster Master runs and helm to the latest version.
* `Updates/Force CoreOS update` will be run `sudo update_engine_client -update` on each CoreOS VM.
* `Updates/Check updates for CoreOS vbox` will update CoreOS VM vagrant box.
*
* `SSH to k8smaster01 and k8snode-01/02` menu options will open VM shells
* `SSH to k8smaster01 and k8snode-01/02` menu options will open VMs shell
* `node1/2 cAdvisor` will open cAdvisor URL in default browser
* [Fleet-UI](http://fleetui.com) dashboard will show running fleet units and etc
* [Kubernetes-UI](https://github.com/GoogleCloudPlatform/kubernetes/tree/master/www) (contributed by [Kismatic.io](http://kismatic.io/)) will show nice Kubernetes Dashboard, where you can check Nodes, Pods, Replication Controllers and etc.
Expand All @@ -90,6 +95,8 @@ f93b555e... 192.168.64.2 role=control
fleetctl list-units:
UNIT MACHINE ACTIVE SUB
fleet-ui.service f93b555e.../192.168.64.2 active running
kube-apiproxy.service 9b88a46c.../192.168.64.3 active running
kube-apiproxy.service 3d0c68677.../192.168.64.4 active running
kube-apiserver.service f93b555e.../192.168.64.2 active running
kube-controller-manager.service f93b555e.../192.168.64.2 active running
kube-kubelet.service 9b88a46c.../192.168.64.3 active running
Expand All @@ -98,10 +105,10 @@ kube-proxy.service 9b88a46c.../192.168.64.3 active running
kube-proxy.service d0c68677.../192.168.64.4 active running
kube-scheduler.service f93b555e.../192.168.64.2 active running
k8s nodes list:
NAME LABELS STATUS
192.168.64.3 node=worker1 Ready
192.168.64.4 node=worker2 Ready
kubectl get nodes:
NAME LABELS STATUS AGE
192.168.64.8 kubernetes.io/hostname=192.168.64.8,node=worker1 Ready 1h
192.168.64.9 kubernetes.io/hostname=192.168.64.9,node=worker2 Ready 1h
````

Expand Down
2 changes: 1 addition & 1 deletion src/Kube-Cluster/Kube-Cluster-Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>21</string>
<string>25</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>
<key>LSMinimumSystemVersion</key>
Expand Down

0 comments on commit ec079a9

Please sign in to comment.