Kubernetes: невозможно создать репозиторий
Я руководство по началу работы Kubernete. Все шло гладко, пока я не побежал!--6-->
$ gcloud docker push gcr.io/<PROJECT ID>/hello-node:v1
(где, ну, мой идентификатор проекта). По какой-то причине Kubernetes не может нажать на реестр. Вот что я получаю:
Warning: '--email' is deprecated, it will be removed soon. See usage.
Login Succeeded
Warning: '--email' is deprecated, it will be removed soon. See usage.
Login Succeeded
Warning: '--email' is deprecated, it will be removed soon. See usage.
Login Succeeded
Warning: '--email' is deprecated, it will be removed soon. See usage.
Login Succeeded
Warning: '--email' is deprecated, it will be removed soon. See usage.
Login Succeeded
Warning: '--email' is deprecated, it will be removed soon. See usage.
Login Succeeded
Warning: '--email' is deprecated, it will be removed soon. See usage.
Login Succeeded
The push refers to a repository [gcr.io/kubernetes-poc-1320/hello-node]
18465c0e312f: Preparing
5f70bf18a086: Preparing
9f7afc4ce40e: Preparing
828b3885b7b1: Preparing
5dce5ebb917f: Preparing
8befcf623ce4: Waiting
3d5a262d6929: Waiting
6eb35183d3b8: Waiting
denied: Unable to create the repository, please check that you have access to do so.
есть идеи о том, что я могу делать неправильно? Обратите внимание, что я побежал. $ gcloud init
, Так что я вошел в систему.
спасибо заранее!
11 ответов
это решило его в моем случае:
короткая версия:
пресс Enable billing
на Container Engine
экран https://console.cloud.google.com
.
версия:
в моем случае я получил ошибку из-за проблемы с настройкой биллинга в консоли Google cloud platform.
хотя я ввел всю информацию о своей кредитной карте и экран моего Container Engine
экран в облачной платформе google консоль сказала Container Engine is getting ready. This may take a minute or more.
, это не сработало, прежде чем я нажал Enable billing
на одном экране. Тогда gcloud docker push
команда наконец-то сработала.
как ни странно, позже вернувшись в Container Engine
экран, он показывает мне Container Engine is getting ready. This may take a minute or more.
и кнопку Enable billing
снова.. должна быть ошибка в консоли.
ни одно из вышеперечисленных решений не сработало для меня, и я, наконец, нашел решение. Я использую Windows 10 и посмотрел на мой C:/Users//.docker / config.файл json, и он выглядел так.
{
"auths": {
"https://appengine.gcr.io": {},
"https://asia.gcr.io": {},
"https://b.gcr.io": {},
"https://bucket.gcr.io": {},
"https://eu.gcr.io": {},
"https://gcr.io": {},
"https://gcr.kubernetes.io": {},
"https://us.gcr.io": {}
},
"credsStore": "wincred"
}
удаление "credsStore":"wincred" line Исправлена проблема!
Если вы используете экземпляр GCE, вам нужно убедиться, что он имеет правильную область доступа к облачному API. Поскольку вы не можете редактировать области на запущенных экземплярах, вы можете создать новый экземпляр с помощью текущего диска.
чтобы сделать это, сделайте следующее
- перейдите на страницу экземпляра и нажмите редактировать
- убрать удалить загрузочный диск при удалении экземпляра и нажмите кнопку сохранить
- создать новый экземпляр использование предыдущего диска и разрешения на запись в хранилище.
Я получал эту же ошибку, потому что я случайно использовал проект имя, а не автоматически сгенерированные id. The PROJECT_ID
можно найти через:
$ gcloud info
а также в Google Cloud dashboard:https://console.cloud.google.com/home/dashboard
глупо, я понимаю, но я могу представить, что другие делают ту же ошибку:)
убедитесь, что вы прошли проверку подлинности с Google Cloud.
$ gcloud auth application-default login
проверьте gcloud
указывает на ваш текущий проект.
$ gcloud config set project PROJECT_ID
если у вас все еще есть проблемы, бегите gcloud info
и посмотрите на Last Log File
. Примечание:gcloud auth login
больше не записывает учетные данные приложения по умолчанию.
на https://stackoverflow.com/a/39996807/598513 я ответил переключение пользователей/счета
gcloud auth list
gcloud config set account example@gmail.com
Edit: это сработало для меня несколько месяцев назад. Новые версии Kubernetes могут не иметь этой проблемы, или это решение может не решить ее:)
хорошо, после нескольких часов борьбы с этим, мне, наконец, удалось подтолкнуть его к grc.реестр ввода-вывода, изменив мой тег с image:version
написать image/version
, например:
gcloud docker push gcr.io/<PROJECT ID>/hello-node/v1
после прочтения другого руководства из документации Kubernetes: https://cloud.google.com/container-registry/docs/pushing#pushing_to_the_registry
надеюсь, что это помогает!
для меня, имея ту же ошибку, я обнаружил, что пропустил "gcloud" в начале. Это было потому, что предыдущие 2 команды начались с docker, и я просто просмотрел изменения после docker.
~/gs-spring-boot/complete$ docker -- push gcr.io/kubernetes-codelab-1xxxxx/hello-java:v1
правильно:
~/gs-spring-boot/complete$ gcloud docker -- push gcr.io/kubernetes-codelab-1xxxxx/hello-java:v1
run gcloud init
и посмотреть, вошли ли вы в правильную учетную запись. У меня когда-то была эта ошибка из-за того, что я пытался нажать изображение из другой учетной записи google
при использовании docker-учетные данные-помощники для хранения учетных данных docker в связке ключей OSX,gcloud docker -- push $registry/$project_id/<image>:<tag>
невозможна.
решение для меня, чтобы вернуться ~/.docker/config.json
чтобы не хранить учетные данные надежно с брелка
см. также:https://github.com/GoogleCloudPlatform/gcloud-common/issues/198
Что вы используете в качестве идентификатора проекта? Это не должно быть "мое-kubernetes-codelab", должно быть "мое-kubernetes-codelab-234231", или как там нумеруются версии. Это была моя проблема.