add readme (#1060)

This commit is contained in:
中弈
2022-05-27 00:40:42 +08:00
committed by GitHub
parent a65f6cee94
commit fdd06e5b29
4 changed files with 287 additions and 287 deletions
Executable → Regular
+106 -135
View File
@@ -1,181 +1,152 @@
# ⚠️ 风险须知
**由于sealos可以把一周的工作量缩短到三分钟,可能会导致您工作不饱满而被老板炒鱿鱼**
<a href="https://trackgit.com">
<img src="https://us-central1-trackgit-analytics.cloudfunctions.net/token/ping/kexrkhvqjlzkdiap4zke" alt="trackgit-views" />
</a>
![](https://socialify.git.ci/fanux/sealos/image?description=1&font=Source%20Code%20Pro&forks=1&language=1&pattern=Charlie%20Brown&stargazers=1&theme=Light)
![](https://socialify.git.ci/labring/sealos/image?description=1&descriptionEditable=Cloud%20OS%20distribution%20with%20Kubernetes%20as%20kernel.%20Practise%20cloud%20native%20like%20using%20macOS!&font=Source%20Code%20Pro&forks=1&language=1&pattern=Charlie%20Brown&stargazers=1&theme=Light)
<div align="center">
<p>
<b>一条命令部署 Kubernetes 高可用集群 👋</b>
</p>
<p>
<i>以kubernetes为内核的云操作系统发行版,让云原生简单普及。一条命令高可用安装任意版本kubernetes,支持离线,包含所有依赖,内核负载不依赖haproxy keepalived,纯golang开发,99年证书</i>
<b>Popularize cloud native technologies with ease</b>
</p>
<p>
[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/labring/sealos)
[![Build Status](https://github.com/labring/sealos/actions/workflows/release.yml/badge.svg)](https://github.com/labring/sealos/actions)
[![Website](https://img.shields.io/website?url=https%3A%2F%2Fpostwoman.io&logo=Postwoman)](https://sealyun.com)
[![Go Report Card](https://goreportcard.com/badge/github.com/labring/sealos)](https://goreportcard.com/report/github.com/labring/sealos)
[![Chat on Telegram](https://img.shields.io/badge/chat-Telegram-blueviolet?logo=Telegram)](https://t.me/gsealyun)
[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/labring/sealos)
[![Build Status](https://github.com/labring/sealos/actions/workflows/release.yml/badge.svg)](https://github.com/labring/sealos/actions)
[![Website](https://img.shields.io/website?url=https%3A%2F%2Fpostwoman.io&logo=Postwoman)](https://sealyun.com)
[![Go Report Card](https://goreportcard.com/badge/github.com/labring/sealos)](https://goreportcard.com/report/github.com/labring/sealos)
[![Chat on Telegram](https://img.shields.io/badge/chat-Telegram-blueviolet?logo=Telegram)](https://t.me/gsealyun)
</p>
</div>
---
**文档: _[官方文档](https://www.sealyun.com/instructions/1st), [English Docs](/README_en.md), [博客](https://fuckcloudnative.io)_**
**Documentation: _[Website](https://www.sealyun.com), [English Docs](/README_en.md), [Blog](https://fuckcloudnative.io)_**
**加入组织: 钉钉群(35371178), [Telegram](https://t.me/gsealyun), QQ群(98488045),作者微信:fangnux**
**Join us: DingTalk(35371178), [Telegram](https://t.me/gsealyun), QQ Group(98488045), Wechat:fangnux**
**4.0.0版本: _[sealos4.0](https://github.com/labring/sealos/tree/release-v4.0.0/docs/4.0)_**
## What is sealos
![](docs/images/arch.png)
**sealos is a cloud operating system distribution with Kubernetes as its kernel.**
# ✨ 支持的环境
In the early stages, operatings systems have adopted a layered architecture, which later evolved into kernel architecture like Linux and Windows. With the emergence of container technologies, cloud OS will migrate to a "cloud kernel" architecture with strong cohesion in the future.
## Linux 发行版, CPU架构
![](https://user-images.githubusercontent.com/8912557/170530230-16ad5607-700c-436a-930c-663e800cbf6e.png)
- Debian 9+, x86_64/ arm64
- Ubuntu 16.04, 18.04, 20.04, x86_64/ arm64
- Centos/RHEL 7.6+, x86_64/ arm64
- 其他支持 systemd 的系统环境, x86_64/ arm64
- Kylin arm64
- From now on, think of all your machines as an abstract supercomputer whose operating system is sealos, where Kubernetes serves as the OS kernel.
- Instead of IaaS, PaaS and SaaS, there will only be cloud OS drivers(CSI,CNI and CRI implementations), cloud OS kernel(Kubernetes) and distributed applications.
## kubernetes 版本
> Core Capabilities
- 1.16+
- 1.17+
- 1.18+
- 1.19+
- 1.20+
- 1.21+
- 1.22+
- 1.23+
- Cluster image - The entire cluster will be able to build, ship and run. Semantics of docker will be extended to clusters so that any distributed applications can be defined and run smoothly.
- hub.sealos - A cluster image repository where you can retrieve pre-built distributed applications such as basic Kubernetes cluster image, high availability pgsql cluster image, high availability minio cluster image, etc.
- desktop.sealos - A desktop for cloud OS, not to be confused with traditional cloud desktop. It is similar to macOS, but manages cluster and distributed applications instead of personal computers.
- Distributed application matrix - Anything you need including storage / network / HA database / message queue / monitoring can be retrieved with a click of the mouse, or simply `sealos run`.
只要kubernetes发布了新版本,sealos半天之内即可支持,更多版本支持, 详细查看[sealyun.com](https://www.sealyun.com)
## Vision of sealos
## 要求和建议
- Any organization can use the cloud OS based on Kubernetes as easily as using macOS
- Anyone can build complex cloud services with a click of the mouse or a single command
- Any organization can maintain the entire cloud system with an intern
- Any organization can have a more open AWS, and public cloud and private cloud can provide the same experience
- Any distributed software can run in the system with a single click and self-operate.
- 最低资源要求
- 2 vCpu
- 4G Ram
- 40G+ 存储
## What can sealos do
- 操作系统要求
- ssh 可以访问各安装节点
- 各节点主机名不相同,并满足kubernetes的主机名要求。
- 各节点时间同步
- 网卡名称如果是不常见的,建议修改成规范的网卡名称, 如(eth.*|en.*|em.*)
- kubernetes1.20+ 使用containerd作为cri. 不需要用户安装docker/containerd. sealos会安装1.3.9版本containerd。
- kubernetes1.19及以下 使用docker作为cri。 也不需要用户安装docker。 sealos会安装1.19.03版本docker
- 网络和 DNS 要求:
- 确保 /etc/resolv.conf 中的 DNS 地址可用。否则,可能会导致群集中coredns异常。
- 如果使用阿里云/华为云主机部署。 默认的pod网段会和阿里云的dns网段冲突, 建议自定义修改pod网段, 在init的时候指定`--podcidr` 来修改。
- sealos 默认会关闭防火墙, 如果需要打开防火墙, 建议手动放行相关的端口。
- 内核要求:
- cni组件选择cilium时要求内核版本不低于5.4
- Manage clusters lifecycle, quickly install HA Kubernetes clusters, add / remove nodes, clean the cluster, auto recovering, etc.
- Download and use OCI-compatible distributed software like openebs, minio, ingress, pgsql, mysql, redis, etc. from sealos hub.
- Manage an entire cluster and the distributed applications running on it just like using macOS with sealos desktop.
- sealos can manage Kubernetes, but is not only a Kubernetes manager. It is an abstract cloud OS that can manage Kubernetes through downloading an managing application.
- sealos can install Kubernetes, but is not only a Kubernetes installer. Installing Kubernetes is only a basic capability of sealos.
# 🚀 快速开始
## Who should use sealos
> 环境信息
- Beginners - Even beginners that know nothing about Kubernetes can use sealos painlessly through command line or GUI to obtain the software needed, like establishing a HA database with a single mouse click.
- SaaS application developer - Use a single command to retrieve the service you need, like a database, an HA message queue or a developing environment, without any knowledge of low-level details.
- Cluster manager - sealos marketplace offers a wide range of managing applications like lens official dashboard, web terminal, and cloud native monitoring systems.
- Cloud OS developer - You may develop sealos applications and submit them to sealos hub for others to use.
- Private cloud delivery operator - sealos cluster image ensures high consistency in offline environment and great encapsulation for SaaS applications, significantly easing the private cloud delivery process.
- Organizations - You may use sealos public cloud directly, or start an identical private cloud in your own data center. You can even run sealos on the IaaS of public cloud vendor and no longer suffer from vendor lock-in.
主机名|IP地址
---|---
master0|192.168.0.2
master1|192.168.0.3
master2|192.168.0.4
node0|192.168.0.5
## Why is sealos different
服务器密码:123456
> Kubernetes is a means, not an end
**kubernetes .0版本不建议上生产环境!!!**
For general users, the most important thing is what's running on Kubernetes, rather than Kubernetes itself. With sealos, users do not need to care about Kubernetes.
> 只需要准备好服务器,在任意一台服务器上执行下面命令即可
Meanwhile, for those who are familiar with Kubernetes, sealos also provides smooth experience.
```sh
# 下载并安装sealos, sealos是个golang的二进制工具,直接下载拷贝到bin目录即可, release页面也可下载
$ wget -c https://sealyun-home.oss-cn-beijing.aliyuncs.com/sealos/latest/sealos && \
> Different forms for different applications
The simplest version of sealos barely contains anything beyond capabilities related to cluster image. It only has a Kubernetes inside and other capabilities come from the applications installed, which makes sealos simple and powerful both for personal use and for serving public cloud under large-scale multi-tenant scenarios.
> Compatibility
Any preferences can be fulfilled on sealos. Take CI/CD as an example, some may like drone while others prefer argo, and they just need to install different applications. No CI/CD tools will be deeply integrated with sealos and users choose to install/uninstall them freely.
sealos will not pursue styles consistency of distributed applications, just like styles of Office and email client won't be the same. Otherwise, great effort need to be put into making them consistent and replacing an application will be very costly.
Also, sealos will not require the account information for different applications to be the same, as account management is usually specifically tuned to the application.
> Different usage for different users
In macOS, general users use GUI, developers type in commands in the terminal, and system application developers call system APIs. Similarly, in sealos, general users use GUI, cloud native practitioners use kubectl and interact with dashboard and apiserver, and developers develop Kubernetes operator directly.
> Simple and powerful
sealos provides the most basic framework and the capabilities all come from higher-level applications. The duty of sealos is to manage these applications, so the complexity of the system will not increase with more features.
## sealos in practise
Boss: "We need to keep up with the pace and build a cloud platform based on Kubernetes, with support for storage, PaaS, CI/CD, cloud developing, database, ... What's the estimated cost?"
CTO: "3 for Kubernetes, 1 storage expert, 1 developer, 3 for PaaS, 3 for CI/CD, 5 for cloud developing, 3 for operation and maintenance... I think 15 people and half a year is sufficient."
Everyone is talking, and a voice comes from the corner:
"I know an open-source software that can handle this with a single command:"
```shell script
$ sealos run kubernetes:v1.24.0 openebs:v1.9.0 mysql:v8.0 minio:v4.4.16 ingress:v4.1.0 laf:v0.8.0
-m 192.168.0.2 -n 192.168.0.3 -p 123456
```
And the task is completed before the meeting ends.
## Quickstart
> Installing an HA kubernetes cluster with calico as CNI
Here `kubernetes:1.24.0` and `calico:v3.22.1` are the cluster images in the registry which are fully compatible with OCI standard. Wonder if we can use flannel instead? Of course!
```shell script
# Download and install sealos. sealos is a golang binary so you can just download and copy to bin. You may also download it from release page.
$ wget -c https://sealyun-home.oss-cn-beijing.aliyuncs.com/sealos-4.0/latest/sealos-amd64 -O sealos && \
chmod +x sealos && mv sealos /usr/bin
# 下载离线资源包
$ wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/05a3db657821277f5f3b92d834bbaf98-v1.22.0/kube1.22.0.tar.gz
# 安装一个三master的kubernetes集群
$ sealos init --passwd '123456' \
--master 192.168.0.2 --master 192.168.0.3 --master 192.168.0.4 \
--node 192.168.0.5 \
--pkg-url /root/kube1.22.0.tar.gz \
--version v1.22.0
# 检查安装是否成功
$ kubectl get node -owide
# Create a cluster
$ sealos run kubernetes:1.24.0 calico:v3.22.1 \
--masters 192.168.64.2,192.168.64.22,192.168.64.20 \
--nodes 192.168.64.21,192.168.64.19 -p [your-ssh-passwd]
```
> 参数含义
> Building a custom cluster image
参数名|含义|示例
---|---|---
passwd|服务器密码|123456
master|k8s master节点IP地址| 192.168.0.2
node|k8s node节点IP地址|192.168.0.3
pkg-url|离线资源包地址,支持下载到本地,或者一个远程地址|/root/kube1.22.0.tar.gz
version|[资源包](https://www.sealyun.com/goodsDetail?type=cloud_kernel&name=kubernetes)对应的版本|v1.22.0
See [Building an ingress cluster image](https://github.com/labring/sealos/blob/main/docs/4.0/build-example-ingress-helm.md).
> 增加master
> Storage, message queue, database, etc.
Don't be shocked by the following:
```shell script
🐳 → sealos join --master 192.168.0.6 --master 192.168.0.7
🐳 → sealos join --master 192.168.0.6-192.168.0.9 # 或者多个连续IP
$ sealos run fanux/helm:v3.8.1 # install helm
$ sealos run fanux/openebs:v1.9.0 # install openebs
$ sealos run fanux/minio-operator:v4.4.16 fanux/ingress-nginx:4.1.0-daemonset \
fanux/mysql-operator:v8.0.23-14.1 fanux/redis-operator:5.0 # oneliner
```
> 增加node
And now everything is ready.
```shell script
🐳 → sealos join --node 192.168.0.6 --node 192.168.0.7
🐳 → sealos join --node 192.168.0.6-192.168.0.9 # 或者多个连续IP
```
> 删除指定master节点
## Links
```shell script
🐳 → sealos clean --master 192.168.0.6 --master 192.168.0.7
🐳 → sealos clean --master 192.168.0.6-192.168.0.9 # 或者多个连续IP
```
> 删除指定node节点
```shell script
🐳 → sealos clean --node 192.168.0.6 --node 192.168.0.7
🐳 → sealos clean --node 192.168.0.6-192.168.0.9 # 或者多个连续IP
```
> 清理集群
```shell script
🐳 → sealos clean --all
```
# ✅ 特性
- [x] 支持ARM版本离线包,v1.20版本离线包支持containerd集成,完全抛弃docker
- [x] 99年证书, 支持集群备份,升级
- [x] 不依赖ansible haproxy keepalived, 一个二进制工具,0依赖
- [x] 离线安装,不同kubernetes版本下载对应不同版本的[资源包](https://www.sealyun.com/goodsDetail?type=cloud_kernel&name=kubernetes)即可,离线包包含所有二进制文件配置文件和镜像
- [x] 高可用通过ipvs实现的localLB,占用资源少,稳定可靠,类似kube-proxy的实现
- [x] 几乎可兼容所有支持systemd的x86_64架构的环境
- [x] 轻松实现集群节点的增加/删除
- [x] 上千用户在线上环境使用sealos,稳定可靠
- [x] 资源包放在阿里云oss上,再也不用担心网速
- [x] dashboard ingress prometheus等APP 同样离线打包,一键安装
- [x] 支持集群镜像,自由组合定制你需要的集群,如openebs存储+数据库+minio对象存储
# 📊 Stats
![Alt](https://repobeats.axiom.co/api/embed/10ce83c1d8452210bc4a0b5a5df9d59bbc35d889.svg "Repobeats analytics image")
## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=fanux/sealos&type=Date)](https://star-history.com/#fanux/sealos&Date)
- [sealos 3.0(older version)](https://github.com/labring/sealos/tree/release-v3.3.9#readme) For older version users. Note that sealos 4.0 includes significant improvements, so please upgrade ASAP.
- [buildah](https://github.com/containers/buildah) Capabilities of buildah is widely used in sealos 4.0 to make cluster images compatible with container images and docker registry.
+181
View File
@@ -0,0 +1,181 @@
# ⚠️ 风险须知
**由于sealos可以把一周的工作量缩短到三分钟,可能会导致您工作不饱满而被老板炒鱿鱼**
<a href="https://trackgit.com">
<img src="https://us-central1-trackgit-analytics.cloudfunctions.net/token/ping/kexrkhvqjlzkdiap4zke" alt="trackgit-views" />
</a>
![](https://socialify.git.ci/fanux/sealos/image?description=1&font=Source%20Code%20Pro&forks=1&language=1&pattern=Charlie%20Brown&stargazers=1&theme=Light)
<div align="center">
<p>
<b>一条命令部署 Kubernetes 高可用集群 👋</b>
</p>
<p>
<i>以kubernetes为内核的云操作系统发行版,让云原生简单普及。一条命令高可用安装任意版本kubernetes,支持离线,包含所有依赖,内核负载不依赖haproxy keepalived,纯golang开发,99年证书</i>
</p>
<p>
[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/labring/sealos)
[![Build Status](https://github.com/labring/sealos/actions/workflows/release.yml/badge.svg)](https://github.com/labring/sealos/actions)
[![Website](https://img.shields.io/website?url=https%3A%2F%2Fpostwoman.io&logo=Postwoman)](https://sealyun.com)
[![Go Report Card](https://goreportcard.com/badge/github.com/labring/sealos)](https://goreportcard.com/report/github.com/labring/sealos)
[![Chat on Telegram](https://img.shields.io/badge/chat-Telegram-blueviolet?logo=Telegram)](https://t.me/gsealyun)
</p>
</div>
---
**文档: _[官方文档](https://www.sealyun.com/instructions/1st), [English Docs](/README_en.md), [博客](https://fuckcloudnative.io)_**
**加入组织: 钉钉群(35371178), [Telegram](https://t.me/gsealyun), QQ群(98488045),作者微信:fangnux**
**4.0.0版本: _[sealos4.0](https://github.com/labring/sealos/tree/release-v4.0.0/docs/4.0)_**
![](docs/images/arch.png)
# ✨ 支持的环境
## Linux 发行版, CPU架构
- Debian 9+, x86_64/ arm64
- Ubuntu 16.04, 18.04, 20.04, x86_64/ arm64
- Centos/RHEL 7.6+, x86_64/ arm64
- 其他支持 systemd 的系统环境, x86_64/ arm64
- Kylin arm64
## kubernetes 版本
- 1.16+
- 1.17+
- 1.18+
- 1.19+
- 1.20+
- 1.21+
- 1.22+
- 1.23+
只要kubernetes发布了新版本,sealos半天之内即可支持,更多版本支持, 详细查看[sealyun.com](https://www.sealyun.com)
## 要求和建议
- 最低资源要求
- 2 vCpu
- 4G Ram
- 40G+ 存储
- 操作系统要求
- ssh 可以访问各安装节点
- 各节点主机名不相同,并满足kubernetes的主机名要求。
- 各节点时间同步
- 网卡名称如果是不常见的,建议修改成规范的网卡名称, 如(eth.*|en.*|em.*)
- kubernetes1.20+ 使用containerd作为cri. 不需要用户安装docker/containerd. sealos会安装1.3.9版本containerd。
- kubernetes1.19及以下 使用docker作为cri。 也不需要用户安装docker。 sealos会安装1.19.03版本docker
- 网络和 DNS 要求:
- 确保 /etc/resolv.conf 中的 DNS 地址可用。否则,可能会导致群集中coredns异常。
- 如果使用阿里云/华为云主机部署。 默认的pod网段会和阿里云的dns网段冲突, 建议自定义修改pod网段, 在init的时候指定`--podcidr` 来修改。
- sealos 默认会关闭防火墙, 如果需要打开防火墙, 建议手动放行相关的端口。
- 内核要求:
- cni组件选择cilium时要求内核版本不低于5.4
# 🚀 快速开始
> 环境信息
主机名|IP地址
---|---
master0|192.168.0.2
master1|192.168.0.3
master2|192.168.0.4
node0|192.168.0.5
服务器密码:123456
**kubernetes .0版本不建议上生产环境!!!**
> 只需要准备好服务器,在任意一台服务器上执行下面命令即可
```sh
# 下载并安装sealos, sealos是个golang的二进制工具,直接下载拷贝到bin目录即可, release页面也可下载
$ wget -c https://sealyun-home.oss-cn-beijing.aliyuncs.com/sealos/latest/sealos && \
chmod +x sealos && mv sealos /usr/bin
# 下载离线资源包
$ wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/05a3db657821277f5f3b92d834bbaf98-v1.22.0/kube1.22.0.tar.gz
# 安装一个三master的kubernetes集群
$ sealos init --passwd '123456' \
--master 192.168.0.2 --master 192.168.0.3 --master 192.168.0.4 \
--node 192.168.0.5 \
--pkg-url /root/kube1.22.0.tar.gz \
--version v1.22.0
# 检查安装是否成功
$ kubectl get node -owide
```
> 参数含义
参数名|含义|示例
---|---|---
passwd|服务器密码|123456
master|k8s master节点IP地址| 192.168.0.2
node|k8s node节点IP地址|192.168.0.3
pkg-url|离线资源包地址,支持下载到本地,或者一个远程地址|/root/kube1.22.0.tar.gz
version|[资源包](https://www.sealyun.com/goodsDetail?type=cloud_kernel&name=kubernetes)对应的版本|v1.22.0
> 增加master
```shell script
🐳 → sealos join --master 192.168.0.6 --master 192.168.0.7
🐳 → sealos join --master 192.168.0.6-192.168.0.9 # 或者多个连续IP
```
> 增加node
```shell script
🐳 → sealos join --node 192.168.0.6 --node 192.168.0.7
🐳 → sealos join --node 192.168.0.6-192.168.0.9 # 或者多个连续IP
```
> 删除指定master节点
```shell script
🐳 → sealos clean --master 192.168.0.6 --master 192.168.0.7
🐳 → sealos clean --master 192.168.0.6-192.168.0.9 # 或者多个连续IP
```
> 删除指定node节点
```shell script
🐳 → sealos clean --node 192.168.0.6 --node 192.168.0.7
🐳 → sealos clean --node 192.168.0.6-192.168.0.9 # 或者多个连续IP
```
> 清理集群
```shell script
🐳 → sealos clean --all
```
# ✅ 特性
- [x] 支持ARM版本离线包,v1.20版本离线包支持containerd集成,完全抛弃docker
- [x] 99年证书, 支持集群备份,升级
- [x] 不依赖ansible haproxy keepalived, 一个二进制工具,0依赖
- [x] 离线安装,不同kubernetes版本下载对应不同版本的[资源包](https://www.sealyun.com/goodsDetail?type=cloud_kernel&name=kubernetes)即可,离线包包含所有二进制文件配置文件和镜像
- [x] 高可用通过ipvs实现的localLB,占用资源少,稳定可靠,类似kube-proxy的实现
- [x] 几乎可兼容所有支持systemd的x86_64架构的环境
- [x] 轻松实现集群节点的增加/删除
- [x] 上千用户在线上环境使用sealos,稳定可靠
- [x] 资源包放在阿里云oss上,再也不用担心网速
- [x] dashboard ingress prometheus等APP 同样离线打包,一键安装
- [x] 支持集群镜像,自由组合定制你需要的集群,如openebs存储+数据库+minio对象存储
# 📊 Stats
![Alt](https://repobeats.axiom.co/api/embed/10ce83c1d8452210bc4a0b5a5df9d59bbc35d889.svg "Repobeats analytics image")
## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=fanux/sealos&type=Date)](https://star-history.com/#fanux/sealos&Date)
-152
View File
@@ -1,152 +0,0 @@
<a href="https://trackgit.com">
<img src="https://us-central1-trackgit-analytics.cloudfunctions.net/token/ping/kexrkhvqjlzkdiap4zke" alt="trackgit-views" />
</a>
![](https://socialify.git.ci/labring/sealos/image?description=1&descriptionEditable=Cloud%20OS%20distribution%20with%20Kubernetes%20as%20kernel.%20Practise%20cloud%20native%20like%20using%20macOS!&font=Source%20Code%20Pro&forks=1&language=1&pattern=Charlie%20Brown&stargazers=1&theme=Light)
<div align="center">
<p>
<b>Popularize cloud native technologies with ease</b>
</p>
<p>
[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/labring/sealos)
[![Build Status](https://github.com/labring/sealos/actions/workflows/release.yml/badge.svg)](https://github.com/labring/sealos/actions)
[![Website](https://img.shields.io/website?url=https%3A%2F%2Fpostwoman.io&logo=Postwoman)](https://sealyun.com)
[![Go Report Card](https://goreportcard.com/badge/github.com/labring/sealos)](https://goreportcard.com/report/github.com/labring/sealos)
[![Chat on Telegram](https://img.shields.io/badge/chat-Telegram-blueviolet?logo=Telegram)](https://t.me/gsealyun)
</p>
</div>
---
**Documentation: _[Website](https://www.sealyun.com), [English Docs](/README_en.md), [Blog](https://fuckcloudnative.io)_**
**Join us: DingTalk(35371178), [Telegram](https://t.me/gsealyun), QQ Group(98488045), Wechat:fangnux**
## What is sealos
**sealos is a cloud operating system distribution with Kubernetes as its kernel.**
In the early stages, operatings systems have adopted a layered architecture, which later evolved into kernel architecture like Linux and Windows. With the emergence of container technologies, cloud OS will migrate to a "cloud kernel" architecture with strong cohesion in the future.
![](https://user-images.githubusercontent.com/8912557/162092037-82b1fc5b-cf55-4224-8266-c1c6a989a602.png)
- From now on, think of all your machines as an abstract supercomputer whose operating system is sealos, where Kubernetes serves as the OS kernel.
- Instead of IaaS, PaaS and SaaS, there will only be cloud OS drivers(CSI,CNI and CRI implementations), cloud OS kernel(Kubernetes) and distributed applications.
> Core Capabilities
- Cluster image - The entire cluster will be able to build, ship and run. Semantics of docker will be extended to clusters so that any distributed applications can be defined and run smoothly.
- hub.sealos - A cluster image repository where you can retrieve pre-built distributed applications such as basic Kubernetes cluster image, high availability pgsql cluster image, high availability minio cluster image, etc.
- desktop.sealos - A desktop for cloud OS, not to be confused with traditional cloud desktop. It is similar to macOS, but manages cluster and distributed applications instead of personal computers.
- Distributed application matrix - Anything you need including storage / network / HA database / message queue / monitoring can be retrieved with a click of the mouse, or simply `sealos run`.
## Vision of sealos
- Any organization can use the cloud OS based on Kubernetes as easily as using macOS
- Anyone can build complex cloud services with a click of the mouse or a single command
- Any organization can maintain the entire cloud system with an intern
- Any organization can have a more open AWS, and public cloud and private cloud can provide the same experience
- Any distributed software can run in the system with a single click and self-operate.
## What can sealos do
- Manage clusters lifecycle, quickly install HA Kubernetes clusters, add / remove nodes, clean the cluster, auto recovering, etc.
- Download and use OCI-compatible distributed software like openebs, minio, ingress, pgsql, mysql, redis, etc. from sealos hub.
- Manage an entire cluster and the distributed applications running on it just like using macOS with sealos desktop.
- sealos can manage Kubernetes, but is not only a Kubernetes manager. It is an abstract cloud OS that can manage Kubernetes through downloading an managing application.
- sealos can install Kubernetes, but is not only a Kubernetes installer. Installing Kubernetes is only a basic capability of sealos.
## Who should use sealos
- Beginners - Even beginners that know nothing about Kubernetes can use sealos painlessly through command line or GUI to obtain the software needed, like establishing a HA database with a single mouse click.
- SaaS application developer - Use a single command to retrieve the service you need, like a database, an HA message queue or a developing environment, without any knowledge of low-level details.
- Cluster manager - sealos marketplace offers a wide range of managing applications like lens official dashboard, web terminal, and cloud native monitoring systems.
- Cloud OS developer - You may develop sealos applications and submit them to sealos hub for others to use.
- Private cloud delivery operator - sealos cluster image ensures high consistency in offline environment and great encapsulation for SaaS applications, significantly easing the private cloud delivery process.
- Organizations - You may use sealos public cloud directly, or start an identical private cloud in your own data center. You can even run sealos on the IaaS of public cloud vendor and no longer suffer from vendor lock-in.
## Why is sealos different
> Kubernetes is a means, not an end
For general users, the most important thing is what's running on Kubernetes, rather than Kubernetes itself. With sealos, users do not need to care about Kubernetes.
Meanwhile, for those who are familiar with Kubernetes, sealos also provides smooth experience.
> Different forms for different applications
The simplest version of sealos barely contains anything beyond capabilities related to cluster image. It only has a Kubernetes inside and other capabilities come from the applications installed, which makes sealos simple and powerful both for personal use and for serving public cloud under large-scale multi-tenant scenarios.
> Compatibility
Any preferences can be fulfilled on sealos. Take CI/CD as an example, some may like drone while others prefer argo, and they just need to install different applications. No CI/CD tools will be deeply integrated with sealos and users choose to install/uninstall them freely.
sealos will not pursue styles consistency of distributed applications, just like styles of Office and email client won't be the same. Otherwise, great effort need to be put into making them consistent and replacing an application will be very costly.
Also, sealos will not require the account information for different applications to be the same, as account management is usually specifically tuned to the application.
> Different usage for different users
In macOS, general users use GUI, developers type in commands in the terminal, and system application developers call system APIs. Similarly, in sealos, general users use GUI, cloud native practitioners use kubectl and interact with dashboard and apiserver, and developers develop Kubernetes operator directly.
> Simple and powerful
sealos provides the most basic framework and the capabilities all come from higher-level applications. The duty of sealos is to manage these applications, so the complexity of the system will not increase with more features.
## sealos in practise
Boss: "We need to keep up with the pace and build a cloud platform based on Kubernetes, with support for storage, PaaS, CI/CD, cloud developing, database, ... What's the estimated cost?"
CTO: "3 for Kubernetes, 1 storage expert, 1 developer, 3 for PaaS, 3 for CI/CD, 5 for cloud developing, 3 for operation and maintenance... I think 15 people and half a year is sufficient."
Everyone is talking, and a voice comes from the corner:
"I know an open-source software that can handle this with a single command:"
```shell script
$ sealos run kubernetes:v1.24.0 openebs:v1.9.0 mysql:v8.0 minio:v4.4.16 ingress:v4.1.0 laf:v0.8.0
-m 192.168.0.2 -n 192.168.0.3 -p 123456
```
And the task is completed before the meeting ends.
## Quickstart
> Installing an HA kubernetes cluster with calico as CNI
Here `kubernetes:1.24.0` and `calico:v3.22.1` are the cluster images in the registry which are fully compatible with OCI standard. Wonder if we can use flannel instead? Of course!
```shell script
# Download and install sealos. sealos is a golang binary so you can just download and copy to bin. You may also download it from release page.
$ wget -c https://sealyun-home.oss-cn-beijing.aliyuncs.com/sealos-4.0/latest/sealos-amd64 -O sealos && \
chmod +x sealos && mv sealos /usr/bin
# Create a cluster
$ sealos run kubernetes:1.24.0 calico:v3.22.1 \
--masters 192.168.64.2,192.168.64.22,192.168.64.20 \
--nodes 192.168.64.21,192.168.64.19 -p [your-ssh-passwd]
```
> Building a custom cluster image
See [Building an ingress cluster image](https://github.com/labring/sealos/blob/main/docs/4.0/build-example-ingress-helm.md).
> Storage, message queue, database, etc.
Don't be shocked by the following:
```shell script
$ sealos run fanux/helm:v3.8.1 # install helm
$ sealos run fanux/openebs:v1.9.0 # install openebs
$ sealos run fanux/minio-operator:v4.4.16 fanux/ingress-nginx:4.1.0-daemonset \
fanux/mysql-operator:v8.0.23-14.1 fanux/redis-operator:5.0 # oneliner
```
And now everything is ready.
## Links
- [sealos 3.0(older version)](https://github.com/labring/sealos/tree/release-v3.3.9#readme) For older version users. Note that sealos 4.0 includes significant improvements, so please upgrade ASAP.
- [buildah](https://github.com/containers/buildah) Capabilities of buildah is widely used in sealos 4.0 to make cluster images compatible with container images and docker registry.