Von Compute Engine aus verbinden

Auf dieser Seite wird beschrieben, wie Sie mit dem mysql-Client, der auf einer Compute Engine-Instanz installiert ist, eine Verbindung zu Cloud SQL herstellen können.

Sie können dafür private IP-Adressen, öffentliche IP-Adressen, den Cloud SQL Auth-Proxy oder das Cloud SQL Auth-Proxy-Docker-Image verwenden.

Schritt-für-Schritt-Anleitungen zum Ausführen einer Compute Engine-Beispiel-Webanwendung, die mit Cloud SQL verbunden ist, finden Sie in der Kurzanleitung zum Herstellen einer Verbindung von Compute Engine..

Hinweis

Diese Aufgabe enthält keine Anleitungen für das Einrichten Ihrer Compute Engine-Instanz. Informationen zum Erstellen und Konfigurieren einer Compute Engine-Instanz finden Sie in der Compute Engine-Dokumentation.

Private IP-Adresse

Wenn Sie eine Compute Engine-Instanz über eine private IP-Adresse mit Cloud SQL verbinden möchten, müssen folgende Voraussetzungen erfüllt sein: Der private Zugriff auf Dienste für die Umgebung muss eingerichtet und die Cloud SQL-Instanz für die Verwendung privater IP-Adressen muss konfiguriert sein. Die Compute Engine-Instanz muss sich in derselben Region wie Ihre Cloud SQL-Instanz und in dem Netzwerk befinden, das für eine private Verbindung konfiguriert ist. Weitere Informationen

1) Konfigurieren Sie die Instanz für die Verwendung privater IP-Adressen.

Folgen Sie der Anleitung unter Private IP-Verbindungen konfigurieren.

2. Stellen Sie eine Cloud Shell-Terminalverbindung zu Ihrer Compute Engine-Instanz her.

Verwenden Sie abhängig vom Betriebssystem der Instanz die entsprechende Anleitung:

Wenn auf Ihrer Compute Engine-Instanz ein öffentliches RHEL- oder CentOS-Image ausgeführt wird, blockiert SELinux unter Umständen die Proxy-Verbindung. Wenn dies geschieht, müssen Sie die SELinux-Funktion so konfigurieren, dass sie die Verbindung zulässt.

Weitere Informationen über SELinux für RHEL finden Sie in der RHEL-Dokumentation. Weitere Informationen über SELinux für CentOS finden Sie in der CentOS-Dokumentation.

3. Installieren Sie den mysql-Client auf der Compute Engine-Instanz, falls er noch nicht installiert ist.

  1. Laden Sie MySQL Community Server für Ihre Plattform von der Downloadseite für MySQL Community Server herunter.
    Community Server enthält auch den MySQL-Client.
  2. Installieren Sie Community Server nach den Anweisungen auf der Downloadseite.

Weitere Informationen zur MySQL-Installation finden Sie unter MySQL installieren und aktualisieren.

4. Stellen Sie eine Verbindung mit dem MySQL-Client her.

mysql -h CLOUD_SQL_PRIVATE_IP_ADDRESS -u USERNAME -p

Sie finden die private IP-Adresse auf der Seite Cloud SQL-Instanzen oder durch Ausführen des folgenden gcloud-Befehls:

gcloud sql instances list

Öffentliche IP-Adresse

So stellen Sie eine Verbindung über eine öffentliche IP-Adresse her:


Klicken Sie auf Anleitung, um eine detaillierte Anleitung für diese Aufgabe direkt im Cloud Shell-Editor zu erhalten:

Anleitung


1) Fügen Sie der Compute Engine-Instanz eine statische IPv4-Adresse hinzu, falls sie noch keine hat.

Verbindungen mit Compute Engine über IPv6 sind nicht möglich. Informationen zum Hinzufügen einer statischen IP-Adresse finden Sie unter Neue statische externe IP-Adresse reservieren in der Compute Engine-Dokumentation.

2. Autorisieren Sie die statische IP-Adresse der Compute Engine-Instanz als Netzwerk, das Verbindungen zur Cloud SQL-Instanz herstellen kann.

Weitere Informationen hierzu finden Sie unter Zugriff für öffentliche IP-Verbindungen konfigurieren.

