Wie können Google Compute Engine-Bilder projektübergreifend geteilt werden?

8

Aus der Dokumentation weiß ich, dass es sich bei Bildern um globale Ressourcen handelt, auf die "von jeder beliebigen Ressource aus zugegriffen werden kann Zone innerhalb desselben Projekts ".

Ich bin auf der Suche nach einer ähnlichen Funktionalität wie die gemeinsame Nutzung von AMIs in AWS. Das heißt, ich erstelle ein Bild, mache es öffentlich und jeder kann es sofort verwenden.

Wie erreiche ich am besten etwas Ähnliches in GCE? Das Problem ist, dass das Bild, das ich erstellen möchte, groß ist - etwa 100 GB. Also suche ich nach einer Möglichkeit, das Bild zu teilen, das kein langsames Kopieren erfordert (z. B. aus einem Bucket im Google Cloud-Speicher).

    
Jakub Kotowski 02.01.2014, 12:44
quelle

4 Antworten

11

Sie können Google Cloud Storage verwenden, aber Sie werden jedes Mal, wenn es heruntergeladen wird, in Rechnung gestellt, und es wird lange dauern (wenn es 100 GB ist).

Bessere Lösung ist es, dem Benutzer den Zugriff auf Ihr Projekt zu gewähren. Dann kann der Benutzer mithilfe des Bildes eine Instanz erstellen, indem er die Befehlszeile gcutil verwendet. Aber beachten Sie, dass dieser Benutzer alles, was Sie in dem Projekt haben, sehen wird, er wird es nur nicht ändern können.

Diese Lösung ist schneller, wenn der Eigentümer des Bildes sie in der Zone verwendet hat, die Sie verwenden möchten. Weil das Bild dort eingelöst wird und sofort beginnt. Anderes Plus ist, dass der Besitzer nicht belastet wird, wenn jemand dieses Bild herunterlädt.

gcutil --service_version="v1" --project=<ID-of-your-project> addinstance <name-you-for-instance> --machine_type=<type-of-machine> --network="default" --external_ip_address="ephemeral" --zone=<datacenter-zone> --image="https://www.googleapis.com/compute/v1/projects/<ID-of-image-owners-project>/global/images/<image-id>" --persistent_boot_disk="true"

Wenn Sie einer größeren Gruppe von Personen Zugriff gewähren möchten, können Sie eine Google-Gruppe erstellen und Gruppenmitgliedern den Zugriff auf das Projekt erlauben. Jetzt können Sie mithilfe Ihrer Google-Gruppe steuern, wer darauf zugreifen kann.

    
Andrejs 24.01.2014, 11:23
quelle
1

Sie können Ihr Bild in Google Cloud Storage speichern. Google Cloud-Speicher bietet Ihnen noch mehr Möglichkeiten, zu steuern, wer Zugriff auf das Bild hat, außer es öffentlich zu machen.

Sie können gcutil verwenden, um auf dieses Bild zuzugreifen. Etwas wie gcutil --project=project-name-1 addimage "my-awesome-image" gs://bucket-name/myawesome.images.gz .

    
markovuksanovic 03.01.2014 12:36
quelle
0

Compute Engine, da eine IAM-Rolle (Compute.imageUser) hinzugefügt wurde, mit der Bilder mit anderen Projekten freigegeben werden können.

Dokumentation: Ссылка

Haftungsausschluss - Ich arbeite für Google Cloud.

    
Shanmugam Kulandaivel 09.11.2016 00:00
quelle
0

Man kann einfach roles/compute.imageUser auf ein Dienstkonto von <ID-of-your-project> zugreifen, das zum Erstellen von Instanzen verwendet wird:

%Vor%     
fkorotkov 03.10.2017 19:49
quelle

Tags und Links