No se puede conectar a CloudSQL desde GKE sin CloudSQL Proxy - SQLSTATE[HY000] [2002] Se agotó el tiempo de espera de la operación

No se puede conectar a CloudSQL desde GKE sin CloudSQL Proxy - SQLSTATE[HY000] [2002] Se agotó el tiempo de espera de la operación

He creado un clúster de GKE con el siguiente comando:

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

Ahora quería conectar mi aplicación PHP a la nube SQL. Para autorizar el acceso a la nube SQL desde la aplicación PHP que se ejecuta en el pod, he realizado los siguientes pasos

  • Creó un secreto
    kubectl create secret generic stage-cloudsql-secret \
      --from-literal=db_host=<YOUR-PRIVATE-IP-ADDRESS>
  • Actualicé este secreto de mi pod en la sección del contenedor de la siguiente manera:
    env:
            - name: DB_HOST
              valueFrom:
                secretKeyRef:
                  name: stage-cloudsql-secret
                  key: db_host

Actualicé la IP privada de CloudSQL (junto con el nombre de la base de datos, el nombre de usuario y la contraseña) en mi archivo PHP (env.php), construí mi imagen de la ventana acoplable y creé el pod en el clúster de GKE. Cuando se crea el pod, aparece el siguiente error del contenedor (contenedor fallido):

SQLSTATE[HY000] [2002] Operation timed out

Nota 1: Esta es una aplicación que funciona en un entorno alojado y estamos migrando a la nube de Google.

Nota 2: GKE y Cloud SQL están en la misma VPC (predeterminado)

Nota 3: alias de IP habilitado en el clúster

Nota 4: Tengo un contenedor que crea datos en la base de datos cuando se inicia

Actualización 1

Seguí los pasos mencionados en la documentación de la nube de Google.Enlace

Tengo SSH en el contenedor e intenté acceder (Ping) a la nube SQL usando una IP privada. pero no pude

Actualización 2

Después de seguir los enlaces anteriores, cambié la forma en que creo el secreto (esta vez solo la IP privada). También actualicé mi env.php como se muestra a continuación

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

Anteriormente 'host' => [IP privada de Cloud SQL]

Esta vez, cuando se crea el pod, muestra el siguiente error

SQLSTATE[HY000] [2002] No existe tal archivo o directorio

Actualización 3

He rehecho todos los pasos nuevamente y está funcionando.

información relacionada