Skate
Sort of Kubernetes...
An extremely low footprint mini paas for scheduling resources on a small number of hosts.
Kubernetes manifest compatible. Will support only a subset of resources and only a subset of their functionality:
- Deployments
- Pods
- DaemonSets
- Service: ExternalName only (w.i.p)
- Ingress (w.i.p)
Currently uses vendored ssh, plan is to move to openssh and use the native binary on the host.
Supported Distro: Debian like (Ubuntu, Debian, Raspbian) Supported architectures: amd64, armv6, armv7, arm64
Architecture
skate
cli that is basically the scheduler, run from developers machine.- talks to
skatelet
binaries on each host (not long lived agents, also a cli) over ssh
Could be described as one-shot scheduling.
Registering nodes
skate create node --name foo --host bar
This will ensure all hosts are provisioned with skatelet
, the agent
Playing with objects
skate get pods
skate describe pod foo
skate get nodes
skate describe node bar
skate get deployments
skate describe deployment baz
Refreshing state (usually done automatically)
skate refresh
Deploying manifests
skate apply -f manifest.yaml
Developing
On mac I've been using cross for cross compilation:
make armv7
make armv6
Ubuntu
# multipass image doesn't have much
sudo apt-get install -y gcc make libssl-dev pkg-config
Features
- Scheduling
- Strategies
- Recreate
- Rolling Deployments
- Pods
- Deployments
- Daemonsets
- Strategies
- Networking
- multi-host container network
- container dns
- ingress