Code Monkey home page Code Monkey logo

sealer's Introduction

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

FOSSA Status

sealer's People

Contributors

kakazhou719 avatar bxy4543 avatar fanux avatar stevent-fei avatar justadogistaken avatar cuisongliu avatar allencloud avatar shy-xu avatar vincecui avatar lllwan avatar starnop avatar zhy76 avatar starcomingup avatar tgfree7 avatar jsparter avatar ytghost avatar wizardlyk avatar lan-ce-lot avatar wuxingzhong avatar oldthreefeng avatar zsyaoo avatar mahmut-abi avatar dawnguodev avatar ly-wjj avatar sfeng1996 avatar touchuyht avatar jinnzy avatar chaunceyjiang avatar jmpcyc avatar tingxuan233 avatar

Stargazers

 avatar

Forkers

web-logs2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.