3. Stellen Sie eine Cloud Shell-Terminalverbindung zu Ihrer Compute Engine-Instanz her.

Verwenden Sie abhängig vom Betriebssystem der Instanz die entsprechende Anleitung:

Wenn auf Ihrer Compute Engine-Instanz ein öffentliches RHEL- oder CentOS-Image ausgeführt wird, blockiert SELinux unter Umständen die Proxy-Verbindung. Wenn dies geschieht, müssen Sie die SELinux-Funktion so konfigurieren, dass sie die Verbindung zulässt.

Weitere Informationen über SELinux für RHEL finden Sie in der RHEL-Dokumentation. Weitere Informationen über SELinux für CentOS finden Sie in der CentOS-Dokumentation.

4. Installieren Sie den mysql-Client auf der Compute Engine-Instanz, falls er noch nicht installiert ist.

  1. Laden Sie MySQL Community Server für Ihre Plattform von der Downloadseite für MySQL Community Server herunter.
    Community Server enthält auch den MySQL-Client.
  2. Installieren Sie Community Server nach den Anweisungen auf der Downloadseite.

Weitere Informationen zur MySQL-Installation finden Sie unter MySQL installieren und aktualisieren.

5. Stellen Sie eine Verbindung mit dem MySQL-Client her.

mysql -h CLOUD_SQL_PUBLIC_IP_ADDR -u USERNAME -p

Sie finden die öffentliche IP-Adresse auf der Seite Cloud SQL-Instanzen oder durch Ausführen des folgenden gcloud-Befehls:

gcloud sql instances list

Ein Beispiel für das Herstellen einer SSL-Verbindung finden Sie unter SSL-Verbindung herstellen.

6. Die MySQL-Eingabeaufforderung wird angezeigt.

7. Wenn Sie ungenutzte Verbindungen aufrechterhalten müssen, gehen Sie so vor:

Legen Sie das TCP Keepalive fest.

Weitere Informationen finden Sie in der Compute Engine-Dokumentation unter Kommunikation zwischen Ihren Instanzen und dem Internet.

Bei Instanzen ist das Keepalive für die Verbindungen automatisch aktiviert.

Cloud SQL Auth-Proxy

So stellen Sie über Compute Engine eine Verbindung mit dem Cloud SQL Auth-Proxy her:

1) Cloud SQL Admin API aktivieren.

Enable the API

2. Erstellen Sie ein Dienstkonto.

  1. Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf:

    Zur Seite „Dienstkonten“

  2. Wählen Sie das Projekt aus, in dem sich die Cloud SQL-Instanz befindet.
  3. Klicken Sie auf Dienstkonto erstellen.
  4. Geben Sie im Feld Name des Dienstkontos einen Namen für das Dienstkonto ein.
  5. Ändern Sie die Dienstkonto-ID in einen eindeutigen, leicht erkennbaren Wert und klicken Sie dann auf Erstellen und fortfahren.
  6. Klicken Sie auf das Feld Rolle auswählen und wählen Sie eine der folgenden Rollen aus:
    • Cloud SQL > Cloud SQL-Client
    • Cloud SQL > Cloud SQL-Bearbeiter
    • Cloud SQL > Cloud SQL-Administrator
  7. Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.
  8. Klicken Sie auf das Aktionsmenü für das neue Dienstkonto und wählen Sie Schlüssel verwalten aus.
  9. Klicken Sie auf das Drop-down-Menü Schlüssel hinzufügen und dann auf Neuen Schlüssel erstellen.
  10. Prüfen Sie, ob der Schlüsseltyp JSON ist, und klicken Sie dann auf Erstellen.

    Die Datei mit dem privaten Schlüssel wird auf Ihren Computer heruntergeladen. Sie können die Datei an einen anderen Speicherort verschieben. Bewahren Sie die Schlüsseldatei sicher auf.

