Kubernetes docs sagen mit AWS ECR wird unterstützt, aber es funktioniert nicht für mich. Meine Knoten verfügen über eine EC2-Instanz Rolle mit all den richtigen Berechtigungen verbunden sind, aber kubectl run debug1 -i --tty --restart=Never --image=672129611065.dkr.ecr.us-west-2.amazonaws.com/debug:v2
Ergebnisse in failed to "StartContainer" for "debug1" with ErrImagePull: "Authentication is required."
Kubernetes Authentifizierung Probleme ziehen ECR Bilder
Einzelheiten
Die Fälle haben alle eine Rolle zugeordnet ist, und diese Rolle hat diese Politik angehängt:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:GetRepositoryPolicy",
"ecr:DescribeRepositories",
"ecr:ListImages",
"ecr:BatchGetImage"
],
"Resource": "*"
}]
}
Und die Kubelet Logs sehen so aus:
Apr 18 19:02:12 ip-10-0-170-46 kubelet[948]: I0418 19:02:12.004611 948 provider.go:91] Refreshing cache for provider: *credentialprovider.defaultDockerConfigProvider
Apr 18 19:02:12 ip-10-0-170-46 kubelet[948]: E0418 19:02:12.112142 948 pod_workers.go:138] Error syncing pod b21c2ba6-0593-11e6-9ec1-065c82331f7b, skipping: failed to "StartContainer" for "debug1" with ErrImagePull: "Authentication is required."
Apr 18 19:02:27 ip-10-0-170-46 kubelet[948]: E0418 19:02:27.006329 948 pod_workers.go:138] Error syncing pod b21c2ba6-0593-11e6-9ec1-065c82331f7b, skipping: failed to "StartContainer" for "debug1" with ImagePullBackOff: "Back-off pulling image \"672129611065.dkr.ecr.us-west-2.amazonaws.com/debug:v2\""
Das Problem ist, dass ECR-Anmeldeinformationen nur für 12 Stunden funktionieren, so dass diese Lösung nur funktionieren würde, bis die Anmeldeinformationen ablaufen. –