Google Compute Engine: использовать моментальный снимок из другого проекта?
У меня есть два проекта в моей консоли разработчика. Я сделал "Снимок" одной из виртуальных машин в проекте-1. Я хочу создать новую виртуальную машину в проекте-2 с помощью моментального снимка, созданного в проекте-1. В настоящий момент моментальный снимок не отображается в опции.
Как импортировать снимок из одного проекта в другой?
Ответы
Ответ 1
Вы можете создать образ из привязки в Project 1, а затем создать экземпляр из этого изображения с помощью Project 2.
Я предполагаю, что у вас есть права редактирования в обоих проектах.
В вашем вопросе говорится, что у вас есть моментальный снимок и вы хотите сделать экземпляр в проекте 2 из оснастки в проекте 1.
Если у вас все еще есть доступный диск, который вы сделали снимок, убедитесь, что он больше не привязан к экземпляру. Если он еще привязан к экземпляру, снимите флажок "удалить загрузочный диск при удалении экземпляра" и удалите экземпляр. Перейдите в "Изображения" и нажмите "Создать образ с диска" и создайте изображение с этого диска.
Если у вас нет свободного места на диске, а всего лишь снимок, создайте экземпляр и установите загрузочный диск в качестве моментального снимка и выберите снимок. Затем следуйте инструкциям выше, чтобы создать изображение, удалив экземпляр первым.
Теперь у вас есть изображение в проекте 1. Вы должны увидеть его в списке под изображениями.
Я не уверен, почему, но вы не увидите изображение, указанное в консоли в проекте 2, однако вы можете использовать gcloud для создания экземпляра в проекте 2 с использованием изображения из проекта 1. В проекте 1 нажмите на изображении и нажмите "просмотреть REST", будет полный URL-адрес изображения, похожее на это:
https://www.googleapis.com/compute/v1/projects/cpomeroy-whitelist/global/images/ruby-image
Используйте gcloud для создания экземпляра в проекте 2 с использованием изображения в проекте 1:
gcloud config set project <project-id-of-project-2>
gcloud config list
(Вы должны убедиться, что находитесь в проекте 2)
gcloud compute instances create <name of instance> --image https://www.googleapis.com/compute/v1/projects/cpomeroy-whitelist/global/images/ruby-image
Очевидно, что ваш URL будет другим.
Я просто тестировал это, и он работает. Дайте мне знать, если вам нужна дополнительная помощь.
Ответ 2
Ответ @chrispomeroy сработал для меня, но я смог немного упростить его, поскольку мне нужно делать это все больше и больше.
Допустим, у вас есть изображение в проекте-1, и вам нужно создать экземпляр с использованием этого изображения в проекте-2.
gcloud config set project "project-2"
gcloud compute instances create <name-of-new-instance> \
--image <name-of-your-image-from-project-1> \
--image-project "project-1"
Это избавляет от необходимости беспокоиться об использовании URL
для чего-либо.
РЕДАКТИРОВАТЬ: мой ответ в значительной степени выглядит как его на данный момент, но документы для этого материала здесь:
Gcloud Compute экземпляры создают
Ответ 3
Вам не нужно изображение или виртуальная машина с нуля, и вам не нужно прерывать исходную VM. Просто создайте моментальный снимок в исходном проекте:
$ gcloud compute --project p1 disks snapshot the-snapshot src-disk --snapshot-names=the-snapshot
Created [https://www.googleapis.com/compute/v1/projects/p1/global/snapshots/the-snapshot].
Затем создайте диск в целевом проекте с --source-snapshot
, указав на URL "Созданный", который был возвращен выше:
$ gcloud compute --project p2 disks create the-disk \
--source-snapshot https://www.googleapis.com/compute/v1/projects/p1/global/snapshots/the-snapshot
Это использование не было показано в gcloud
docs, я нашел его в ответе @krishna praveen, но его объяснение неверно; вам не нужно удалять какие-либо экземпляры или использовать изображения. И это работает, даже если оба источника и назначения являются загрузочными дисками:
$ gcloud compute --project p2 instances create the-vm --disk name=the-disk,boot=yes
Если по какой-то причине вам требуется изображение, вы можете восстановить моментальный снимок на диск и использовать его для создания изображения без виртуальной машины с нуля. Это предпочтительнее, если виртуальная машина с нуля автоматически запускает службы при загрузке, что может помешать работе других запущенных виртуальных машин в одной и той же сети проекта.
$ gcloud compute images create image-1 --source-disk=src-disk-image --source-disk-zone=zone1
Теперь это изображение можно использовать из другого проекта (как показано @jiminikiz выше).
$ gcloud compute --project p2 instances create <name-of-new-instance> --image image-1 \
--image-project p1 --zone=zone
Ответ 4
Решение, предоставляемое "chrispomeroy", прекрасно работает, но сначала требуется запустить gcloud с вашей личной учетной записью пользователя google (вместо учетной записи службы проекта 2) (поскольку это тот, у кого есть разрешение на доступ к обоим проектам):
gcloud init (и выбрал [2] Вход с новыми учетными данными)
Тогда вы действительно можете создать виртуальную машину на проекте 2 (из базового изображения в проекте 1) с помощью:
Вычислительные экземпляры gcloud создают testimg --image -image-project (нет необходимости в URL-адресе) Я тестировал сегодня (ноябрь 2015 г.) и отлично работает
Ответ 5
Это решение для клика только через браузер. Что вам нужно? Вам нужно иметь изображение. Чтобы создать образ с диска, диск должен быть отсоединен от любого экземпляра.
Какие шаги, если у вас есть только экземпляр в Project1:
-
Создать снимок из экземпляра в Project1.
-
Создайте экземпляр из этого снимка в Project1. Снимите флажок "Удалить загрузочный диск при удалении экземпляра". Этот экземпляр он использовал только для
сейчас и буду удален
-
Удалить экземпляр, который вы только что создали
-
Зайдите в меню "Диски" и вы увидите там диск с экземпляром.
-
Зайдите в меню "Изображения" → "Создать изображение". Здесь вы можете создать изображение. Если у вас нет отсоединенного диска, в раскрывающемся списке не будет диска.
-
Перейдите в Project 2 и создайте экземпляр, используя пользовательское изображение, созданное для Project 1. Как? Загрузочный диск → изменить → Пользовательский images-> Выбрать проект 1-> Здесь вы можете увидеть собственное изображение
Ответ 6
AFAIK, это невозможно. Чтобы выполнить то, что вы описали, лучший способ действий - использовать этот учебник. У вас есть несколько шагов для создания пустого диска, прикрепления его к рассматриваемой машине, архивирования загрузочного раздела и загрузки его в облачное хранилище. Как только это будет сделано, загрузите его локально, переключите проекты и загрузите их в другой проект. Затем вы сможете просто выбрать аппарат из списка изображений, нажав New Instance
Ответ 7
Экземпляры могут быть созданы во всем проекте с использованием изображений. Теперь, если у вас есть изображение в Project 1, вы также можете выбрать его в Project 2.
Но на сегодняшний день вы не видите диски по всему проекту. Если вам нужно перенести виртуальную машину с соответствующими дополнительными дисками из проекта 1 в проект 2, выполните следующие действия.
-
Используйте моментальный снимок и создайте диск в Project 2, соединив командный интерфейс gcloud
.
Подключитесь к проекту 2, а затем выполните:
gcloud compute --project "GCPProject2" disks create "myserver-disk1" --size "50" --zone "us-east1-b" --source-snapshot https://www.googleapis.com/compute/v1/projects/GCPProject1/global/snapshots/snapshot-myserver-disk1 --description "DriveName" --type "pd-standard"
-
Выше будет создан диск в Project2. Затем вам нужно удалить экземпляр в Project1, сохранив загрузочный диск.
Затем создайте образ с диска myserver-bootdisk
.
Как только изображение будет создано, перейдите к Project 2, а затем создайте сервер из изображения, используйте раскрывающийся список и выберите изображение из Project 1.
-
Добавьте дополнительный диск, который вы создали из моментального снимка, и создайте виртуальную машину.