Wenn sich die Compute Engine-Instanz in einem anderen Projekt als die Cloud SQL-Instanz befindet, stellen Sie sicher, dass das Dienstkonto der Compute Engine-Instanz in dem Projekt, in dem sich die Cloud SQL-Instanz befindet, über die entsprechenden Berechtigungen verfügt:

  1. Rufen Sie in der Google Cloud Console die Liste der Compute Engine-Instanzen auf.

    Zur Liste "Compute Engine-Instanzen"

  2. Falls erforderlich, wählen Sie das Projekt aus, das zur Compute Engine-Instanz gehört.
  3. Wählen Sie die Compute Engine-Instanz aus, um ihre Attribute zu sehen.
  4. Kopieren Sie in den Attributen der Compute Engine-Instanz den Namen des Dienstkontos.
  5. Wechseln Sie in der Google Cloud Console zur Seite IAM & Verwaltung > Projekte.

    Seite "IAM & Verwaltung" aufrufen

  6. Wählen Sie das Projekt aus, in dem sich die Cloud SQL-Instanz befindet.
  7. Suchen Sie nach dem Namen des Dienstkontos.
  8. Wenn das Dienstkonto bereits vorhanden ist und eine Rolle mit der Berechtigung cloudsql.instances.connect hat, können Sie mit Schritt 4 fortfahren.

    Die Rollen Cloud SQL Client, Cloud SQL Editor und Cloud SQL Admin sowie die Legacy-Projektrollen Editor und Owner haben alle die erforderliche Berechtigung.

  9. Falls nicht, fügen Sie das Dienstkonto hinzu. Klicken Sie dazu auf Hinzufügen.
  10. Geben Sie im Dialogfeld Hauptkonten hinzufügen den Namen des Dienstkontos an und wählen Sie eine Rolle mit der Berechtigung cloudsql.instances.connect aus. Sie können jede vordefinierte Cloud SQL-Rolle außer "Betrachter" verwenden.

    Alternativ können Sie die einfache Rolle „Bearbeiter“ verwenden. Wählen Sie dazu Projekt > Bearbeiter aus. Allerdings gewährt die Rolle „Bearbeiter“ umfassende Berechtigungen in Google Cloud.

    Wenn diese Rollen nicht angezeigt werden, kann es sein, dass Ihr Google Cloud-Nutzer nicht die Berechtigung resourcemanager.projects.setIamPolicy hat. Zum Prüfen Ihrer Berechtigungen rufen Sie in der Google Cloud Console die Seite "IAM" auf und suchen nach Ihrer Nutzer-ID.

  11. Klicken Sie auf Hinzufügen.

    Das Dienstkonto mit der angegebenen Rolle wird jetzt aufgeführt.

3. Stellen Sie eine Terminalverbindung zu Ihrer Compute Engine-Instanz her.

Verwenden Sie abhängig vom Betriebssystem der Instanz die entsprechende Anleitung:

Wenn auf Ihrer Compute Engine-Instanz ein öffentliches RHEL- oder CentOS-Image ausgeführt wird, blockiert SELinux unter Umständen die Proxy-Verbindung. Wenn dies geschieht, müssen Sie die SELinux-Funktion so konfigurieren, dass sie die Verbindung zulässt.

Weitere Informationen über SELinux für RHEL finden Sie in der RHEL-Dokumentation. Weitere Informationen über SELinux für CentOS finden Sie in der CentOS-Dokumentation.

4. Installieren Sie den mysql-Client auf der Compute Engine-Instanz, falls er noch nicht installiert ist.

  1. Laden Sie MySQL Community Server für Ihre Plattform von der Downloadseite für MySQL Community Server herunter.
    Community Server enthält auch den MySQL-Client.
  2. Installieren Sie Community Server nach den Anweisungen auf der Downloadseite.

Weitere Informationen zur MySQL-Installation finden Sie unter MySQL installieren und aktualisieren.

5. Installieren Sie den Cloud SQL Auth-Proxy auf der Compute Engine-Instanz.

Linux 64-Bit

  1. Laden Sie den Cloud SQL Auth-Proxy herunter:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.11.2/cloud-sql-proxy.linux.amd64
  2. Machen Sie den Cloud SQL Auth-Proxy ausführbar:
    chmod +x cloud-sql-proxy

