Sealos 私有化部署完全指南

Sealos 用了五年的时间从一个 K8s 一键安装工具蜕变成了一个真正的云操作系统,将产品体验提升到了极致,也收获了 10w+ 的社区用户。

一个多月前,Sealos 正式发布了公有云托管版本,社区用户狂喜,纷纷寻找私有化部署教程。现在教程来了,本文将会手把手教你如何私有化部署 Sealos 桌面环境。

准备工作

1. 服务器配置要求

  • 推荐使用奇数台 Master 节点和若干 Node 节点
  • 操作系统 :Ubuntu 22.04 LTS
  • 内核版本 :5.4 及以上
  • 配置推荐 :CPU 4 核 , 内存 8GB, 存储空间 100GB 以上
  • 最小配置 :CPU 2 核 , 内存 4GB, 存储空间 60GB

2. 网络要求

  • 所有节点之间网络互通
  • Master 节点可以通过 SSH 免密登陆到其他节点
  • 所有节点可以通过 Ping 通信

3. 域名要求

  • 需要一个域名用于访问 Sealos 及相关服务
  • 没有域名可以使用 nip.io 免费域名服务

在线部署

部署 Kubernetes 集群

得益于 Sealos CLI 强大的 Kubernetes 生命周期管理,Kubernetes 集群部署变得非常简单:

# 注意:helm 版本需要在 3.12.0 及以上!
$ sealos gen labring/kubernetes:v1.25.6 \labring/helm:v3.12.0 \labring/calico:v3.24.1 \labring/cert-manager:v1.8.0 \labring/openebs:v3.4.0 \--masters 10.140.0.16 \--nodes 10.140.0.54 > Clusterfile# 请修改 Clusterfile 中的 PodSubnet 及 ServiceSubnet
# 默认的 PodSubnet: 100.64.0.0/10
# 默认的 ServiceSubnet: 10.96.0.0/22$ sealos apply -f Clusterfile

等待集群就绪后 , 使用 kubectl get pods -A 查看集群状态:

在所有 Pod 均为 Ready 状态后,即可进行下一步操作。如果您需要部署其他版本的 Kubernetes 集群,可以在 Sealos 文档 中查看支持的版本。

部署 Sealos 依赖组件

使用下面的脚本即可一键安装 Sealos 所有的依赖组件:

#!/bin/bash
set -ecat << EOF > ingress-nginx-config.yaml
apiVersion: apps.sealos.io/v1beta1
kind: Config
metadata:creationTimestamp: nullname: ingress-nginx-config
spec:data: |controller:hostNetwork: truekind: DaemonSetservice:type: NodePortmatch: docker.io/labring/ingress-nginx:v1.5.1path: charts/ingress-nginx/values.yamlstrategy: merge
EOFsealos run docker.io/labring/kubernetes-reflector:v7.0.151\docker.io/labring/ingress-nginx:v1.5.1\docker.io/labring/zot:v1.4.3\docker.io/labring/kubeblocks:v0.5.3\--env policy=anonymousPolicy\--config-file ingress-nginx-config.yamlecho "patch ingress-nginx-controller tolerations to allow run on master node, if you don't want to run on master node, please ignore this step"
kubectl -n ingress-nginx patch ds ingress-nginx-controller -p '{"spec":{"template":{"spec":{"tolerations":[{"key":"node-role.kubernetes.io/control-plane","operator":"Exists","effect":"NoSchedule"}]}}}}'echo "waitting for kubeblocks crd created, this may take a while"
while ! kubectl get clusterdefinitions.apps.kubeblocks.io redis >/dev/null 2>&1; dosleep 5
doneecho "start patch redis clusterdefinition"
kubectl patch clusterdefinitions.apps.kubeblocks.io redis --type='json' -p '[{"op": "add", "path": "/spec/componentDefs/0/podSpec/containers/1/resources/limits", "value": {"cpu":"100m", "memory":"100Mi"}}]'
echo "patch redis success"echo "wait for all pod to be ready then install Sealos"
kubectl get po -A

过程可能稍长,等待所有 Pod 均为 Ready 状态后,即可进行下一步。

部署 Sealos

只需一条命令即可一键部署 Sealos:

$ sealos run docker.io/labring/sealos-cloud:latest\--env cloudDomain="34.81.60.57.nip.io"

等待所有 Pod 均为 Ready 状态后,即可访问 Sealos,最终集群 Pod 如下:

浏览器访问 https://34.81.60.57.nip.io 即可进入 Sealos,由于是自签名证书,浏览器会显示不安全,无法打开 App,可参考下文 Q&A 中的解决方案

关于 Sealos 的使用,可以参考 Sealos 官方文档中的案例。

