Home

Awesome

Sealer -- Build, Share and Run Any Distributed Applications

License Go Release GoDoc CII Best Practices Twitter FOSSA Status codecov

Contents

Introduction

Sealer[ˈsiːlər] provides a new way of distributed application delivery which is reducing the difficulty and complexity by packaging Kubernetes cluster and all application's dependencies into one ClusterImage.

We can write a Kubefile to build the ClusterImage, and use it to deliver your applications with embedded Kubernetes through Clusterfile.

image

Concept

image

Awesome features

Quick start

Download sealer binary file.

#install Sealer binaries
wget https://github.com/sealerio/sealer/releases/download/v0.9.3/sealer-v0.9.3-linux-amd64.tar.gz && \
tar zxvf sealer-v0.9.3-linux-amd64.tar.gz && mv sealer /usr/bin

Install a kubernetes cluster

# run a kubernetes cluster
sealer run docker.io/sealerio/kubernetes:v1-22-15-sealerio-2 \
  --masters 192.168.0.2,192.168.0.3,192.168.0.4 \
  --nodes 192.168.0.5,192.168.0.6,192.168.0.7 --passwd xxx

Build an sealer image

Kubefile:

FROM docker.io/sealerio/kubernetes:v1-22-15-sealerio-2
APP mysql https://charts/mysql.tgz
APP elasticsearch https://charts/elasticsearch.tgz
APP redis local://redis.yaml
APP businessApp local://install.sh
LAUNCH ["calico", "mysql", "elasticsearch", "redis", "businessApp"]

or

FROM docker.io/sealerio/kubernetes:v1-22-15-sealerio-2
COPY mysql.tgz .
COPY elasticsearch.tgz .
COPY redis.yaml .
COPY install.sh .
CMDS ["sh application/apps/calico/calico.sh", "helm install mysql.tgz", "helm install elasticsearch.tgz", "kubectl apply -f redis.yaml", "bash install.sh"]

build command:

NOTE: --type=kube-installer is the default value for sealer build

sealer build -f Kubefile -t my-kubernetes:1.0.0 .

Build an app image

nginx.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      run: my-nginx
  template:
    metadata:
      labels:
        run: my-nginx
    spec:
      containers:
        - name: my-nginx
          image: nginx
          ports:
            - containerPort: 80

Kubefile:

FROM scratch
APP nginx local://nginx.yaml
LAUNCH ["nginx"]
sealer build -f Kubefile -t sealer-io/nginx:latest --type app-installer

Run the app image

sealer run sealer-io/nginx:latest
# check the pod
kubectl get pod -A

Push the app image to the registry

# you can push the app image to docker hub, Ali ACR, or Harbor
sealer tag sealer-io/nginx:latest {registryDomain}/sealer-io/nginx:latest
sealer push {registryDomain}/sealer-io/nginx:latest

Clean the cluster

Some information of the basic settings will be written to the Clusterfile and stored in /root/.sealer/Clusterfile.

sealer delete -a

User guide

Sealer provides a valid image list:

versionimageArchOSNetwork pluginscontainer runtime
v0.8.6registry.cn-qingdao.aliyuncs.com/sealer-io/kubernetes:v1.22.15-0.8.6x86CentOS/RHEL 7.5<br>CentOS/RHEL 7.6<br>CentOS/RHEL 7.7<br>CentOS/RHEL 7.8<br>CentOS/RHEL 7.9<br>Ubuntu 20.04calicohack docker v19.03.14
v0.9.3docker.io/sealerio/kubernetes:v1-18-3-sealerio-2x86/arm64CentOS/RHEL 7.5<br>CentOS/RHEL 7.6<br>CentOS/RHEL 7.7<br>CentOS/RHEL 7.8<br>CentOS/RHEL 7.9<br>Ubuntu 20.04calicohack docker v19.03.14
v0.9.3docker.io/sealerio/kubernetes:v1-20-4-sealerio-2x86/arm64CentOS/RHEL 7.5<br>CentOS/RHEL 7.6<br>CentOS/RHEL 7.7<br>CentOS/RHEL 7.8<br>CentOS/RHEL 7.9<br>Ubuntu 20.04calicohack docker v19.03.14
v0.9.3docker.io/sealerio/kubernetes:v1-22-15-sealerio-2x86/arm64CentOS/RHEL 7.5<br>CentOS/RHEL 7.6<br>CentOS/RHEL 7.7<br>CentOS/RHEL 7.8<br>CentOS/RHEL 7.9<br>Ubuntu 20.04calicohack docker v19.03.14

get started

Official website

official website

Developing Sealer

Communication Channels

<!-- markdownlint-disable --> <div align="center"> <img src="https://user-images.githubusercontent.com/31209634/199941518-82f88ba5-d13c-420c-9197-95a422f6b543.JPG" width="300" title="dingtalk"> </div> <!-- markdownlint-restore -->

Code of Conduct

sealer follows the CNCF Code of Conduct.

License

Sealer is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

FOSSA Status