Linux 32-Bit

  1. Laden Sie den Cloud SQL Auth-Proxy herunter:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.11.2/cloud-sql-proxy.linux.386
  2. Wenn der Befehl curl nicht gefunden wird, führen Sie sudo apt install curl aus und wiederholen Sie den Downloadbefehl.
  3. Machen Sie den Cloud SQL Auth-Proxy ausführbar:
    chmod +x cloud-sql-proxy

Windows 64-Bit

Klicken Sie mit der rechten Maustaste auf https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.11.2/cloud-sql-proxy.x64.exe und wählen Sie Link speichern unter aus, um den Cloud SQL Auth-Proxy herunterzuladen. Benennen Sie die Datei in cloud-sql-proxy.exe um.

Windows 32-Bit

Klicken Sie mit der rechten Maustaste auf https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.11.2/cloud-sql-proxy.x86.exe und wählen Sie Link speichern unter aus, um den Cloud SQL Auth-Proxy herunterzuladen. Benennen Sie die Datei in cloud-sql-proxy.exe um.

Docker-Image des Cloud SQL Auth-Proxys

Der Cloud SQL Auth-Proxy hat verschiedene Container-Images, z. B. distroless, alpine und buster. Das standardmäßige Cloud SQL Auth-Proxy-Container-Image verwendet distroless, das keine Shell enthält. Wenn Sie eine Shell oder verwandte Tools benötigen, laden Sie ein auf alpine oder buster basierendes Image herunter. Weitere Informationen finden Sie unter Container-Images von Cloud SQL Auth-Proxy.

Sie können das neueste Image mithilfe von Docker mit dem folgenden Befehl auf Ihren lokalen Computer übertragen:

docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.11.2

Andere Betriebssysteme

Für andere Betriebssysteme, die hier nicht aufgeführt sind, können Sie den Cloud SQL Auth-Proxy aus der Quelle kompilieren.

6. Starten Sie den Cloud SQL Auth-Proxy.

Je nach verwendeter Programmiersprache und Umgebung können Sie den Cloud SQL Auth-Proxy entweder mit TCP-Sockets, mit Unix-Sockets oder mit dem Cloud SQL Auth-Docker-Proxy-Image starten. Das Cloud SQL Auth-Proxy-Binärprogramm stellt eine Verbindung zu einer oder mehreren Cloud SQL-Instanzen her, die in der Befehlszeile angegeben sind, und öffnet eine lokale Verbindung als TCP- oder Unix-Socket. Andere Anwendungen und Dienste, z. B. Ihre Anwendungscode- oder Datenbankverwaltungs-Clienttools, können über diese TCP- oder Unix-Socket-Verbindungen eine Verbindung zu Cloud SQL-Instanzen herstellen.

TCP-Sockets

Bei TCP-Verbindungen beobachtet der Cloud SQL Auth-Proxy standardmäßig localhost(127.0.0.1). Wenn Sie also --port PORT_NUMBER für eine Instanz angeben, befindet sich die lokale Verbindung auf 127.0.0.1:PORT_NUMBER.

Alternativ können Sie eine andere Adresse für die lokale Verbindung angeben. So können Sie zum Beispiel den Cloud SQL-Auth-Proxy dazu bringen, die lokale Verbindung auf 0.0.0.0:1234 zu beobachten:

