# 《实战AI大模型》部署大模型-第07节:Sealos Cloud+K8S一键脚本部署
作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)
大家好,我是冰河~~
Sealos是一款基于Kubernetes(K8s)的云操作系统发行版,它将K8s以及常见的分布式应用如Docker、Dashboard、Ingress等进行了集成和封装,使得用户可以在不深入了解复杂的K8s底层原理的情况下,快速搭建起一个功能完备的云原生应用运行平台。Sealos具有简单易用、快速部署、高度可定制化等优点,适用于开发测试环境的快速搭建以及生产环境的稳定部署。
在当今云原生技术蓬勃发展的时代,快速部署和管理AI大模型成为了许多开发者和企业的迫切需求。本文将带着大家快速部署Sealos。
# 一、事先准备
(1)服务器配置要求
为确保部署顺利进行,需要满足以下基础设施条件:
- 推荐采用奇数台Master节点配合若干Node节点的集群架构,保证高可用性
- 集群中每个节点必须拥有唯一的主机名和独立的IP地址
- 所有节点系统时间需要保持同步,避免证书验证等问题
- 建议使用纯净的操作系统环境,避免因已有组件造成冲突
- 支持Ubuntu、Debian、CentOS、Rocky Linux等主流Linux发行版
(2)网络要求
- 实现集群内所有节点间的网络互通
- 配置Master节点到其他节点的SSH免密登录
- 确保所有节点能够通过Ping命令相互通信
- 部署操作需要在首个Master节点上执行
(3)域名要求
- 准备一个有效域名用于访问Sealos及相关服务
- 如无可用域名,可使用nip.io (opens new window)提供的免费域名解析服务
- Sealos默认使用cert-manager自动签发TLS证书,保障通信安全
# 二、安装系统
(1)安装并配置ubuntu 虚拟机
首先进行基础环境配置,确保各节点主机名和IP地址正确映射:
源码详见:deepseek-case-07工程下的deepseek-case-07/update_hosts.sh。
# 更新主机hosts文件
echo "192.168.1.101 master" | tee -a /etc/hosts
echo "192.168.1.111 node1" | tee -a /etc/hosts
echo "192.168.1.112 node2" | tee -a /etc/hosts
# 安装必要工具
apt -y update && apt -y install jq socat curl
2
3
4
5
6
7
(2)SSH免密登录(在单节点执行)
源码详见:deepseek-case-07工程下的deepseek-case-07/ssh.sh。
# 生成SSH密钥对
ssh-keygen -t rsa -b 4096 -f /root/.ssh/id_rsa -N ""
# 分发公钥到各节点
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.101
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.111
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.112
2
3
4
5
6
7
# 三、处理域名
在实际部署中,我们经常面临没有公网域名的情况。这时可以利用nip.io (opens new window)提供的免费域名解析服务。nip.io (opens new window)是一个智能DNS服务,能够将任意IP地址动态映射到对应的子域名。
例如,内网IP地址192.168.1.200可以直接使用域名192.168.1.200.nip.iohttps://1.200.nip.io进行访问,所有对该域名的请求都会被正确解析到对应的IP地址。这种方式省去了搭建内网DNS或修改hosts文件的繁琐步骤,极大简化了本地开发环境的配置。
# 四、部署Sealos Cloud
(1)下载脚本
首先下载官方安装脚本并进行必要的定制化修改:
源码详见:deepseek-case-07工程下的deepseek-case-07/down_sealos.sh。
# 下载install.sh
#curl -sfL https://gh-#proxy.com/https://raw.githubusercontent.com/labring/sealos/v5.0.1/scripts/cloud/install#.sh -o install.sh
#用最新的install.sh
curl -sfL https://gh-proxy.com/https://github.com/labring/sealos/blob/main/scripts/cloud/install.sh -o install.sh
2
3
4
修改install.sh 解决安装过程中无法下载docker.io的镜像的问题.]。
execute_commands() {
[[ $k8s_installed == "y" ]] || (get_prompt "k8s_installation" && sealos apply -f $CLOUD_DIR/Clusterfile)
modify_containerd_config
command -v helm > /dev/null 2>&1 || sealos run "${image_registry}/${image_repository}/helm:v${helm_version#v:-3.14.1}"
[[ $k8s_ready == "y" ]] || (get_prompt "cilium_requirement" && sealos run "${image_registry}/${image_repository}/cilium:v${cilium_version#v:-1.15.8}" --env ExtraValues="ipam.mode=kubernetes")
wait_cluster_ready
# containerd配置用于下载docker.io
# 参考 /etc/containerd/certs.d/sealos.hub:5000/hosts.toml
echo "modify_containerd_config start"
mkdir -p /etc/containerd/certs.d/docker.io
touch /etc/containerd/certs.d/docker.io/hosts.toml
cat>/etc/containerd/certs.d/docker.io/hosts.toml<<EOF
server = "https://docker.io"
[host."https://docker.m.daocloud.io"]
capabilities = ["pull", "resolve"]
[host."https://dockerproxy.com/"]
capabilities = ["pull", "resolve"]
EOF
systemctl restart containerd
echo "modify_containerd_config end"
sealos run "${image_registry}/${image_repository}/cert-manager:v${cert_manager_version#v:-1.14.6}"
sealos run "${image_registry}/${image_repository}/openebs:v${openebs_version#v:-3.10.0}"
sealos run "${image_registry}/${image_repository}/metrics-server:v${metrics_server_version#v:-0.6.4}"
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
(2)执行安装脚本
源码详见:deepseek-case-07工程下的deepseek-case-07/run_install.sh。
# 查看完整文章
加入冰河技术 (opens new window)知识星球,解锁完整技术文章、小册、视频与完整代码
