Я пытаюсь запустить экземпляр виртуальной машины Google Compute Engine VM с контейнером, созданным при запуске машины. Пример этого вы найдете в этом разделе документации: Creating containers at time of instance creation.Как создать контейнеры в момент создания экземпляра из изображений моего контейнера проекта
Все отлично работает с данного примера:
apiVersion: v1
kind: Pod
metadata:
name: service
spec:
containers:
- name: jillix-service
image: gcr.io/google-containers/busybox
command: ['nc', '-p', '8000', '-l', '-l', '-e', 'echo', 'hello world!']
imagePullPolicy: Always
ports:
- containerPort: 8000
hostPort: 80
, но когда я пытаюсь вместо того, чтобы использовать свой собственный контейнер изображения, то он не работает:
apiVersion: v1
kind: Pod
metadata:
name: service
spec:
containers:
- name: jillix-service
image: gcr.io/sigma-cairn-99810/service
imagePullPolicy: Always
ports:
- containerPort: 8000
hostPort: 80
В рабочем примере докер сообщает о следующих изображениях контейнеров на ВМ:
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
gcr.io/google_containers/pause 0.8.0 2c40b0526b63 7 months ago 241.7 kB
gcr.io/google-containers/busybox latest 4986bf8c1536 10 months ago 2.433 MB
но когда я использую свои контейнер изображений, это отсутствует:
[email protected]:~$ sudo docker images
СКЛАД TAG IMAGE ID СОЗДАНО ВИРТУАЛЬНЫЙ РАЗМЕР gcr.io/google_containers/pause 0.8.0 2c40b0526b63 7 месяцев назад 241,7 кБ
Таким образом, я предполагаю, что это причина, по которой мой контейнер не запускается. Но почему VM не загружает мое изображение gcr.io/sigma-cairn-99810/service
?
Нужно ли что-либо делать с аутентификацией? (Когда я вручную войти в VM и gcloud docker pull
, я пробужден gcloud auth login
первого, то я могу тянуть мое изображение и docker run
это нормально и все работает.)
Если я запускаю это из самого или от того места, где я создаю виртуальную машину VM? Есть ли дополнительная точка после 'internal.'? Из VM я получаю 404 ответ HTML (с дополнительной точкой или без нее). На машине, которая создала виртуальную машину, она не распознает домен в URL ('metadata.google.internal'), что заставляет меня предположить, что я должен запустите его внутри машины. –
Конечная точка является странной и делает ее полностью квалифицированным доменным именем (FQDN). Можете ли вы попробовать удалить 'default/scopes' с конца? Похоже, ваша виртуальная машина может не иметь никаких учетных данных. Можете ли вы добавить '--scopes = storage-ro' в команду gcloud для создания экземпляра? – mattmoor
Да, у моего экземпляра нет учетных записей службы. Я добавил учетную запись службы « -compute @ developer.gserviceaccount.com' и предоставил ей область« https: // www.googleapis.com/rus/devororage.read_only'. Теперь изображение частного контейнера вытягивается во время создания изображения, и мой контейнер запускается с машиной. Благодаря! –