./cloud-sql-proxy --address 0.0.0.0 --port 1234 INSTANCE_CONNECTION_NAME
  1. Kopieren Sie Ihren INSTANCE_CONNECTION_NAME. Sie finden ihn in der Google Cloud Console auf der Seite Übersicht für Ihre Instanz oder über den folgenden Befehl:

        gcloud sql instances describe INSTANCE_NAME --format='value(connectionName)'
    .

    Beispiel: myproject:myregion:myinstance.

  2. Wenn für die Instanz sowohl eine öffentliche als auch eine private IP-Adresse konfiguriert ist und der Cloud SQL Auth-Proxy die private IP-Adresse verwenden soll, müssen Sie beim Starten des Cloud SQL Auth-Proxys folgende Option angeben:
    --private-ip
  3. Wenn Sie ein Dienstkonto zur Authentifizierung des Cloud SQL Auth-Proxys verwenden, notieren Sie den Speicherort der Datei mit dem privaten Schlüssel, die zusammen mit dem Dienstkonto erstellt wurde, auf Ihrem Clientcomputer.
  4. Starten Sie den Cloud SQL Auth-Proxy.

    Einige mögliche Strings zum Aufrufen des Cloud SQL Auth-Proxys:

    • Mit Cloud SDK-Authentifizierung:
      ./cloud-sql-proxy --port 3306 INSTANCE_CONNECTION_NAME
      Der angegebene Port darf nicht belegt sein (etwa durch einen lokalen Datenbankserver).
    • Mit einem Dienstkonto und unter expliziter Angabe des Namens der Instanzverbindung (empfohlen für Produktionsumgebungen):
      ./cloud-sql-proxy \
      --credentials-file PATH_TO_KEY_FILE INSTANCE_CONNECTION_NAME &

    Weitere Informationen über Cloud SQL Auth-Proxyoptionen finden Sie unter Authentifizierungsoptionen für den Cloud SQL Auth-Proxy sowie Spezifikationsoptionen für Instanzen.

Unix-Sockets

Der Cloud SQL Auth-Proxy kann einen Unix-Socket beobachten. Dies ist ein POSIX-Standardverfahren für die Verwendung eines Ordners zur Verwaltung der Kommunikation zwischen zwei Prozessen, die auf demselben Host ausgeführt werden. Vorteile der Verwendung von Unix-Sockets sind höhere Sicherheit und geringere Latenz. Sie können jedoch nicht von einem externen Computer aus auf einen Unix-Socket zugreifen.

Zum Erstellen und Verwenden eines Unix-Sockets muss das Zielverzeichnis vorhanden sein und sowohl der Cloud SQL Auth-Proxy als auch die Anwendung müssen Lese- und Schreibzugriff darauf haben.

  1. Wenn Sie eine explizite Instanzspezifikation verwenden, kopieren Sie Ihren INSTANCE_CONNECTION_NAME. Sie finden ihn auf der Seite Übersicht Ihrer Instanz in der Google Cloud Console oder ermitteln ihn über folgenden Befehl:

    gcloud sql instances describe INSTANCE_NAME  --format='value(connectionName)'

    Beispiel: myproject:myregion:myinstance.

  2. Erstellen Sie das Verzeichnis für die Cloud SQL Auth-Proxy-Sockets:
    sudo mkdir /cloudsql; sudo chmod 777 /cloudsql
  3. Wenn Sie ein Dienstkonto zur Authentifizierung des Cloud SQL Auth-Proxys verwenden, notieren Sie den Speicherort der Datei mit dem privaten Schlüssel, die zusammen mit dem Dienstkonto erstellt wurde, auf Ihrem Clientcomputer.
  4. Öffnen Sie ein neues Cloud Shell-Terminalfenster und starten Sie den Cloud SQL Auth-Proxy.

    Einige mögliche Strings zum Aufrufen des Cloud SQL Auth-Proxys:

    • Mit einem Dienstkonto und unter expliziter Angabe des Namens der Instanzverbindung (empfohlen für Produktionsumgebungen):
      ./cloud-sql-proxy --unix-socket /cloudsql
      --credentials-file PATH_TO_KEY_FILE INSTANCE_CONNECTION_NAME &
    • Mit Cloud SDK-Authentifizierung und automatischer Instanzerkennung:
      ./cloud-sql-proxy --unix-socket /cloudsql &

    Starten Sie den Cloud SQL Auth-Proxy in einem eigenen Cloud Shell-Terminal. So können Sie seine Ausgabe beobachten, ohne dass sie mit der Ausgabe anderer Programme vermischt wird.

    Weitere Informationen über Cloud SQL Auth-Proxyoptionen finden Sie unter Authentifizierungsoptionen für den Cloud SQL Auth-Proxy sowie Spezifikationsoptionen für Instanzen.

Docker

Verwenden Sie zum Ausführen des Cloud SQL Auth-Proxys in einem Docker-Container das Cloud SQL Auth-Proxy-Docker-Image, das in der Google Container Registry verfügbar ist.

