Sealos 云操作系统私有化部署教程
Sealos 私有云已经正式发布了,它为企业用云提供了一种革命性的新方案。Sealos 的核心优势在于,它允许企业在自己的机房中一键构建一个功能与 Sealos 公有云完全相同的私有云。这意味着企业可以在自己的控制和安全范围内,享受到公有云所提供的灵活性和扩展性。这对于需要高度数据安全和个性化服务的企业来说,具有极大的吸引力。
而且 Sealos 私有云的维护成本极低,只需要半个人力资源即可。极大地减轻了企业的运营负担,特别是对于那些没有大量 IT 支持的中小型企业来说尤为重要。
本文我们将详细介绍如何在本地环境中一键部署 Sealos 私有云。
大规模集群以及企业生产环境强烈建议使用 Sealos 私有云的企业版或者定制版。
准备工作
服务器
以下是一些基本的要求:
- 每个集群节点应该有不同的主机名。
- 所有节点的时间需要同步。
- 建议使用干净的操作系统来创建集群。不要自己装 Docker!
- 支持大多数 Linux 发行版,例如:Ubuntu、Debian、CentOS、Rocky linux。
- 系统内核版本在 5.4 及以上。
推荐使用 Ubuntu 22.04 LTS 操作系统,内核版本在 5.4 及以上,配置如下:
| 操作系统 | 内核版本 | CPU | 内存 | 存储 | Masters | Nodes |
|---|---|---|---|---|---|---|
| Ubuntu 22.04 LTS | ≥ 5.4 | 4C | 8GB | 100GB | 奇数台 | 任意 |
Kubernetes 和 Sealos Cloud 的系统组件在每个 Master 节点上大约需要 2 核心(2c)和 2GB 内存(2g),在每个 Node 节点上则需要大约
1 核心(1c)和 1GB 内存(1g),请确保集群中每个节点都有足够的计算资源以支持系统组件的运行。
网络
- 所有节点之间网络互通;
- 需要在 Kubernetes 集群的第一个 Master 节点上执行脚本,目前集群外的节点不支持集群安装;
- 所有节点之间可以互相通信。
域名
- 需要一个域名用于访问 Sealos 及相关服务;
- 如果您没有域名,可以使用
nip.io提供的免费域名服务。
证书
Sealos 需要使用证书来保证通信安全,默认在您不提供证书的情况下我们会使用 cert-manager 来自动签发证书。
如果您能提供证书,证书需要解析下列域名 (假设您提供的域名为:cloud.example.io):
*.cloud.example.iocloud.example.io
安装步骤
为了便于部署,我们提供了一个一键安装脚本。该脚本可以从零开始部署 Sealos 集群,也可以在已有的 Kubernetes 集群上部署 Sealos
集群(在已有集群上执行时请谨慎操作)。
该脚本只支持在 “使用 Sealos 安装的 Kubernetes 集群” 上部署 Sealos 集群,暂不支持其他方式部署的 Kubernetes。
关于如何使用 Sealos 部署 Kubernetes 集群,可以参考:安装 Kubernetes 集群,支持 Docker Hub 中的几乎所有 Kubernetes 版本(暂不支持 1.28 及以上版本)。
如果您的机器还没有安装过 Kubernetes,建议直接使用该脚本连同 Kubernetes 和 Sealos 集群一起安装。
根据您的域名情况,可以分为以下几种安装方式:
1、无公网域名,也不想自定义域名
如果您没有公网域名,也不需要自定义域名,可以选择直接使用 nip.io 提供的免费域名服务。nip.io 是一个免费的通配符 DNS 服务,它可以将动态分配的 IP 地址映射到一个固定的子域名上,特别适合用于本地开发环境。具体的工作原理为:
您可以使用任何 IP 地址作为 nip.io 子域名的一部分,而 nip.io 会将它解析回相应的 IP 地址。例如,如果你有一个内网 IP 地址 192.168.1.10,你可以使用 192.168.1.10.nip.io 作为域名,所有向这个域名发送的请求都会被解析到 192.168.1.10 这个 IP 地址上。这样就无需修改本地 hosts 文件,也不需要搭建内网 DNS 服务,直接通过这个域名就能访问内网服务了。
使用 nip.io 作为 Sealos 的域名非常简单,只需在第一个 Master 节点上执行以下命令,并根据提示输入参数:
$ curl -sfL https://mirror.ghproxy.com/https://raw.githubusercontent.com/labring/sealos/main/scripts/cloud/install.sh -o /tmp/install.sh && bash /tmp/install.sh \
--image-registry=registry.cn-shanghai.aliyuncs.com --zh \
--proxy-prefix=https://mirror.ghproxy.com
当需要你输入 Sealos Cloud 域名时,你需要输入这种格式的域名:[ip].nip.io,其中 [ip] 是你的 Master 节点 IP。
安装完成后,终端会输出 Sealos 访问域名以及用户名和密码,例如:
Sealos cloud login info:
Cloud Version: latest
URL: https://10.214.210.102.nip.io
admin Username: admin
admin Password: sealos2023
2、有公网域名,想公网访问
如果你有自己的公网域名,并且想通过公网访问 Sealos,那你就需要准备好公网受信任的 SSL/TLS 证书。你可以通过 acme.sh 等工具自动签发证书,也可以从域名提供商处下载免费证书或者购买商业证书。
准备好域名证书后,需要将证书放到第一个 Master 节点的某个目录中,例如 /root/certs/。
您还需要在域名服务商处添加一条该域名的 A 记录,地址解析到第一个 Master 节点的公网 IP 地址。同时还需要添加一条泛解析记录,将该域名的子域名也解析到第一个 Master 节点的公网 IP 地址。
例如 (假设你的域名是
cloud.example.io,假设你的 Master 节点内网地址是192.168.1.10):
cloud.example.io A 192.168.1.1
*.cloud.example.io A 192.168.1.1
然后在第一个 Master 节点上执行以下命令,并根据提示输入参数:
```bash
$ curl -sfL https://mirror.ghproxy.com/https://raw.githubusercontent.com/labring/sealos/main/scripts/cloud/install.sh -o /tmp/install.sh && bash /tmp/install.sh \
--image-registry=registry.cn-shanghai.aliyuncs.com --zh \
--proxy-prefix=https://mirror.ghproxy.com \
--cloud-domain=<your_domain> \
--cert-path=<your_crt> \
--key-path=<your_key>
- <your_domain> 需要替换成你自己的公网域名。
- <your_crt> 需要替换成你的证书位置,通常是
.crt或.pem文件。例如:/root/certs/example.crt。 - <your_key> 需要替换成你的私钥位置,通常是
.key或.pem文件。例如:/root/certs/example.key。
3、有公网域名,想内网访问
如果您有自己的公网域名,但是只有内网 IP,或者只想在内网访问 Sealos,那您只需要在域名服务商处添加一条该域名的 A 记录,地址解析到第一个 Master 节点的内网 IP 地址。同时还需要添加一条泛解析记录,将该域名的子域名也解析到第一个 Master 节点的内网 IP 地址。
例如 (假设你的域名是 cloud.example.io,假设你的 Master 节点内网地址是 192.168.1.10):
cloud.example.io A 192.168.1.1
*.cloud.example.io A 192.168.1.1
然后在第一个 Master 节点上执行以下命令,并根据提示输入参数:
$ curl -sfL https://mirror.ghproxy.com/https://raw.githubusercontent.com/labring/sealos/main/scripts/cloud/install.sh -o /tmp/install.sh && bash /tmp/install.sh \
--image-registry=registry.cn-shanghai.aliyuncs.com --zh \
--proxy-prefix=https://mirror.ghproxy.com \
--cloud-domain=<your_domain>
其中 <your_domain> 需要替换成你自己的公网域名。
安装过程中 Sealos 会使用 cert-manager 来自签名证书。
4、无公网域名,但想自定义域名
如果您没有公网域名,但是需要自定义域名,那么就需要在内网自建 DNS,然后将自定义域名解析到第一个 Master 节点的内网 IP 地址。
假设您的第一个 Master 节点的内网 IP 地址为
192.168.1.10。假设您的域名为cloud.example.io。
可以考虑使用 CoreDNS 来自建 DNS 服务,参考配置:
(global_cache) {
cache {
# [5, 60]
success 65536 3600 300
# [1, 10]
denial 8192 600 60
prefetch 1 60m 10%
}
}
.:53 {
errors
health
ready
import global_cache
template IN A cloud.example.io {
answer "{{ .Name }} 60 IN A 192.168.1.10"
fallthrough
}
forward . 223.5.5.5
log
loop
reload 6s
}
这样不管您访问 cloud.example.io 还是 *.cloud.example.io 都会解析到第一个 Master 节点的内网 IP 地址。
然后在第一个 Master 节点上执行以下命令,并根据提示输入参数:
$ curl -sfL https://mirror.ghproxy.com/https://raw.githubusercontent.com/labring/sealos/main/scripts/cloud/install.sh -o /tmp/install.sh && bash /tmp/install.sh \
--image-registry=registry.cn-shanghai.aliyuncs.com --zh \
--proxy-prefix=https://mirror.ghproxy.com \
--cloud-domain=<your_domain>
其中 <your_domain> 需要替换成你自己的自定义域名。
安装过程中 Sealos 会使用 cert-manager 来自签名证书。
信任自签名证书
如果您选择了上面提供的安装方式中的 1 或 3 或 4,那么您的证书默认是不受浏览器信任的,当你访问 Sealos Cloud 时,浏览器会提示下面的信息:

即使点击继续访问,进入 Sealos Cloud 之后也无法正常显示 App 图标,无法打开 App。

我们需要导出自签名证书,并让系统信任自签名证书。步骤如下。
导出自签名证书
各个浏览器导出自签名证书的步骤略有不同。以下是在一些常用浏览器中导出自签名证书的步骤:
Chrome (以及基于 Chromium 的浏览器如新版 Edge 和 Brave)
- 在浏览器地址栏左侧点击 “不安全” 字样。
- 点击 “证书无效”,这将打开一个证书信息窗口。
- 在打开的证书窗口中,切换到 “详细信息” 标签页。
- 在 “详细信息” 标签页中,找到并点击 “导出”。
- 选择一个文件名和保存位置,然后完成导出过程。
Firefox
点击页面中的 “高级”。

然后点击 “查看证书”。

在证书页面中点击 “PEM (证书)”。

Safari
点击页面中的 “显示详细信息”。

然后点击 “查看此证书”。

在证书视图中,可以看到一个带有证书链的窗口。

拖动红框圈出来的证书到桌面或文件夹中,证书就会被导出了。
信任自签名证书
macOS
在 macOS 上信任自签名证书可以使用以下命令:
# 假设证书保存在 ~/Downloads/10.214.210.102.nip.io.cer
$ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/Downloads/10.214.210.102.nip.io.cer
您也可以通过以下步骤来操作:
1、添加证书到钥匙串
- 启动钥匙串访问 (Keychain Access) 应用程序,点击左侧 “系统钥匙串” 下方的 “系统” 类别。
- 然后打开 “访达”,进入证书保存位置,双击证书文件:这通常是一个
.cer,.crt,或.pem文件。 - 输入您的用户名和密码以允许修改。
- 证书现在应该已经被添加到您的钥匙串中。
2、信任证书
- 在钥匙串访问中,从 “系统” 类别的列表中找到刚刚添加的自签名证书,并双击它。
- 在打开的窗口中,展开 “信任” 部分。
- 在 “当使用此证书时” 选项旁边,有一个下拉菜单,默认设置可能是 “使用系统默认值”。要信任证书,请改为 “始终信任”。
- 关闭证书信息窗口,系统可能会提示您验证您的用户名和密码,以确认更改。
- 现在,证书已经被标记为受信任。
自签名证书不由第三方证书颁发机构 (CA) 颁发,因此,其他设备也不会信任该证书。如果您是在公司或组织内部使用自签名证书,可能需要在每个需要信任此证书的设备上手动进行上述步骤。
Windows
- 在根证书文件点鼠标右键,选择 “安装证书”。
- 选择 “当前用户” 或者 “本地计算机”,下一步
- “将所有的证书都放入下列存储”,“浏览”,“受信任的根证书颁发机构”,“确定”,下一步。
- 完成,“是”,确定。

Sealos 云操作系统私有化部署教程的更多相关文章
- Twikoo私有化部署教程--迁移腾讯云
目录 备份数据 私有化部署 创建容器 导入数据 重新配置twikoo面板设置 引入前端CDN Nginx https反代http 作者:小牛呼噜噜 | https://xiaoniuhululu.co ...
- Spire.Cloud 私有化部署教程(二)- Ubuntu 18.04 系统
本教程主要介绍如何在Ubuntu 18.04系统上实现Spire.Cloud私有化部署.CentOS 7系统部署请参考 这篇教程. 详细步骤如下: 一.环境配置 1.关闭防火墙 1)首先查看防火墙状态 ...
- Spire.Cloud 私有化部署教程(一) - CentOS 7 系统
Spire.Cloud支持的Linux服务器系统包括CentOS和Ubuntu(推荐使用CentOS 7和Ubuntu 18版本),本教程主要介绍如何在CentOS 7系统上实现Spire.Cloud ...
- Spire.Cloud 私有化部署教程(三) - Windows 系统
本教程主要介绍如何在 Windows 系统上实现 Spire.Cloud 私有化部署. 详细步骤如下: 一.安装依赖 我们的私有部署的依赖有 Nodejs.MySQL.Redis 和 RabbitMQ ...
- 阿里云运维部署工具AppDeploy详细教程
AppDeploy是一个通过SSH实现的命令行工具,可完成应用部署和远程运维管理.当前工具实现为两个版本:普通版(伪代码描述语言)和Python版.Python版使用Python语法规则,可实现您的各 ...
- Docker技术浅谈:私有化部署的优势以及在顶象内部的应用实践
顶象全景式业务安全风控体系基于新一代风控体系构建,并采用Docker技术进行私有云和公有云部署.本文主要和大家分享下Docker容器技术和顶象风控系统私有化部署的优势以及Docker容器技术在顶象内部 ...
- Ubuntu 云服务器上部署自己的 Rails 应用
自学rails一段时间了,之前只用heroku部署了网站,想尝试把网站以一个更“正经”的方式呈现出来,就买了一个阿里云服务器.参考了网上部分rails部署教程,过程中也遇到了一些问题,所以在完成之后总 ...
- 恒天云单节点部署指南--OpenStack H版本虚拟机单节点部署解决方案
本帖是openstack单节点在虚拟机上部署的实践.想要玩玩和学习openstack的小伙伴都看过来,尤其是那些部署openstack失败的小伙伴.本帖可以让你先领略一下openstack的魅力.本I ...
- 新版TeamTalk部署教程
新版TeamTalk部署教程 新版TeamTalk已经在2015年03月28日发布了,目前版本定为1.0.0版本,后续版本号会按照如下规则进行:1.版本规则按照x.y.z的形式进行.2.各端小bug修 ...
- nodejs服务器部署教程四
nodejs服务器部署最后一篇文章,部署ssl证书,升级http为https,其实网上相关教程有很多,但是略麻烦,本教程让你一切从简,5分钟搞定https,免费一年哦 申请ssl证书 免费申请的机构有 ...
随机推荐
- JavaWeb和MVC三层架构
JavaWeb 概述 网站发布和部署一定要依托技术语言吗: 不一定,一个网站可以直接发布和部署,因为因为浏览器能够识别网页只需要两样东西,网络和静态页面,还有一个装在他们的容器,比如 nginx. 静 ...
- 【译】All-In-One Search 在 Visual Studio 17.6 中可用
一体化搜索体验是在17.2预览版中首次引入的,从那以后我们一直在改进它的质量.新的搜索将代码和特性搜索功能合并到一个 UI 中,因此您可以在一个地方找到所需的东西.实时结果和结果预览加速了这个过程,让 ...
- jdk安装自动化
写个在linux环境安装Java的脚本(install_java.sh),只需将jdk上传至/opt目录下,执行脚本即可. #!/bin/bash #author:zhangyl #本安装使用jdk版 ...
- 用Python语言进行多元时间序列ARIMAX模型分析
1.ARIMAX模型定义 ARIMAX模型是指带回归项的ARIMA模型,又称扩展的ARIMA模型.回归项的引入有利于提高模型的预测效果.引入的回归项一般是与预测对象(即被解释变量)相关程度较高的变量. ...
- 如何在达梦数据库中追踪慢SQL
在达梦数据库中,我们可以通过开启日志记录和设置最小执行时间来追踪慢SQL.下面是具体的步骤: 1. 修改dm.ini文件 使用以下命令编辑dm.ini文件: cd /home/dmdba/dmdbms ...
- Qt安卓开发经验技巧总结V202308
01:01-05 pro中引入安卓拓展模块 QT += androidextras . pro中指定安卓打包目录 ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android ...
- 11、Mybatis之逆向工程
11.1.正向与逆向工程概述 正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表:例如Hibernate是支持正向工程的. 逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成Ja ...
- Set Concept
集合(Set)就是一种用来装事物的容器(或者称为结构),它所装的东西叫元素.集合这个容器的逻辑性很强,可以说是现在比较严谨的工具. 集合里的元素,它们可以是任何类型的数学对象:数字.符号.变量.空间中 ...
- 2023-08-30:用go语言编写。两个魔法卷轴问题。 给定一个数组arr,其中可能有正、负、0, 一个魔法卷轴可以把arr中连续的一段全变成0,你希望数组整体的累加和尽可能大。 你有两个魔法卷轴,
2023-08-30:用go语言编写.两个魔法卷轴问题. 给定一个数组arr,其中可能有正.负.0, 一个魔法卷轴可以把arr中连续的一段全变成0,你希望数组整体的累加和尽可能大. 你有两个魔法卷轴, ...
- 「acmhdu - 6314」Matrix
link. 首先将问题弱化为 1-d,我们待定容斥系数 \(f_i\),可以写出答案的式子:\(\sum\limits_{i=a}^nf_i\binom{n}{i}2^{n-i}\).解释就是,我们想 ...