自定义入口点脚本 - AWS 深度学习 Containers

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

自定义入口点脚本

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

更新 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集群访问存放镜像的ECR存储库的IAM权限已过期,或者你使用的 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