Sealos集群部署教程

Sealos 是一个基于 Kubernetes 内核的云操作系统发行版。它采用云原生方式,摒弃传统的云计算架构,转向以 Kubernetes 为云内核的新架构。本文主要介绍如何部署Sealos集群,包括准备工作、安装步骤、导出并信任自签名证书以及激活集群的详细指南。

一、准备工作

1、服务器

以下是一些基本的要求:

  • 每个集群节点应该有不同的主机名;
  • 所有节点的时间需要同步;
  • 建议使用干净的操作系统来创建集群,不要自己装 Docker;
  • 支持大多数 Linux 发行版,例如:Ubuntu、Debian、CentOS、Rocky linux;
  • 系统内核版本在 5.4 及以上;
  • 必须使用 root 用户安装!

2、推荐配置

推荐使用 Ubuntu 22.04 LTS 操作系统,内核版本在 5.4 及以上,配置如下:

Sealos集群部署

注意: Kubernetes 和 Sealos Cloud 的系统组件在每个 Master 节点上大约需要 2 核心(2c)和 2GB 内存(2g),在每个 Node 节点上则需要大约 1 核心(1c)和 1GB 内存(1g),请确保集群中每个节点都有足够的计算资源以支持系统组件的运行。

(1)网络

  • 所有节点之间网络互通;
  • 需要在 Kubernetes 集群的第一个 Master 节点上执行脚本,目前集群外的节点不支持集群安装;
  • 所有节点之间可以互相通信。

(2)域名

  • 需要一个域名用于访问 Sealos 及相关服务;
  • 如果没有域名,可以使用 nip.io 提供的免费域名服务。

(3)证书

Sealos 需要使用证书来保证通信安全,默认在不提供证书的情况下我们会使用 cert-manager 来自动签发证书。如果能提供证书,证书需要解析下列域名 (假设提供的域名为:cloud.example.io):

*.cloud.example.io
cloud.example.io

二、安装步骤

为了便于部署,我们提供了一个一键安装脚本。该脚本可以从零开始部署 Sealos 集群,也可以在已有的 Kubernetes 集群上部署 Sealos 集群(在已有集群上执行时请谨慎操作)。

注意:该脚本只支持在 “使用 Sealos 安装的 Kubernetes 集群” 上部署 Sealos 集群,暂不支持其他方式部署的 Kubernetes。

如果机器还没有安装过 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-sfLhttps://mirror.ghproxy.com/https://raw.githubusercontent.com/labring/sealos/v5.0.0-beta5/scripts/cloud/install.sh -o /tmp/install.sh && bash /tmp/install.sh \
--cloud-version=v5.0.0-beta5 \
--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 等工具自动签发证书,也可以从域名提供商处下载免费证书或者购买商业证书。

注意:如果你的公网 IP 在国内,那么域名必须要备案!

准备好域名证书后,需要将证书放到第一个 Master 节点的某个目录中,例如 /root/certs/。

注意:还需要在域名服务商处添加一条该域名的 A 记录,地址解析到第一个 Master 节点的公网 IP 地址。同时还需要添加一条泛解析记录,将该域名的子域名也解析到第一个 Master 节点的公网 IP 地址。

例如 (假设你的域名是 cloud.example.io,假设你的 Master 节点公网地址是 192.168.1.10):

cloud.example.io A 192.168.1.10
*.cloud.example.io A 192.168.1.10

然后在第一个 Master 节点上执行以下命令,并根据提示输入参数:

$curl-sfL https://mirror.ghproxy.com/https://raw.githubusercontent.com/labring/sealos/v5.0.0-beta5/scripts/cloud/install.sh -o /tmp/install.sh && bash /tmp/install.sh \
--cloud-version=v5.0.0-beta5 \
--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.10
*.cloud.example.io A 192.168.1.10

然后在第一个 Master 节点上执行以下命令,并根据提示输入参数:

$curl-sfL https://mirror.ghproxy.com/https://raw.githubusercontent.com/labring/sealos/v5.0.0-beta5/scripts/cloud/install.sh -o /tmp/install.sh && bash /tmp/install.sh \
--cloud-version=v5.0.0-beta5 \
--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/v5.0.0-beta5/scripts/cloud/install.sh -o /tmp/install.sh && bash /tmp/install.sh \
--cloud-version=v5.0.0-beta5 \
--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集群部署

即使点击继续访问,进入 Sealos Cloud 之后也无法正常显示 App 图标,无法打开 App。我们需要导出自签名证书,并让系统信任自签名证书。

