自定义入口点 - Amazon 深度学习容器
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

自定义入口点

对于一些图片,Amazon容器使用自定义入口点脚本。如果您要使用自己的入口点,可以按如下方式覆盖入口点。

更新 Pod 文件中的 command 参数。将 args 参数替换为您的自定义入口点脚本。

--- apiVersion: v1 kind: Pod metadata: name: pytorch-multi-model-server-densenet spec: restartPolicy: OnFailure containers: - name: pytorch-multi-model-server-densenet image: 763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:1.2.0-cpu-py36-ubuntu16.04 command: - "/bin/sh" - "-c" args: - /usr/local/bin/mxnet-model-server - --start - --mms-config /home/model-server/config.properties - --models densenet="https://dlc-samples.s3.amazonaws.com/pytorch/multi-model-server/densenet/densenet.mar"

commandentrypoint 的 Kubernetes 字段名称。有关详细信息,请参阅此 Kubernetes 字段名称表

如果 EKS 集群具有过期的 IAM 权限访问包含该映像的 ECR 存储库,或者您使用的 kubectl 来自与创建该集群的用户不同的用户,则您将收到以下错误消息。

error: unable to recognize "job.yaml": Unauthorized

要解决此问题,您需要刷新 IAM 令牌。请运行以下脚本。

set -ex AWS_ACCOUNT=${AWS_ACCOUNT} AWS_REGION=us-east-1 DOCKER_REGISTRY_SERVER=https://${AWS_ACCOUNT}.dkr.ecr.${AWS_REGION}.amazonaws.com DOCKER_USER=AWS DOCKER_PASSWORD=`aws ecr get-login --region ${AWS_REGION} --registry-ids ${AWS_ACCOUNT} | cut -d' ' -f6` kubectl delete secret aws-registry || true kubectl create secret docker-registry aws-registry \ --docker-server=$DOCKER_REGISTRY_SERVER \ --docker-username=$DOCKER_USER \ --docker-password=$DOCKER_PASSWORD kubectl patch serviceaccount default -p '{"imagePullSecrets":[{"name":"aws-registry"}]}'

spec 下的以下内容附加到您的 Pod 文件中。

imagePullSecrets: - name: aws-registry