【发布时间】:2018-10-16 11:48:27
【问题描述】:
我有一个 GKE 集群,它使用 AWS ECR 存储库来拉取 docker 映像。这些是我遵循的步骤。
使用此命令创建了一个秘密
# cat > /tmp/image-pull-secret.yaml << EOF
apiVersion: v1
kind: Secret
metadata:
name: myregistrykey
data:
.dockerconfigjson: $(aws ecr get-authorization-token --output json | jq -n 'input.authorizationData | {auths: (reduce .[] as $d ({}; . + {($d.proxyEndpoint|sub("https?://";"")): {auth:$d.authorizationToken}}))}' | (base64 -w0 2>/dev/null || base64) )
type: kubernetes.io/dockerconfigjson
EOF
# kubectl apply -f /tmp/image-pull-secret.yaml
已创建部署但出现错误
# cat abc_deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: abc-deployment
labels:
app: abc
env: development
spec:
replicas: 3
selector:
matchLabels:
app: abc
env: development
template:
metadata:
labels:
app: abc
env: development
spec:
containers:
- name: abc
image: 34235354354.dkr.ecr.us-east-1.amazonaws.com/dev-abc:1.1.1
ports:
- containerPort: 8080
imagePullSecrets:
- name: myregistrykey
我得到的错误 ++++++++++++++++++++
Normal Pulling 1m (x2 over 1m) kubelet, gke-puppy-default-pool-e701eb52-6gdp pulling image "34235354354.dkr.ecr.us-east-1.amazonaws.com/dev-abc:1.1.1"
Warning Failed 1m (x2 over 1m) kubelet, gke-puppy-default-pool-e701eb52-6gdp Failed to pull image "34235354354.dkr.ecr.us-east-1.amazonaws.com/dev-abc:1.1.1": rpc error: code = Unknown desc = unauthorized: authentication required
Warning Failed 1m (x2 over 1m) kubelet, gke-puppy-default-pool-e701eb52-6gdp Error: ErrImagePull
Normal BackOff 1m (x6 over 1m) kubelet, gke-puppy-default-pool-e701eb52-6gdp Back-off pulling image "34235354354.dkr.ecr.us-east-1.amazonaws.com/dev-abc:1.1.1"
Warning Failed 1m (x6 over 1m) kubelet, gke-puppy-default-pool-e701eb52-6gdp Error: ImagePullBackOff
我们如何解决这个错误?
【问题讨论】:
-
请发到 serverFault stackoverflow.com/help/on-topic
标签: amazon-web-services docker kubernetes google-cloud-platform google-kubernetes-engine