【问题标题】:Starting triton inference server docker container on kube cluster在 kube 集群上启动 triton 推理服务器 docker 容器
【发布时间】:2023-02-21 03:09:32
【问题描述】:

描述尝试将 triton docker 镜像部署为 kubernetes 集群上的容器

海卫信息您使用的是什么版本的 Triton? -> 22.10

您使用的是 Triton 容器还是您自己构建的?我通过以下命令使用服务器回购:

python3 compose.py --backend onnxruntime --backend python --backend tensorflow2 --repoagent checksum --container-version 22.10

然后使用以下 dockerfile 再次创建新的 triton 图像:

FROM tritonserver:latest
RUN apt install python3-pip -y
RUN pip install tensorflow==2.7.0
RUN pip install transformers==2.11.0
RUN pip install tritonclient
RUN pip install tritonclient[all]

dockerfile 正在使用以下命令:

docker build -t customtritonimage -f ./DockerFiles/DockerFile  .

重现目录结构: 父目录 -> tritonnludeployment 其中的文件 -> DockerFiles(包含 docker 文件的文件夹)、k8_trial.yaml、model_repo_triton(这里的所有模型都在 triton 支持的目录中,并且具有所需的文件)

我正在使用这个“k8_trial.yaml”文件来启动 kubectl 部署

apiVersion: apps/v1
kind: Deployment
metadata:
    name: flower
    labels:
      app: flower
spec:
    replicas: 3
    selector:
      matchLabels:
        app: flower
    template:
      metadata:
        labels:
          app: flower
      spec:
        volumes:
        - name: models
          hostPath:
            # server: 216.48.183.17
            path: /root/Documents/tritonnludeployment
            # readOnly: false
            type: Directory
        containers:
          - name: flower
            ports:
            - containerPort: 8000
              name: http-triton
            - containerPort: 8001
              name: grpc-triton
            - containerPort: 8002
              name: metrics-triton
            image: "customtritonimage:latest"
            imagePullPolicy: Never
            volumeMounts:
            - mountPath: /root/Documents/tritonnludeployment
              name: models
            command: ["/bin/sh", "-c"]
            args: ["cd /models /opt/tritonserver/bin/tritonserver --model-repository=/models/model_repo_triton --allow-gpu-metrics=false --strict-model-config=false"]
            # resources:
            #   requests:
            #     memory: "500Mi"
            #     cpu: "500Mi"
            #   limits:
            #     memory: "900Mi"
            #     cpu: "900Mi"
            #     nvidia.com/gpu: 1

描述模型(框架、输入、输出),最好包括模型配置文件(如果使用集成,也包括模型配置文件)。

预期行为kubectl 部署应该开始,triton 容器作为 pod 之一

我哪一步做错了!

【问题讨论】:

    标签: python kubernetes nvidia-docker inference-engine tritonserver


    【解决方案1】:

    您收到的错误消息是什么?我注意到的一些问题:

    • 使用docker知道的预期文件名,即Dockerfile而不是DockerFile
    • 确保基本图像存在(tritonserver:latest 不存在,您可能需要 these 之一)
    • 首先更新源代码(RUN apt install ... -> @987654327 @...)
    • 通过一次安装多个 python 包减少层数
    • tritonclient[all]已经包含了tritonclient
    • 不要以root 的身份运行容器(tritonserver 并不需要它)
    • 确保第一次拉取镜像 (imagePullPolicy: Never -> IfNotPresent)
    • args中删除多个不必要的命令(例如cd /models
    • tritonserver 可以导入所有子文件夹,所以 --model-repository=/models 可能更好

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 2022-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-05
      • 2020-04-23
      • 2018-10-31
      • 1970-01-01
      相关资源
      最近更新 更多