Verbindung zu CloudSQL von GKE aus ohne CloudSQL-Proxy nicht möglich - SQLSTATE[HY000] [2002] Zeitüberschreitung beim Vorgang

Verbindung zu CloudSQL von GKE aus ohne CloudSQL-Proxy nicht möglich - SQLSTATE[HY000] [2002] Zeitüberschreitung beim Vorgang

Ich habe einen GKE-Cluster mit folgendem Befehl erstellt:

gcloud container clusters create stage1 \
--enable-ip-alias \
--release-channel stable \
--zone us-central1 \
--node-locations us-central1-a,us-central1-b

Jetzt wollte ich meine PHP-Anwendung mit Cloud SQL verbinden. Um den Zugriff auf Cloud SQL von der im Pod laufenden PHP-Anwendung aus zu autorisieren, habe ich folgende Schritte ausgeführt

  • Ein Geheimnis erstellt
    kubectl create secret generic stage-cloudsql-secret \
      --from-literal=db_host=<YOUR-PRIVATE-IP-ADDRESS>
  • Dieses Geheimnis wurde im Abschnitt „Mein Pod im Container“ wie folgt aktualisiert:
    env:
            - name: DB_HOST
              valueFrom:
                secretKeyRef:
                  name: stage-cloudsql-secret
                  key: db_host

Ich habe die private CloudSQL-IP (zusammen mit dem DB-Namen, Benutzernamen und Passwort) in meiner PHP-Datei (env.php) aktualisiert, mein Docker-Image erstellt und den Pod im GKE-Cluster erstellt. Wenn der Pod erstellt wird, erhalte ich folgenden Fehler vom Container (Containerfehler):

SQLSTATE[HY000] [2002] Operation timed out

Anmerkung 1: Dies ist eine funktionierende Anwendung in einer gehosteten Umgebung und wir migrieren in die Google Cloud

Anmerkung 2: GKE und Cloud SQL befinden sich im selben VPC (Standard)

Notiz 3: IP-Aliasing im Cluster aktiviert

Anmerkung 4: Ich habe einen Container, der beim Start Daten in der Datenbank erstellt

Aktualisierung 1

Ich habe die in der Google Cloud-Dokumentation beschriebenen Schritte befolgt.Verknüpfung

Ich habe per SSH auf den Container zugegriffen und versucht, Cloud SQL über eine private IP zu erreichen (Ping). Aber ich konnte nicht

Aktualisierung 2

Nachdem ich den obigen Links gefolgt bin, habe ich die Art und Weise geändert, wie ich Geheimnisse erstelle (diesmal nur die private IP). Ich habe auch meine env.php wie unten aktualisiert

array (
    'table_prefix' => '',
    'connection' =>
    array (
      'default' =>
      array (
        'host' => getenv('DB_HOST'),

Zuvor „Host“ => [Private IP von Cloud SQL]

Dieses Mal, wenn der Pod erstellt wird, wird folgender Fehler angezeigt

SQLSTATE[HY000] [2002] Keine solche Datei oder kein solches Verzeichnis

Aktualisierung 3

Ich habe alle Schritte noch einmal wiederholt und es funktioniert

verwandte Informationen