/skate

Low resource, no daemon, kubernetes manifest compatible mini-paas.

Primary LanguageRustApache License 2.0Apache-2.0

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
  • Networking
    • multi-host container network
    • container dns
    • ingress