github.com/alibaba/sealer@v0.8.6-0.20220430115802-37a2bdaa8173/README.md (about)

     1  # Sealer -- Build, Share and Run Any Distributed Applications
     2  
     3  [![License](https://img.shields.io/badge/license-Apache%202-brightgreen.svg)](https://github.com/alibaba/sealer/blob/master/LICENSE)
     4  [![Go](https://github.com/alibaba/sealer/actions/workflows/go.yml/badge.svg)](https://github.com/alibaba/sealer/actions/workflows/go.yml)
     5  [![Release](https://github.com/alibaba/sealer/actions/workflows/release.yml/badge.svg)](https://github.com/alibaba/sealer/actions/workflows/release.yml)
     6  [![GoDoc](https://godoc.org/github.com/alibaba/sealer?status.svg)](https://godoc.org/github.com/alibaba/sealer)
     7  [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/5205/badge)](https://bestpractices.coreinfrastructure.org/en/projects/5205)
     8  [![Twitter](https://img.shields.io/badge/Follow-sealer-1DA1F2?logo=twitter)](https://twitter.com/sealer_oss)
     9  
    10  [简体中文](./docs/README_zh.md)
    11  
    12  ## Contents
    13  
    14  * [Introduction](#introduction)
    15  * [Quick Start](#quick-start)
    16  * [Contributing](./CONTRIBUTING.md)
    17  * [FAQ](./FAQ.md)
    18  * [Adopters](./Adopters.md)
    19  * [LICENSE](LICENSE)
    20  
    21  ## Introduction
    22  
    23  sealer[ˈsiːlər] provides the way for distributed application package and delivery based on kubernetes.
    24  
    25  ![image](https://user-images.githubusercontent.com/8912557/117263291-b88b8700-ae84-11eb-8b46-838292e85c5c.png)
    26  
    27  > Concept
    28  
    29  * CloudImage : like Dockerimage, but the rootfs is kubernetes, and contains all the dependencies(docker images,yaml files or helm chart...) your application needs.
    30  * Kubefile : the file describe how to build a CloudImage.
    31  * Clusterfile : the config of using CloudImage to run a cluster.
    32  
    33  ![image](https://user-images.githubusercontent.com/8912557/117400612-97cf3a00-af35-11eb-90b9-f5dc8e8117b5.png)
    34  
    35  We can write a Kubefile, and build a CloudImage, then using a Clusterfile to run a cluster.
    36  
    37  sealer[ˈsiːlər] provides the way for distributed application package and delivery based on kubernetes.
    38  
    39  It solves the delivery problem of complex applications by packaging distributed applications and dependencies(like database,middleware) together.
    40  
    41  For example, build a dashboard CloudImage:
    42  
    43  Kubefile:
    44  
    45  ```shell script
    46  # base CloudImage contains all the files that run a kubernetes cluster needed.
    47  #    1. kubernetes components like kubectl kubeadm kubelet and apiserver images ...
    48  #    2. docker engine, and a private registry
    49  #    3. config files, yaml, static files, scripts ...
    50  FROM registry.cn-qingdao.aliyuncs.com/sealer-io/kubernetes:v1.19.8
    51  # download kubernetes dashboard yaml file
    52  RUN wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml
    53  # when run this CloudImage, will apply a dashboard manifests
    54  CMD kubectl apply -f recommended.yaml
    55  ```
    56  
    57  Build dashobard CloudImage:
    58  
    59  ```shell script
    60  sealer build -t registry.cn-qingdao.aliyuncs.com/sealer-io/dashboard:latest .
    61  ```
    62  
    63  Run a kubernetes cluster with dashboard:
    64  
    65  ```shell script
    66  # sealer will install a kubernetes on host 192.168.0.2 then apply the dashboard manifests
    67  sealer run registry.cn-qingdao.aliyuncs.com/sealer-io/dashboard:latest --masters 192.168.0.2 --passwd xxx
    68  # check the pod
    69  kubectl get pod -A|grep dashboard
    70  ```
    71  
    72  Push the CloudImage to the registry
    73  
    74  ```shell script
    75  # you can push the CloudImage to docker hub, Ali ACR, or Harbor
    76  sealer push registry.cn-qingdao.aliyuncs.com/sealer-io/dashboard:latest
    77  ```
    78  
    79  ## Usage scenarios & features
    80  
    81  * [x] An extremely simple way to install kubernetes and other software in the kubernetes ecosystem in a production or offline environment.
    82  * [x] Through Kubefile, you can easily customize the kubernetes CloudImage to package the cluster and applications, and submit them to the registry.
    83  * [x] Powerful life cycle management capabilities, to perform operations such as cluster upgrade, cluster backup and recovery, node expansion and contraction in unimaginable simple ways
    84  * [x] Very fast, complete cluster installation within 3 minutes
    85  * [x] Support ARM x86, v1.20 and above versions support containerd, almost compatible with all Linux operating systems that support systemd
    86  * [x] Does not rely on ansible haproxy keepalived, high availability is achieved through ipvs, takes up less resources, is stable and reliable
    87  * [x] Many ecological software images can be used directly, like prometheus mysql..., and you can combine then together.
    88  
    89  ## Quick start
    90  
    91  Install a kubernetes cluster
    92  
    93  ```shell script
    94  #install Sealer binaries
    95  wget https://github.com/alibaba/sealer/releases/download/v0.8.5/sealer-v0.8.5-linux-amd64.tar.gz && \
    96  tar zxvf sealer-v0.8.5-linux-amd64.tar.gz && mv sealer /usr/bin
    97  #run a kubernetes cluster
    98  sealer run kubernetes:v1.19.8 --masters 192.168.0.2 --passwd xxx
    99  ```
   100  
   101  ## User guide
   102  
   103  [get started](docs/site/src/docs/getting-started/quick-start.md)
   104  
   105  ## Official website
   106  
   107  [official website](http://sealer.cool)
   108  
   109  ## Developing Sealer
   110  
   111  * [contributing guide](./CONTRIBUTING.md)
   112  * [贡献文档](./docs/contributing_zh.md)
   113  
   114  ## License
   115  
   116  Sealer is licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) for the full license text.