NBD-, 9P-, CIFS/Samba- und Ceph-Netzwerkdateisysteme verwenden

Auf dieser Seite wird die Verwendung von NBD-, 9P-, CIFS/Samba- und Ceph-Netzwerkdateisystemen mit Cloud Run beschrieben.

Wenn Sie NFS, Filestore oder Cloud Storage FUSE in Cloud Run verwenden, lesen Sie die folgenden Seiten:

Sie können Netzwerkdateisysteme NBD, 9P, CIFS/Samba und Ceph verwenden, um Daten zwischen mehreren Containern und Diensten in Cloud Run freizugeben und dauerhaft zu speichern. Dieses Feature ist nur verfügbar, wenn Sie die Cloud Run-Ausführungsumgebung der zweiten Generation verwenden.

Wenn Sie Dateien mit diesem Dateisystem in Ihrem Cloud Run-Dienst lesen und schreiben möchten, haben Sie folgende Möglichkeiten:

  • Wenn Sie die Daten nicht über die Lebensdauer der Instanz hinaus beibehalten müssen, können Sie das integrierte Arbeitsspeicherdateisystem verwenden.
  • Wenn Sie Daten über die Lebensdauer einer Instanz hinaus beibehalten und die Semantik des Standarddateisystems verwenden möchten, verwenden Sie die Netzwerkdateisysteme NDB, 9P, CIFS/Samba und Ceph mit Cloud Run.
  • Wenn Sie Daten über die Lebensdauer einer Instanz hinaus beibehalten und keine Semantik des Standarddateisystems benötigen, ist die einfachste Option die Verwendung von Cloud Storage-Clientbibliotheken. Diese Option eignet sich auch, wenn Sie gleichzeitig auf Daten von vielen Instanzen zugreifen müssen.

Beschränkungen

Die folgenden Überlegungen gelten für die Verwendung von NDB-, 9P-, CIFS/Samba- und Ceph-Netzwerkdateisystemen in Cloud Run:

  • Beim Bereitstellen in Cloud Run müssen Sie die Ausführungsumgebung der zweiten Generation angeben.

  • Cloud Run wurde für eine schnelle Skalierung auf eine große Anzahl von Instanzen entwickelt. Die meisten Netzwerkdateisysteme sind jedoch nicht für die gleichzeitige Verwendung durch eine große Anzahl von Clients konzipiert. Verwenden Sie das Feature für eine maximale Anzahl von Instanzen, um die Anzahl der Cloud Run-Instanzen zu begrenzen.

Netzwerkdateisystem einrichten

Wenn Sie noch keinen Dateiserver eingerichtet haben, folgen Sie der Lösungsanleitung für Dateiserver in Compute Engine, um das richtige Dateisystem für Ihre Anforderungen auszuwählen und einzurichten. Wenn Sie einen vorhandenen Dateiserver verwenden, achten Sie darauf, dass er von einem VPC-Netzwerk aus zugänglich ist.

Connector für serverlosen VPC-Zugriff konfigurieren

Sie müssen den Connector für serverlosen VPC-Zugriff verwenden, um Ihren Cloud Run-Dienst mit dem VPC-Netzwerk zu verbinden, in dem das Netzwerkdateisystem ausgeführt wird.

Folgen Sie der Anleitung auf der Seite Verbindung zu einem VPC-Netzwerk herstellen, um einen Connector für serverlosen VPC-Zugriff im selben VPC-Netzwerk zu erstellen und eine Verbindung zum Cloud Run-Dienst herzustellen.

Dateisystem über den Cloud Run-Dienst bereitstellen

So stellen Sie ein Netzwerkdateisystem bereit:

  1. Definieren Sie ein Startskript, das Ihre Anwendung startet und den Bereitstellungspunkt Ihres Dockerfile angibt. Verwenden Sie dazu die folgenden Beispiele und ersetzen Sie die Variablen nach Bedarf:

    • Für NBD

       echo "mounting ext4 image via NBD"
       nbd-client -L -name image IP_ADDRESS DEVICE_NAME
       mount DEVICE_NAME MOUNT_POINT_DIRECTORY

    • Für PD-SSD über NBD

       echo "mounting PD-SSD via NBD"
       nbd-client -L -name disk IP_ADDRESS DEVICE_NAME
       mount DEVICE_NAME MOUNT_POINT_DIRECTORY

    • Für 9P

       echo "mounting 9p export"
       mount -t 9p -o trans=tcp,aname=/mnt/diod,version=9p2000.L,uname=root,access=user IP_ADDRESS MOUNT_POINT_DIRECTORY

    • Für SMB

       echo "mounting SMB public share"
       mount -t cifs -ousername=USERNAME,password=PASSWORD,ip=IP_ADDRESS //FILESHARE_NAME MOUNT_POINT_DIRECTORY
       echo "mounts completed"

  2. Definieren Sie die Umgebungskonfiguration mit dem Dockerfile. Mit RUN geben Sie alle weiteren erforderlichen Systempakete wie nbd-client für NBD. Verwenden Sie CMD, um den Befehl anzugeben, der beim Ausführen des Images (Startskript run.sh) ausgeführt werden soll, und um Standardargumente für ENTRYPOINT bereitzustellen, was die Init-Prozessbinärdatei angibt.

Über den Cloud Run-Dienstcode auf ein Netzwerkdateisystem zugreifen

Für den Zugriff auf die Netzwerkdateisysteme in Ihrem Dienstcode verwenden Sie wie gewohnt die Lese- und Schreibvorgänge für die Datei.

Containerisieren und bereitstellen

Wenn der Cloud Run-Dienstcode abgeschlossen ist, containerisieren und stellen Sie bereit, wie Sie es normalerweise für einen Cloud Run-Dienst tun. Achten Sie dabei darauf, dass Sie die Ausführungsumgebung der zweiten Generation angeben.

Nächste Schritte