All Projects → TheNewNormal → Kube Cluster Osx

TheNewNormal / Kube Cluster Osx

Licence: apache-2.0
Local development multi node Kubernetes Cluster for macOS made very simple

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Kube Cluster Osx

kainstall-offline
kainstall tools offline file
Stars: ✭ 31 (-89.46%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
aws-kubernetes
Kubernetes cluster setup in AWS using Terraform and kubeadm
Stars: ✭ 32 (-89.12%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
K8s-Cluster-Provisioner-GCP-Terrafrom
This repo will seamlessly setup self managed Kubernetes cluster in GCP using Terraform and Kubespray.
Stars: ✭ 17 (-94.22%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
kubernetes-workshop
Kubernetes Workshop
Stars: ✭ 35 (-88.1%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
rak8s
Stand up a Raspberry Pi based Kubernetes cluster with Ansible
Stars: ✭ 362 (+23.13%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
jenkins kube brains
Example scripts to run Kubernetes on your private VMs. This is to support of Loren and my KubeCon 2018 talk "Migrating Jenkins to Kubernetes broke our brains." https://sched.co/GrSh
Stars: ✭ 34 (-88.44%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
kubernetes the easy way
Automating Kubernetes the hard way with Vagrant and scripts
Stars: ✭ 22 (-92.52%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
Kubernetes Saltstack
Recipe to deploy production Kubernetes cluster.
Stars: ✭ 191 (-35.03%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
kubernetes-ami
A simple AMI and CloudFormation for launching Kubernetes on AWS
Stars: ✭ 41 (-86.05%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
GPU-Kubernetes-Guide
How to setup a production-grade Kubernetes GPU cluster on Paperspace in 10 minutes for $10
Stars: ✭ 34 (-88.44%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
Metalk8s
An opinionated Kubernetes distribution with a focus on long-term on-prem deployments
Stars: ✭ 217 (-26.19%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
Kubernetes Under The Hood
This tutorial is someone planning to install a Kubernetes cluster and wants to understand how everything fits together.
Stars: ✭ 279 (-5.1%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
Pupernetes
Spin up a full fledged Kubernetes environment designed for local development & CI
Stars: ✭ 199 (-32.31%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
icp-ce-on-linux-containers
Multi node IBM Cloud Private Community Edition 3.2.x w/ Kubernetes 1.13.5 in a Box. Terraform, Packer and BASH based Infrastructure as Code script sets up a multi node LXD cluster, installs ICP-CE and clis on a metal or VM Ubuntu 18.04 host.
Stars: ✭ 52 (-82.31%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
Kainstall
Use shell scripts to install kubernetes(k8s) high availability clusters and addon components based on kubeadmin with one click.使用shell脚本基于kubeadmin一键安装kubernetes 高可用集群和addon组件。
Stars: ✭ 198 (-32.65%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
kubernetes-cluster
Vagrant As Automation Script
Stars: ✭ 34 (-88.44%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
Terraform Aws Kubernetes
Terraform module for Kubernetes setup on AWS
Stars: ✭ 159 (-45.92%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
Sonobuoy
Sonobuoy is a diagnostic tool that makes it easier to understand the state of a Kubernetes cluster by running a set of Kubernetes conformance tests and other plugins in an accessible and non-destructive manner.
Stars: ✭ 2,442 (+730.61%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
aksctl
An easy to use CLI for AKS cluster
Stars: ✭ 46 (-84.35%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
Eksctl
The official CLI for Amazon EKS
Stars: ✭ 3,550 (+1107.48%)
Mutual labels:  kubernetes-cluster, kubernetes-setup

Easy Kubernetes Cluster for macOS

This project is not maintained anymore, please use minikube instead

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 VMs.

k8s-multinode

It leverages macOS native Hypervisor virtualisation framework of using corectl command line tool, so there are no needs to use VirtualBox or any other virtualisation software anymore.

Includes: Helm Classic / Helm v2 - The Kubernetes Package Manager and an option from shell to install Deis Workflow on top of Kubernetes: $ install_deis

Kube-Cluster App can be used together with CoreOS VM App which allows to build Docker containers and both apps have access to the same local Docker registry hosted by Corectl App.

App's menu looks as per image below:

Kube-Cluster

Download

Head over to the Releases Page to grab the latest release.

How to install Kube-Cluster

Requirements

  • macOS 10.10.3 Yosemite or later
  • Mac 2010 or later for this to work
  • Note: Corectl App must be installed, which will serve as corectld server daemon control.
  • iTerm2 is required, if not found the app it will install it by itself.

Install:

  • Download Corectl App latest dmg from the Releases Page and install it to /Applications folder, it allows to start/stop/update corectl tools needed to run CoreOS VMs on macOS
  • 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.

TL;DR

  • App's files are installed to ~/kube-cluster folder
  • App will bootstrap master + two nodes Kubernetes cluster on three VMs.
  • 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 how to use Persistent Volumes.
  • 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.

The install will do the following:

  • All dependent files/folders will be put under kube-cluster folder in the user's home folder e.g /Users/someuser/kube-cluster
  • user-data file will have fleet, etcd and flannel set
  • Will download latest CoreOS ISO image (if there is no such) and run corectl to initialise VM
  • 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.
  • It will install fleetctl, kubectl, helm and deis clients to ~/kube-cluster/bin/
  • 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.
  • Fleet-UI via unit file will be installed to check running fleet units
  • Kubernetes Dashboard and DNS will be instlled as add-ons
  • 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
  • Persistent sparse disks (QCow2) xxx-data.img will be created and mounted to VMs as /data for these mount binds and other folders:
/data/var/lib/docker -> /var/lib/docker
/data/var/lib/rkt -> /var/lib/rkt
/var/lib/kubelet sym linked to /data/kubelet
/data/opt/bin
/data/var/lib/etcd2
/data/kubernetes

How it works

Just start Kube-Cluster application and you will find a small icon with the Kubernetes logo in the Status Bar.

  • There you can Up, Halt, Reload CoreOS VMs
  • Under Up and OS Shell OS Shell (terminal) will have such environment set:
1) kubernetes master - export KUBERNETES_MASTER=http://192.168.64.xxx:8080
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 fleetctl, helmc, deis and kubectl are stored
  • Updates/Update Kubernetes to latest stable version will update to latest stable version of Kubernetes.
  • Updates\Change Kubernetes version allows you to insatll any Kubernetes version available on github.com.
  • 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.
  • SSH to k8smaster01 and k8snode-01/02 menu options will open VMs shell
  • Fleet-UI dashboard will show running fleet units and etc
  • Kubernetes Dashboard will show nice Kubernetes Dashboard, where you can check Nodes, Pods, Replication, Deployments, Service Controllers, deploy Apps and etc.

Example ouput of succesfull CoreOS + Kubernetes cluster install:

fleetctl list-units:
UNIT							MACHINE						ACTIVE		SUB
fleet-ui.service				78ea6428.../192.168.64.5	active		running
kube-apiserver.service			78ea6428.../192.168.64.5	active		running
kube-controller-manager.service	78ea6428.../192.168.64.5	active		running
kube-scheduler.service			78ea6428.../192.168.64.5	active		running
kube-kubelet.service			1d00e269.../192.168.64.6	active		running
kube-kubelet.service			de9127a5.../192.168.64.7	active		running
kube-proxy.service				1d00e269.../192.168.64.6	active		running
kube-proxy.service				de9127a5.../192.168.64.7	active		running

Waiting for Kubernetes cluster to be ready. This can take a few minutes...
\...

Waiting for Kubernetes nodes to be ready. This can take a bit...
-...

node "k8snode-01" labeled
node "k8snode-02" labeled

Creating kube-system namespace ...

Installing SkyDNS ...
replicationcontroller "kube-dns-v17" created
service "kube-dns" created

Installing Kubernetes Dashboard ...
Deployment "kubernetes-dashboard-v1.4.0" created
service "kubernetes-dashboard" created

kubectl get nodes:
NAME         STATUS    AGE
k8snode-01   Ready     6s
k8snode-02   Ready     6s

Usage

You're now ready to use Kubernetes cluster.

Some examples to start with Kubernetes examples.

Other CoreOS VM based Apps for macOS

Contributing

Kube-Cluster for macOS is an open source project release under the Apache License, Version 2.0, hence contributions and suggestions are gladly welcomed!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].