自定义配置

  • 如果你需要使用自己的域名,可以将 cloudDomain 参数修改为你的域名,例如: cloudDomain="sealos.cloud"

  • 如果你需要使用自己的证书,你可以使用下面的脚本(注意需要修改证书位置及 yaml_content 中的 match image)生成 tls-secret.yaml 文件,然后在 sealos run sealos-cloud 时使用 --config-file 参数指定该文件:

#!/bin/bash
# 读取原始证书和密钥文件
tls_crt_file="tls.cer"
tls_key_file="tls.key"
# 使用 base64 转换
tls_crt_base64=$(cat $tls_crt_file | base64 | tr -d '\n')
tls_key_base64=$(cat $tls_key_file | base64 | tr -d '\n')
# 定义 YAML 文件内容
yaml_content="
apiVersion: apps.sealos.io/v1beta1
kind: Config
metadata:name: secret
spec:path: manifests/tls-secret.yaml# please change the match image to your own imagematch: docker.io/labring/sealos-cloud:lateststrategy: mergedata: |data:tls.crt: $tls_crt_base64tls.key: $tls_key_base64
"
# 创建新的 cloud-config.yaml 文件
echo "$yaml_content" > tls-secret.yamlsealos run docker.io/labring/sealos-cloud:latest\
--env cloudDomain="34.81.60.57.nip.io"\
--config-file tls-secret.yaml

离线部署

镜像准备

离线部署依赖于 Sealos 强大的离线交付能力,离线部署步骤也非常简单,需要在公网环境下需要提前使用 sealos pull/save 保存镜像:

#!/bin/bash
# pull_images.sh
set -ex
mkdir -p tars
images=(docker.io/labring/kubernetes:v1.25.6docker.io/labring/helm:v3.12.0docker.io/labring/calico:v3.24.1docker.io/labring/cert-manager:v1.8.0docker.io/labring/openebs:v3.4.0docker.io/labring/kubernetes-reflector:v7.0.151docker.io/labring/ingress-nginx:v1.5.1docker.io/labring/zot:v1.4.3docker.io/labring/kubeblocks:v0.5.3docker.io/labring/sealos-cloud:latest
)for image in "${images[@]}"; dosealos pull "$image"filename=$(echo "$image" | cut -d':' -f1 | tr / -)sealos save -o "tars/${filename}.tar" "$image"
done

执行完这个脚本后,会在当前目录下生成一个 tars 目录,里面包含了所有的镜像文件。

然后将镜像拷贝到内网环境下,使用 sealos load 命令加载镜像:

