AI服务器GitOps配置:用Argo CD把GPU推理发布管起来

在AI服务器上做GitOps配置,目标不是再装一套发布工具,而是让推理服务的镜像版本、资源配额和副本数都以Git仓库为准,集群状态偏离时能被自动纠正。
这套做法适合已经用Kubernetes跑模型服务、希望发布过程可追溯的团队;
如果推理服务还直接跑在Docker单机上,先完成容器化再考虑GitOps会更顺。

先确认集群和GPU基础可用

GitOps管的是声明式资源,前提是集群本身能调度GPU。
登录AI服务器后先检查节点和GPU插件状态:

kubectl get nodes
kubectl get pods -n kube-system | grep -i nvidia
kubectl describe node  | grep -i nvidia.com/gpu

最后一条命令应能看到 nvidia.com/gpu 资源数量。
如果为空,说明NVIDIA device plugin没有正常工作,需要先排查驱动和插件,否则后面创建的推理Pod会一直Pending。

同时准备一个Git仓库,目录按环境分开,例如:

manifests/
  base/
    inference-deployment.yaml
    inference-service.yaml
  overlays/
    prod/
      kustomization.yaml

base放通用清单,overlays按环境覆盖镜像标签和副本数。
仓库不需要很复杂,关键是每次变更都能通过提交记录回溯。

安装Argo CD并暴露访问入口

在能执行kubectl的机器上安装Argo CD:

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

全部Running后,把服务改成NodePort或通过Ingress暴露。
测试环境用端口转发最省事:

kubectl port-forward svc/argocd-server -n argocd 8080:443

初始管理员密码保存在Secret里:

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

浏览器访问 https://服务器IP:8080,用 admin 和上面取到的密码登录。
首次登录后建议立即修改密码。

创建Application,把仓库和集群连起来

在Argo CD界面点击 New App,或直接用YAML创建。
关键字段是仓库地址、目标路径和目标命名空间:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: inference-prod
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/your-org/ai-manifests.git
    targetRevision: main
    path: overlays/prod
  destination:
    server: https://kubernetes.default.svc
    namespace: inference
  syncPolicy:
    automated:
      prune: true
      selfHeal: true

prune: true 表示Git里删除的资源会同步删除,selfHeal: true 表示有人手动改集群会被拉回Git状态。
生产环境开启这两个选项前,确认仓库权限和分支保护已经配好,避免误提交直接生效。

创建后执行同步:

kubectl apply -f application.yaml
argocd app sync inference-prod
argocd app get inference-prod

状态显示 Synced 和 Healthy 才算完成。

GPU推理服务要留意的两个坑

第一,资源请求必须写GPU数量,否则调度器不会把它放到GPU节点:

resources:
  limits:
    nvidia.com/gpu: 1

第二,镜像标签不要用 latest。
GitOps靠Git记录版本,用固定tag或镜像摘要才能保证回滚时拉到同一个镜像。
更新模型时改overlays里的tag并提交,Argo CD检测到差异后自动同步;
回滚就是把提交revert。

另外,
如果推理服务启动慢,
Deployment的就绪探针超时会导致同步后短暂不可用,
建议把 initialDelaySeconds 调大,
并在Git里保留上一版本清单,
方便快速对比。

验证同步是否真正生效

改一次副本数提交到仓库,观察Argo CD是否自动更新:

kubectl get deploy -n inference -w
argocd app history inference-prod

副本数变化且 argocd app get 显示最新提交哈希,说明GitOps链路通了。
再手动删除一个Pod,确认 selfHeal 会重建,资源回到Git声明的状态。

如果同步报错,优先看 argocd app get 的 Conditions 和事件,常见原因是仓库认证失败、路径下没有kustomization.yaml,或目标命名空间不存在。
命名空间可以提前创建,也可以在Application里加 CreateNamespace=true。

走到这一步,AI服务器上的推理发布就不再依赖手动kubectl,版本变更、回滚和漂移修复都有Git记录可查。
先在小环境跑通这条链路,再扩展到多节点推理集群,风险更可控。

分享到:
上一篇
AI服务器DataOps配置:用Docker跑通数据管道与版本管理
下一篇
AI服务器上为容器配置GPU与资源限制的ContainerOps实践
1
系统公告

关于香港云优质服务器IP地址更换的通知

尊敬的客户: 因原IP运营商大幅涨价,为避免成本转嫁至用户,我司决定更换IP服务商。本次更换后,您的续费价格将保持不变,且新IP网络质量与服务标准不受影响。新IP已分配至后台,即刻生效(更换的新IP都是香港原生IPv4)。 涉及 IP 段: 45.192.x.x 旧 IP 停用时间: 2026 年 12 月 1 日
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意