大模型ArgoCD部署配置:从安装到应用同步的完整流程
本文讲的是如何用ArgoCD以GitOps方式部署和配置大模型应用。
适用前提是已有一个可用的Kubernetes集群(1.24及以上),并且能通过kubectl访问集群。
如果你还没有集群,需要先完成集群搭建,再回到本文操作。
大模型应用通常包含模型服务、API网关和Web界面等多个组件,手动维护YAML容易出错,ArgoCD可以把Git仓库作为唯一事实来源,自动同步集群状态。
下面按准备、安装、配置、同步、验证的顺序展开。
环境准备与必要检查
在安装ArgoCD之前,先确认几个基础条件:
- Kubernetes集群可用,执行
kubectl cluster-info能正常返回。 - 当前用户有cluster-admin权限,或者至少能创建Namespace和ClusterRoleBinding。
- 集群节点有足够资源运行ArgoCD组件,建议至少2核4GB空闲内存。
- 有一个Git仓库存放大模型应用的Kubernetes清单,例如
deploy/目录下的Deployment、Service、ConfigMap。
检查当前上下文:
kubectl config current-context
kubectl get nodes
如果节点状态都是Ready,说明集群基础正常。
安装ArgoCD并获取登录入口
创建独立命名空间并应用官方安装清单:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
等待Pod启动:
kubectl get pods -n argocd -w
当 argocd-server 等Pod全部Running后,把服务改为NodePort或使用端口转发访问:
kubectl port-forward svc/argocd-server -n argocd 8080:443
浏览器访问 https://localhost:8080,默认用户名是 admin。
初始密码通过以下命令获取:
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
登录后立即修改密码,避免使用默认凭据。
连接私有Git仓库并配置大模型应用
ArgoCD需要读取存放应用清单的仓库。
如果仓库是私有的,先在ArgoCD界面进入 Settings > Repositories,添加仓库地址和访问凭据。
也可以使用CLI:
argocd repo add https://git.example.com/your-org/llm-app.git --username your-user --password your-token
注意把示例地址替换成你自己的仓库地址。
然后创建Application,指向仓库中的清单目录:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: llm-app
namespace: argocd
spec:
project: default
source:
repoURL: https://git.example.com/your-org/llm-app.git
targetRevision: HEAD
path: deploy
destination:
server: https://kubernetes.default.svc
namespace: llm
syncPolicy:
automated:
prune: true
selfHeal: true
保存为 llm-app.yaml 后执行:
kubectl apply -f llm-app.yaml
如果大模型应用需要GPU节点,在Deployment中通过 nodeSelector 或 tolerations 指定,这一步在Git仓库的清单中完成,ArgoCD只负责同步。
常见报错与避坑说明
配置过程中容易遇到几类问题:
- Pod一直Pending:检查节点资源是否足够,尤其是大模型服务对内存和GPU的要求。执行
kubectl describe pod查看事件。 - 仓库连接失败:确认仓库地址、用户名和Token有效,私有仓库需要读取权限。可以在ArgoCD界面点击仓库的“Test”按钮验证。
- 同步后应用未就绪:ArgoCD显示Synced不代表业务可用,需要结合Pod状态和Service端点判断。大模型加载时间较长,健康检查的超时时间要适当放宽。
- 自动同步覆盖手动修改:开启
selfHeal后,手动kubectl修改会被还原。所有变更都应提交到Git仓库,不要直接改集群。 - 删除操作风险:
prune: true会删除Git中已移除的资源。生产环境建议先在测试集群验证,或改为手动同步。
验证同步结果与后续维护
在ArgoCD界面查看Application状态,理想状态是Synced和Healthy。
再通过命令行确认:
kubectl get application -n argocd llm-app -o wide
kubectl get pods -n llm
访问大模型服务的健康检查接口或Web界面,确认返回正常。
如果使用了Ingress,检查域名解析和证书是否生效。
后续更新模型版本时,只需修改Git仓库中的镜像标签或配置,提交后ArgoCD会自动同步。
建议为生产环境配置通知渠道,例如在ArgoCD中集成Slack或邮件告警,及时获知同步失败。
大模型应用需要GPU,ArgoCD能直接管理吗
可以。
ArgoCD管理的是Kubernetes清单,只要清单中正确声明了GPU资源请求和节点亲和性,ArgoCD会按清单同步。
GPU驱动和插件需要在集群层面提前安装。
同步失败提示资源已存在怎么办
通常是因为集群中已有同名资源但不由ArgoCD管理。
可以先手动删除冲突资源,或者在Application中配置 syncPolicy.syncOptions 使用 CreateNamespace=true 并检查资源归属。
操作前确认资源可以安全重建。
如何限制ArgoCD只能部署到指定命名空间
在ArgoCD的Project中配置 destinations,只允许目标集群和命名空间,避免误操作影响其他业务。
创建Application时选择对应Project即可。