Skip to content

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.

License

Notifications You must be signed in to change notification settings

chris-sun-star/sealer

 
 

Repository files navigation

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

About

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.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 95.4%
  • Shell 3.0%
  • Other 1.6%