Sealos集群部署

四、导出自签名证书

各个浏览器导出自签名证书的步骤略有不同。以下是在一些常用浏览器中导出自签名证书的步骤:

  • Chrome (以及基于 Chromium 的浏览器如新版 Edge 和 Brave);
  • 在浏览器地址栏左侧点击 “不安全” 字样;
  • 点击 “证书无效”,这将打开一个证书信息窗口;
  • 在打开的证书窗口中,切换到 “详细信息” 标签页;
  • 在 “详细信息” 标签页中,找到并点击 “导出”;
  • 选择一个文件名和保存位置,然后完成导出过程。

1、Firefox

点击页面中的 “高级”;

Sealos集群部署

然后点击 “查看证书”;

Sealos集群部署

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

Sealos集群部署

2、Windows

  • 在根证书文件点鼠标右键,选择 “安装证书”;
  • 选择 “当前用户” 或者 “本地计算机”,下一步;
  • “将所有的证书都放入下列存储”,“浏览”,“受信任的根证书颁发机构”,“确定”,下一步;
  • 完成,“是”,确定。

Sealos集群部署

3、Linux

Linux 不同发行版更新根证书存储的命令不一样,用来保存私有证书的路径也不一样。需要先复制自签名 CA 证书到特定路径,再运行命令更新根证书存储。

#Debian/Ubuntu/Gentoo
# - 安装
$ sudo cp root_ca.crt /usr/local/share/ca-certificates/root_ca.crt
# update-ca-certificates 会添加 /etc/ca-certificates.conf 配置文件中指定的证书
# 另外所有 /usr/local/share/ca-certificates/*.crt 会被列为隐式信任
$ sudo update-ca-certificates
# - 删除
$ sudo rm /usr/local/share/ca-certificates/root_ca.crt
$ sudo update-ca-certificates --fresh
# CentOS/Fedora/RHEL
$ yum install ca-certificates
# 启用动态 CA 配置功能:
$ update-ca-trust force-enable
$ cp root_ca.crt /etc/pki/ca-trust/source/anchors/
$ update-ca-trust
# Alpine
$ apk update && apk add --no-cache ca-certificates
$ cp root_ca.crt /usr/local/share/ca-certificates/
$ update-ca-certificates
# OpenSUSE/SLES
$ cp root_ca.crt /etc/pki/trust/anchors/
$ update-ca-certificates

五、激活集群

集群安装完成后,默认只有 5 元的额度,你需要激活集群以获取赠送的 299 元余额。步骤如下:

1、首先点击桌面的「许可证」打开许可证应用:

Sealos集群部署

2、然后点击「激活/购买」:

Sealos集群部署

然后浏览器会跳转到 License 页面,并跳出一个弹窗:

Sealos集群部署

3、如果你还没有在该页面创建过集群,就点击「理立即开始」创建一个集群;如果你已经创建过集群了,只需要点击「已有集群」便会跳转到已有集群。

跳转到集群列表之后。你就会看到集群已经被激活了:

Sealos集群部署

4、点击 「License 管理」,然后下载免费赠送的价值 299 元的 License:

Sealos集群部署

5、然后回到 Sealos 集群的「许可证」应用界面,点击「上传 License 文件」:

Sealos集群部署

选择刚刚下载的 License 文件进行上传,然后点击右下角的「激活 License」,便可激活 License。激活成功后,集群中的余额就变成了 304 元。

Sealos集群部署

广告合作
QQ群号:707632017
标签:

温馨提示:

1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。

2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

相关推荐

无关联文章

热门教程

  • Z-Blog教程
    Z-Blog教程
    ZBlog教程分享ZBlog安装教程、ZBlog建站教程和ZBlog使用教程等相关教程,包括如何创建...
  • WordPress教程
    WordPress教程
    WordPress教程提供了关于WordPress的基础知识和技巧,包括安装、设置、发布内容、选择主...
  • 宝塔面板教程
    宝塔面板教程
    宝塔面板教程是一个致力于向用户传授宝塔面板的使用技巧和知识的学习资源,旨在帮助用户快速上手和充分利用...
  • Shopify教程
    Shopify教程
    Shopify教程提供了关于Shopify平台的基本知识和操作指南,包括商店设置、商品管理、订单处理...
  • PHP教程
    PHP教程
    PHP教程提供了关于PHP语法、变量、函数、流程控制等概念的详细指导,同时介绍了常见的Web开发技术...

3个月免费VPS

亚马逊云科技

阿里云