sealer

Build, Share and Run Both Your Kubernetes Cluster and Distributed Applications (Project under CNCF)

Stars
1.96K
Forks
354
Open issues
219
Closed issues
769
Last release
9 months ago
Last commit
6 months ago
Watchers
1.96K
Total releases
35
Total commits
1.04K
Open PRs
12
Closed PRs
1.05K
Repo URL
Project Website
https://sealer.cool
Platform
License
apache-2.0
Category
Offers premium version?
NO
Proprietary?
NO
About

Sealer -- Build, Share and Run Any Distributed Applications

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.

Concept

  • Kubefile: a file that describes how to build a ClusterImage.
  • ClusterImage: like docker image, and it contains all the dependencies(container images,yaml files or helm chart...) of your application needed.
  • Clusterfile: a file that describes how to run a ClusterImage.

Awesome features

  • Simplicity: Packing the distributed application into ClusterImage with few instructions.
  • Efficiency: Launching the k8s-based application through ClusterImage in minutes.
  • Scalability: Powerful cluster and image life cycle management, such as cluster scale, upgrade, image load, save and so on.
  • Compatibility: Multi-arch delivery Supporting. Such as AMD, ARM with common Linux distributions.
  • Iterative: Incremental operations on ClusterImage is like what container image behaves.

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:

version image Arch OS Network plugins container runtime

v0.8.6 registry.cn-qingdao.aliyuncs.com/sealer-io/kubernetes:v1.22.15-0.8.6 x86 CentOS/RHEL 7.5
CentOS/RHEL 7.6
CentOS/RHEL 7.7
CentOS/RHEL 7.8
CentOS/RHEL 7.9
Ubuntu 20.04 calico hack docker v19.03.14

v0.9.3 docker.io/sealerio/kubernetes:v1-18-3-sealerio-2 x86/arm64 CentOS/RHEL 7.5
CentOS/RHEL 7.6
CentOS/RHEL 7.7
CentOS/RHEL 7.8
CentOS/RHEL 7.9
Ubuntu 20.04 calico hack docker v19.03.14

v0.9.3 docker.io/sealerio/kubernetes:v1-20-4-sealerio-2 x86/arm64 CentOS/RHEL 7.5
CentOS/RHEL 7.6
CentOS/RHEL 7.7
CentOS/RHEL 7.8
CentOS/RHEL 7.9
Ubuntu 20.04 calico hack docker v19.03.14

v0.9.3 docker.io/sealerio/kubernetes:v1-22-15-sealerio-2 x86/arm64 CentOS/RHEL 7.5
CentOS/RHEL 7.6
CentOS/RHEL 7.7
CentOS/RHEL 7.8
CentOS/RHEL 7.9
Ubuntu 20.04 calico hack docker v19.03.14

get started

Official website

official website

Developing Sealer

Communication Channels

  • CNCF Mailing List: to be added.
  • Twitter: @sealer
  • DingTalk Group Number: 34619594

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.

Alternative Projects

Subscribe to Open Source Businees Newsletter

Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.

We'll never share your email with anyone else.