# 《实战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
1
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
1
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
1
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}"
1
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)知识星球,解锁完整技术文章、小册、视频与完整代码