Sie können den Cloud SQL Auth-Proxy entweder mit TCP-Sockets oder mit Unix-Sockets starten. Dafür werden die folgenden Befehle verwendet. Die Optionen verwenden einen INSTANCE_CONNECTION_NAME als Verbindungsstring, um eine Cloud SQL-Instanz zu identifizieren. Sie finden den INSTANCE_CONNECTION_NAME auf der Seite Übersicht Ihrer Instanz in der Google Cloud Console oder ermitteln ihn über folgenden Befehl:

gcloud sql instances describe INSTANCE_NAME
.

Beispiel: myproject:myregion:myinstance.

Je nach Ihrer Programmiersprache und Umgebung können Sie den Cloud SQL Auth-Proxy entweder mit TCP-Sockets oder mit Unix-Sockets starten. Allerdings werden Unix-Sockets nicht für Anwendungen unterstützt, die in der Programmiersprache Java oder für die Windows-Umgebung geschrieben sind.

TCP-Sockets verwenden

docker run -d \\
  -v PATH_TO_KEY_FILE:/path/to/service-account-key.json \\
  -p 127.0.0.1:3306:3306 \\
  gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.11.2 \\
  --address 0.0.0.0 --port 3306 \\
  --credentials-file /path/to/service-account-key.json INSTANCE_CONNECTION_NAME

Wenn Sie die von Ihrer Compute Engine-Instanz bereitgestellten Anmeldedaten verwenden, geben Sie den Parameter --credentials-file und die Zeile -v PATH_TO_KEY_FILE:/path/to/service-account-key.json nicht an.

Geben Sie in -p immer das Präfix 127.0.0.1 an, damit der Cloud SQL Auth-Proxy nicht außerhalb des lokalen Hosts bereitgestellt wird. Die Angabe "0.0.0.0" im Instanzparameter ist erforderlich, damit von außerhalb des Docker-Containers auf den Port zugegriffen werden kann.

Unix-Sockets verwenden

docker run -d -v /cloudsql:/cloudsql \\
  -v PATH_TO_KEY_FILE:/path/to/service-account-key.json \\
  gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.11.2 --unix-socket=/cloudsql \\
  --credentials-file /path/to/service-account-key.json INSTANCE_CONNECTION_NAME

Wenn Sie die von Ihrer Compute Engine-Instanz bereitgestellten Anmeldedaten verwenden, geben Sie den Parameter --credentials-file und die Zeile -v PATH_TO_KEY_FILE:/path/to/service-account-key.json nicht an.

Wenn Sie ein containeroptimiertes Image verwenden, ersetzen Sie /cloudsql durch ein beschreibbares Verzeichnis. Beispiel:

-v /mnt/stateful_partition/cloudsql:/cloudsql

Sie können mehrere durch Kommas getrennte Instanzen angeben. Außerdem haben Sie die Möglichkeit, mithilfe von Compute Engine-Metadaten dynamisch die Instanzen zu bestimmen, zu denen eine Verbindung hergestellt werden soll. Weitere Informationen zu Cloud SQL Auth-Proxy-Parametern.

7. Starten Sie die MySQL-Sitzung.

Der verwendete Verbindungsstring hängt davon ab, ob Sie den Cloud SQL Auth-Proxy mit einem TCP-Socket, einem UNIX-Socket oder einem Docker gestartet haben.

TCP-Sockets

  1. Starten Sie den MySQL-Client:
    mysql -u USERNAME -p --host 127.0.0.1

    Wenn Sie die Verbindung mithilfe von TCP-Sockets herstellen, greifen Sie über 127.0.0.1 auf den Cloud SQL Auth-Proxy zu.

  2. Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden.
  3. Die MySQL-Eingabeaufforderung wird angezeigt.

Unix-Sockets verwenden

  1. Starten Sie den MySQL-Client:
    mysql -u USERNAME -p -S /cloudsql/INSTANCE_CONNECTION_NAME
  2. Geben Sie das Passwort ein.
  3. Die MySQL-Eingabeaufforderung wird angezeigt.

Benötigen Sie Hilfe? Informationen zur Fehlerbehebung für den Proxy finden Sie unter Fehlerbehebung bei Cloud SQL Auth-Proxyverbindungen oder auf der Seite Cloud SQL-Support.

Nächste Schritte