Como se conectar pelo Google Kubernetes Engine

Nesta página, descreveremos como configurar uma conexão de um aplicativo em execução no Google Kubernetes Engine para uma instância do Cloud SQL, usando IP particular ou a imagem do Cloud SQL Proxy Docker.

Introdução

Para acessar uma instância do Cloud SQL de um aplicativo em execução no Google Kubernetes Engine, é possível usar um endereço IP particular ou a imagem do Cloud SQL Proxy Docker. O IP particular é a maneira mais fácil de se conectar a partir do Google Kubernetes Engine, caso seu cluster atenda aos requisitos.

Para se conectar com segurança ao Cloud SQL do Google Kubernetes Engine usando um endereço IP público, você precisa usar o Cloud SQL Proxy.

As conexões do banco de dados consomem recursos no servidor e no aplicativo conectado. Sempre use boas práticas de gerenciamento de conexão para minimizar o espaço ocupado pelo seu aplicativo e reduzir a probabilidade de exceder os limites de conexão do Cloud SQL. Para ver mais informações, consulte Como gerenciar conexões de banco de dados.

Como se conectar usando um endereço IP particular

Quando você se conecta usando um endereço IP particular, o tráfego IP nunca é exposto à Internet pública. Para ver mais informações, consulte IP particular.

Antes de começar

Para se conectar ao Cloud SQL usando IP particular, é preciso ter:

  • GKE 1.8 ou superior em um cluster nativo de VPC, com a ferramenta de linha de comando kubectl instalada e configurada para se comunicar com o cluster.

    Para ajuda com o GKE, consulte o Início rápido.

  • um contêiner de aplicativo em um pod no cluster do GKE

  • uma instância de segunda geração criada

    Para ajuda na criação de uma instância do Cloud SQL, consulte Como criar instâncias.

  • Uma conta de usuário do MySQL configurada na instância.

    Seu aplicativo usará essa conta para se conectar ao banco de dados.

  • Um IP particular configurado e atribuído à instância do Cloud SQL.

Visão geral da conexão

As etapas abaixo descrevem o processo geral de conexão ao Cloud SQL a partir do GKE usando um endereço IP particular.

  1. Crie um Segredo para fornecer o nome de usuário e a senha do PostgreSQL ao banco de dados.

    Para ver mais informações sobre segredos, consulte Segredo.

  2. Atualize seu arquivo de configuração do pod com os seguintes itens:

    • Forneça o endereço IP particular da instância do Cloud SQL como o endereço do host que seu aplicativo usará para acessar seu banco de dados.
    • Forneça o segredo que você criou anteriormente para permitir que o aplicativo efetue login no banco de dados.
  3. Acesse sua implantação usando o arquivo de manifesto do Kubernetes.

Como se conectar usando a imagem do Cloud SQL Proxy Docker

Quando você se conecta usando a imagem do Cloud SQL Proxy Docker, o Cloud SQL Proxy é adicionado ao seu pod usando o padrão de contêiner "arquivo secundário" - o contêiner do proxy está no mesmo pod do seu aplicativo, que permite que o aplicativo se conecte ao proxy usando localhost, aumentando a segurança e o desempenho. Saiba mais.

Para saber mais, consulte Sobre o Cloud SQL Proxy. Para mais informações sobre como trabalhar com pods, consulte Visão geral de pods na documentação do Kubernetes.

Antes de começar

Veja o que é necessário antes de começar este procedimento:

  • um cluster do GKE executando a versão 1.2 ou superior, com a ferramenta de linha de comando kubectl instalada e configurada para se comunicar com o cluster

    Para ajuda com o GKE, consulte o Início rápido.

  • um contêiner de aplicativo em um pod no cluster do GKE

  • uma instância de segunda geração criada

    Para ajuda na criação de uma instância do Cloud SQL, consulte Como criar instâncias.

  • Uma conta de usuário do MySQL configurada na instância.

    Seu aplicativo usará essa conta para se conectar ao banco de dados. Para ajuda na criação de uma conta de usuário, consulte Como criar um usuário.

  • A API do Cloud SQL Admin ativada.

  • O local do arquivo de chaves associado a uma conta de serviço com os privilégios adequados para sua instância do Cloud SQL.

    Para ver mais informações, consulte Como criar uma conta de serviço.

  • Seu nome de conexão da instância do Cloud SQL.

    O nome da conexão da instância está disponível na página Detalhes da instância do Cloud SQL no Console do GCP ou no comando gcloud sql instances describe.

Visão geral da conexão

As etapas abaixo descrevem o processo geral de conexão ao Cloud SQL a partir do GKE usando o contêiner do Cloud SQL Proxy Docker.

  1. Crie dois segredos: um para fornecer as credenciais do MySQL e outro para fornecer as credenciais do Google (a conta de serviço).

    Para ver mais informações sobre segredos, consulte Segredo.

  2. Atualize seu arquivo de configuração do pod com os seguintes itens:

    • Forneça 127.0.0.1:3306 como o endereço do host que seu aplicativo usará para acessar seu banco de dados.
    • Forneça o segredo que você criou anteriormente para permitir que o aplicativo efetue login no banco de dados.
    • Inicie o proxy em seu próprio contêiner (no mesmo pod).

      Aqui está um arquivo de configuração de amostra para o contêiner de proxy:

      - name: cloudsql-proxy
        image: gcr.io/cloudsql-docker/gce-proxy:1.11
        command: ["/cloud_sql_proxy",
                  "-instances=<INSTANCE_CONNECTION_NAME>=tcp:3306",
                  "-credential_file=/secrets/cloudsql/credentials.json"]
        securityContext:
          runAsUser: 2  # non-root user
          allowPrivilegeEscalation: false
        volumeMounts:
          - name: cloudsql-instance-credentials
            mountPath: /secrets/cloudsql
            readOnly: true

  3. Acesse sua implantação usando o arquivo de manifesto do Kubernetes.

Para ver uma implantação de amostra completa com o Cloud SQL Proxy no padrão de arquivo secundário, incluindo o código de amostra, consulte o arquivo de manifesto do Kubernetes Deployment no GitHub.

Precisa de ajuda? Para ajuda na solução de problemas com o proxy, consulte Como solucionar problemas nas conexões do Cloud SQL Proxy ou consulte a página de suporte do Cloud SQL.

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Cloud SQL para MySQL