Não é possível conectar-se ao CloudSQL do GKE sem o CloudSQL Proxy - SQLSTATE[HY000] [2002] A operação expirou

Não é possível conectar-se ao CloudSQL do GKE sem o CloudSQL Proxy - SQLSTATE[HY000] [2002] A operação expirou

Tenho um cluster GKE criado com o seguinte comando:

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

Agora eu queria conectar meu aplicativo PHP ao Cloud SQL. Para autorizar o acesso ao Cloud SQL a partir do aplicativo PHP em execução no pod, executei as seguintes etapas

  • Criou um segredo
    kubectl create secret generic stage-cloudsql-secret \
      --from-literal=db_host=<YOUR-PRIVATE-IP-ADDRESS>
  • Atualizei este segredo em meu pod na seção do contêiner da seguinte maneira:
    env:
            - name: DB_HOST
              valueFrom:
                secretKeyRef:
                  name: stage-cloudsql-secret
                  key: db_host

Atualizei o IP privado do CloudSQL (junto com o nome do banco de dados, nome de usuário e senha) em meu arquivo PHP (env.php), construí minha imagem docker e criei o pod no cluster do GKE. Quando o pod é criado, recebo o seguinte erro do contêiner (contêiner com falha):

SQLSTATE[HY000] [2002] Operation timed out

Nota 1: Este aplicativo está funcionando em ambiente hospedado e estamos migrando para a nuvem do Google

Nota 2: GKE e Cloud SQL estão na mesma VPC (padrão)

Nota 3: Aliasing de IP ativado no cluster

Nota 4: Eu tenho um contêiner que cria dados no banco de dados quando iniciado

Atualização 1

Segui as etapas mencionadas na documentação do Google Cloud.Link

Eu tenho SSH no contêiner e tentei acessar (Ping) no Cloud SQL usando IP privado. Mas eu não consegui

Atualização 2

Depois de seguir os links acima, mudei a forma como crio o segredo (desta vez apenas o IP privado). Também atualizei meu env.php conforme abaixo

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

Anteriormente 'host' => [IP privado do Cloud SQL]

Desta vez, quando o pod é criado, ele mostra o seguinte erro

SQLSTATE[HY000] [2002] Arquivo ou diretório inexistente

Atualização 3

Refiz todos os passos novamente e está funcionando

informação relacionada