本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
自定义入口点
对于某些图像, 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/multi-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"
command
是 entrypoint
的 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