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:
- NFS-Volumenkonfiguration für Dienste oder Jobs
- Cloud Storage-Volumekonfiguration für Dienste oder Jobs
Sie können NBD-, 9P-, CIFS/Samba- und Ceph-Netzwerkdateisysteme 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 NDB-, 9P-, CIFS/Samba- und Ceph-Netzwerkdateisysteme 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:
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"
Definieren Sie die Umgebungskonfiguration mit dem Dockerfile. Mit
RUN
geben Sie alle weiteren erforderlichen Systempakete wienbd-client
für NBD. Verwenden SieCMD
, um den Befehl anzugeben, der beim Ausführen des Images (Startskriptrun.sh
) ausgeführt werden soll, und um Standardargumente fürENTRYPOINT
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.