Skip to content

Setup

kraud supports docker, swarm and compose at the same time in the same cluster. You can mix and match the tools that best for your workflow.

If you came here looking for kubernetes, note that k8s compatbility is frozen and bugs will not be fixed. Docker and the kra cli are actively managed, and we encourage you to give feedback on missing features.

To access the control plane, download the latest cli from github

Then head over to https://kraudcloud.com to obtain an api key. Note that clicking the refresh button invalidates any existing key you may have downloaded previously.

login animation

use the token to authenticate the cli

kra login $mytoken

then setup the docker remote context with

kra setup docker

using the kraud remote context

install the official docker cli from https://docs.docker.com/get-docker/

most docker commands work on kraud, but the docker cli is somewhat limited.

You can use docker context use to quickly switch between the kraud remote context and your local docker (default). for other methods, see the official docs

1
2
3
4
docker context use kraud.myuser
docker info
docker context use default
docker info

install the official kubernetes tools from https://kubernetes.io/docs/tasks/tools/

Note that only kubectl version v1.25 works. We will no longer maintain api compatbility with kubernetes from v1.26 onwoards and instead encourage users who want k8s to switch to kind instead

to switch contexts use

kubectl config use-context kraud.myuser
kubectl describe node

install the official docker cli from https://docs.docker.com/get-docker/

most compose commands work on kraud, but the docker cli is somewhat limited.

You can use docker context use to quickly switch between the kraud remote context and your local docker (default). for other methods, see the official docs

1
2
3
4
docker context use kraud.myuser
docker info
docker context use default
docker info

install the official docker cli from https://docs.docker.com/get-docker/

most swarm commands work on kraud, but the docker cli is somewhat limited.

You can use docker context use to quickly switch between the kraud remote context and your local docker (default). for other methods, see the official docs

1
2
3
4
docker context use kraud.myuser
docker info
docker context use default
docker info

starting your first pod/container

docker context use kraud.myuser
docker run -ti alpine

alternatively, to only temporarily switch context:

docker --context kraud.myuser run -ti alpine

example.yaml
---
apiVersion: v1
kind: Image
metadata:
  name: ubuntu
spec:
  ref: ubuntu
---
apiVersion: v1
kind: Pod
metadata:
  name: ubuntu
spec:
  containers:
  - name:  ubuntu
    image: ubuntu
---
kubectl apply -f example.yaml
kubectl logs -f ubuntu

docker-compose.yaml
1
2
3
4
version: "3.9"
services:
  nginx:
    image: "nginx"
docker compose up
docker-compose.yaml
1
2
3
4
version: "3.9"
services:
  nginx:
    image: "nginx"
docker stack deploy -c ./docker-compose.yaml mystack
docker stack ls