/sealer

A tool to seal application's all dependencies and Kubernetes into ClusterImage, distribute this application anywhere via ClusterImage, and run it within any cluster in one command.

Primary LanguageGoApache License 2.0Apache-2.0

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

  • 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.

image

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.8.6/sealer-v0.8.6-linux-amd64.tar.gz && \
tar zxvf sealer-v0.8.6-linux-amd64.tar.gz && mv sealer /usr/bin

Build a ClusterImage with Kubernetes dashboard:

Kubefile:

# base ClusterImage contains all the files that run a kubernetes cluster needed.
#    1. kubernetes components like kubectl kubeadm kubelet and apiserver images ...
#    2. docker engine, and a private registry
#    3. config files, yaml, static files, scripts ...
FROM registry.cn-qingdao.aliyuncs.com/sealer-io/kubernetes:v1.19.8
# download kubernetes dashboard yaml file
RUN wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml
# when run this ClusterImage, will apply a dashboard manifests
CMD kubectl apply -f recommended.yaml

Build it:

sealer build -t registry.cn-qingdao.aliyuncs.com/sealer-io/dashboard:latest .

Make it run:

# sealer will install a kubernetes on host 192.168.0.2 then apply the dashboard manifests
sealer run registry.cn-qingdao.aliyuncs.com/sealer-io/dashboard:latest --masters 192.168.0.2 --passwd xxx
# check the pod
kubectl get pod -A|grep dashboard

Push the ClusterImage to the registry

# you can push the ClusterImage to docker hub, Ali ACR, or Harbor
sealer push registry.cn-qingdao.aliyuncs.com/sealer-io/dashboard:latest

User guide

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.

FOSSA Status