#!/bin/bash
# load_images.sh
set -ex
for file in tars/*.tar; dosealos load -i "$file"
done

注意:在内网环境下如果缺少 Docker 镜像,还需要您自己操作导入 Docker 镜像。当然,Sealos CLI 同样也可以。

Q&A

安装过程中出现问题怎么办?

如果您在安装过程中遇到任何问题,可以在 Sealos 开发者社区 或者 Sealos issues 中提出,我们将尽快回复并帮助您解决问题。或者您也可以加入我们的微信交流群,与与开发者和其他用户进行亲切友好的交流👇

应该选择哪个 Sealos 镜像版本?

由于 Sealos 项目还在快速迭代中,我们推荐使用最新版(latest 版本)。如果您需要固定版本,可以在 Docker Hub 中选择合适的版本。

Sealos 可以商用吗?

首先,非常感谢您对我们的开源项目的支持和关注。您完全可以根据我们的开源许可证 Apache 2.0 自由使用我们的软件,包括商业用途。但请确保遵守许可证要求,这可能包括但不限于:保留必要的版权声明、明显的更改通知,以及在某些情况下,您可能需要发布对源代码的改动等

如果没有域名怎么办?

如果您有公网 IP,那么您可以直接使用 nip.io。这样,您就可以使用 {{ $ip }}.nip.io 作为部署时的域名。

浏览器访问 Sealos 网址时提示“不安全”

如果您在部署过程中提供了正确的证书,但仍然收到这个提示,可以采取以下措施:

  • 检查证书是否和域名匹配:证书需要解析 {{ $domain }}*.{{ $domain }}
  • 检查证书是否被正确地使用 base64 编码并写入到 tls-secret.yaml 文件中;

如果您在部署过程中没有提供证书,那么这种现象是正常的,因为默认使用的是 Sealos 的自签名证书。您可以选择以下两种方式解决:

  • 信任证书:在浏览器中导出证书,然后双击证书打开,导入到受信任的根证书颁发机构中;
  • 关闭浏览器的安全检查:以 Chrome 为例,修改 Chrome 浏览器的快捷方式,在目标后面添加 --ignore-certificate-errors 参数,然后重新打开浏览器。

部署时卡在 Waiting waiting for mongodb secret generated 怎么办?

Sealos 依赖 kubeblocks 提供的数据库服务。如果在部署过程中卡在这一步,说明在上一步,部署 Sealos 依赖组件时出错了。您应该尝试重新部署。

如何重新部署?

如果您需要重新部署,只需执行以下命令:

$ sealos reset

这个命令将清理所有集群资源,让您可以从头开始部署。

如何在 Windows 上的 Linux 虚拟机中部署 Sealos?

假设您的 Linux 虚拟机能够联网,那么您可以按照在线部署方案进行部署。需要注意的是,域名需要在虚拟机管理器中配置。如果没有证书,系统将默认使用 Sealos 的自签名证书。

Sealos 是否支持 ARM64 架构?

我们正在进行相关测试。测试完成后,我将在文档中更新相关信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/67015.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

带你搞懂人工智能、机器学习和深度学习!

不少高校的小伙伴找我聊入门人工智能该怎么起步&#xff0c;如何快速入门&#xff0c;多长时间能成长为中高级工程师&#xff08;聊下来感觉大多数学生党就是焦虑&#xff0c;毕业即失业&#xff0c;尤其现在就业环境这么差&#xff09;&#xff0c;但聊到最后&#xff0c;很多…

AI 工具合辑盘点(十一)持续更新 之 AI 学术研究工具

许多学生和研究人员已经在利用人工智能进行研究。它可以让你更容易地了解最新研究成果&#xff0c;并帮助你组织和正确引用你最喜爱的研究论文。 从生成长篇研究论文摘要到通知你领域内的新趋势&#xff0c;研究中的AI工具节省了大量时间和精力。如果你在学术界&#xff0c;那…

一款全新的基于GPT4的Python神器,关键还免费

chartgpt大火之后&#xff0c;随之而来的就是一大类衍生物了。 然后&#xff0c;今天要给大家介绍的是一款基于GPT4的新一代辅助编程神器——Cursor。 它最值得介绍的地方在于它免费&#xff0c;我们可以直接利用它来辅助我们编程&#xff0c;真正做到事半功倍。 注意&#…

三网快速充值话费通道源码

话费充值 基于Vue2.0开发的话费充值APP&#xff0c;数据接口主要调用 聚合数据 提供的话费充值API实现。很关键的一点因为我聚合账户没有钱&#xff0c;所以没办法来真正的提交钱来测试&#xff0c;不过丝毫不影响&#xff0c;因为这里我前端已经模拟了下单成功后返回的数据(和…

小程序源码:社群微群人脉系统小程序版本源码下载带流量主功能实现广告效益

现在因为小编在实现新版本的功能添加与更新 所以小编就把这一款开源分享给大家吧! 分享出来考虑到大家服务器等等效益所以小编就把后台给砍掉了 所以大家就直接前端上传到微信开发者工具即可使用 本款小程序群二维码自动采集推送的,所以大家不用担心没有群难运营 小编运营…

一套ThinkPHP微信小程序商城源码带后台管理

ThinkPHP微信小程序商城源码带后台管理 源码类型&#xff1a;全开源免费分享&#xff0c;需要学习可私信 注意事项&#xff1a; 1、App/Common/Conf/db.php 数据库连接参数修改&#xff1b; 2、App/Api/Conf/config.php 微信小程序的appid、secret、mchid、key、notify_url&a…

开源的微信商城,含小程序端,后台管理系统,服务器后端,附完整源码

微信小程序商城 项目概述 一个完整的微信小程序商城&#xff0c;包含微信小程序&#xff0c;管理系统&#xff0c;服务端后台&#xff0c;项目预览如下&#xff1a; 微信小程序 -微信小程序包含主页、商品分类、商品详情、加购物车&#xff0c;微信授权登录&#xff0c;微信…

CRMEB全开源Java版微信小程序商城,附源码

CRMEB-JAVA版简介 CRMEB商城JAVA版&#xff0c;SpringBoot Maven Swagger Mybatis Plus Redis Uniapp Vue 包含移动端、小程序、PC后台、Api接口&#xff1b;有产品、用户、购物车、订单、积分、优惠券、营销、余额、权限、角色、系统设置、组合数据、可拖拉拽的form表单等…

小程序商城源码,小程序源码带前端+后台+数据库 ,免费分享

三勾商城是开发友好的微信小程序商城&#xff0c;框架支持SAAS&#xff0c;支持发布 iOS Android 公众号 H5 各种小程序&#xff08;微信/支付宝/百度/头条/QQ/钉钉/淘宝&#xff09;等多个平台&#xff0c;不可多得的二开神器&#xff0c; 为大中小企业提供极致的移动电子…

带分销小程序商城源码,完整代码分享

源码免费下载地址&#xff1a;https://github.crmeb.net/u/gitee **技术交流群&#xff1a;**116279623 包含功能&#xff1a; 1.商品: 能够对商品的状态分类管理 (出售中、待上架、库存中、已售馨、库存警戒、回收站)、添加产品、添加商品分类等功能 2.会员:站内会员的管…

集成一个以官网(微信,QQ,微博)为标准的登录分享功能

Hello&#xff0c;各位老铁&#xff0c;今天要分享的是一个老生常谈的一个功能&#xff0c;也是网上一搜一大片的技术点&#xff0c;没什么技术含量&#xff0c;就是整合一下&#xff0c;提供一下方便&#xff0c;相对于友盟&#xff0c;ShareSdk中夹杂着一些别的功能&#xff…

虹科案例 | 虹科HiveMQ助力实现百万辆汽车智能互联

一、应用背景 用户介绍 为顺应汽车技术和移动性的新兴趋势&#xff0c;Autonomic公司于2016年正式成立。公司致力于提供一个通用的平台&#xff0c;让汽车OEM可以利用此平台创建互联移动系统&#xff0c;为客户带来绝佳使用体验&#xff0c;并降低运营成本。2018年&#xff0c…

赋能创新,深开鸿发布面向金融行业KaihongOS发行版

3月28日&#xff0c; “开疆拓土&#xff0c;鸿鹄志远” 深圳开鸿数字产业发展有限公司&#xff08;以下简称“深开鸿”&#xff09;线上发布会成功举办。提炼前沿实践&#xff0c;聚焦金融科技&#xff0c;探索综合创新的金融数字化和智能化之路&#xff0c;深开鸿发布了面向金…

谷歌深夜王炸级更新!PaLM 2大模型震撼发布!Bard写代码,哪里不懂点哪里!

谷歌CEO桑达尔皮查伊&#xff1a;我们对AI的态度是又大胆又负责。 出品&#xff5c;网易科技智见焦点 作者&#xff5c;赵芙瑶 编辑&#xff5c;丁广胜 这回&#xff0c;谷歌急了&#xff01; 他们这半年过得是真憋屈&#xff01;近半年来AI的发展速度就像坐上了火箭&#xff0…

最简单的移动端pc端(解决苹果端的兼容问题)一键复制,保存到剪贴板

先上效果图&#xff1a; 为了用户体验更佳&#xff0c;对于公众号&#xff0c;手机号&#xff0c;物流单号&#xff0c;等需要一键复制而不是让用户一个一个的去选择。 demo链接&#xff1a; http://download.csdn.net/download/vlilyv/9970325 github下载地址 https://gi…

使用clipboard实现复制到剪切板功能(超详细~~)

先看看效果&#xff1a; 1.页面中使用 // html <Button type"primary" click"clickCopy">复制</Button>// js <script>import utils from /libs/utilsmethods: {clickCopy (){utils.copy2clipboard(LALALAALA)//复制的内容},} </s…

还用老套路分析财务数据?这3种财务分析方法,你一定得看看

如果问你一个问题&#xff1a;如何分析一家企业&#xff1f;很多人都会回答&#xff1a;从财务分析入手&#xff0c;但是这个好难&#xff0c;不是专业人员做不出来&#xff0c;就是专业的财务人员&#xff0c;做这个也不是一件容易的事情。 其实财务分析并不难&#xff0c;关…

财务分析真不难!无需代码,一个模板直接复用,碾压上千Excel表

我是某国企的一名老财务&#xff0c;说起来也工作了好几年了&#xff0c;但感觉每天都在做重复的事情&#xff1a;在最美好的年纪终日面对着各式各样的数据&#xff0c;对&#xff0c;是各式各样&#xff0c;不同阿拉伯数字组成不同的报表。 周末不加班&#xff0c;枉为财务人…

从只用Excel做报表,到可视化报表工具真香,他经历了什么

2020年了&#xff0c;很多人&#xff0c;乃至于很多企业做报表都还在用Excel&#xff0c;埋头苦干一天整出下面这个玩意&#xff1a; 你的辛苦领导都看在眼里&#xff0c;但是这做的实在是太差了&#xff0c;一点都不能反映数字与数字之间的关系&#xff0c;于是领导回复了你一…

财报不是难题,三分钟学会制作超简单的资产负债表

​对于财会人来说&#xff0c;财务报表就是吃饭的家伙事&#xff0c;会计做报表、审计审报表。可以说&#xff0c;财会人和财报待在一起的时间比对象都多。然而&#xff0c;财报有三表&#xff0c;分别是资产负债表、利润表和现金流量表&#xff0c;其中资产负债表是最最最常见…