Я установил K8S с kubeadm
и docker 18.09.4
, и он работает нормально. Затем я установил gcloud
, запустил gcloud init
и выбрал свой проект, в котором активирован gcr
, затем gcloud components install kubectl docker-credentials-gcr
, затем docker-credentials-gcr configure-docker
.
На этом этапе docker
может извлекать изображения из моего собственного реестра gcr
, в то время как kubelet
не может.
Обычно, если я запускаю docker run --rm --name hello gcr.io/own-gcr/hello-world
, он извлекает образ из реестра и запускает контейнер.
Если я удаляю изображение из локального реестра и запускаю ``, оно завершается ошибкой со следующим описанием:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 23s default-scheduler Successfully assigned default/node-hello-6b99957775-9dvvw to lfr025922-docker
Normal BackOff 20s (x2 over 21s) kubelet, lfr025922-docker Back-off pulling image "gcr.io/own-gcr/node-hello"
Warning Failed 20s (x2 over 21s) kubelet, lfr025922-docker Error: ImagePullBackOff
Normal Pulling 9s (x2 over 22s) kubelet, lfr025922-docker Pulling image "gcr.io/own-gcr/node-hello"
Warning Failed 9s (x2 over 21s) kubelet, lfr025922-docker Failed to pull image "gcr.io/own-gcr/node-hello": rpc error: code = Unknown desc = Error response from daemon: unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication
Warning Failed 9s (x2 over 21s) kubelet, lfr025922-docker Error: ErrImagePull
Я, конечно, следовал всем инструкциям на странице https://cloud.google.com/container-registry/docs/advanced-authentication и ни одна из них не была успешной.
Известны ли вам какие-либо проблемы с kubelet 1.14
и docker 18.09.5
? Разве kubelet
не должен полагаться на базовый CRI
(здесь docker
)? Ты хоть представляешь, что может вызвать эту проблему?