Resolver problemas

Esta página explica vários cenários de erro, as mensagens de erro para esses cenários e os passos de resolução de problemas para resolver os erros.

Cenários de erros de rede

O intervalo de IPs atribuído está esgotado

O Memorystore for Memcached requer que use uma ligação de acesso privado aos serviços e um intervalo de endereços IP associado a essa ligação. É possível esgotar os endereços IP disponíveis nesse intervalo com instâncias do Memcached e outros recursos. Google Cloud

Se os endereços IP estiverem esgotados, a criação de uma instância devolve a seguinte mensagem de erro:

ERROR: (gcloud.memcache.instances.create) { "code": 9, "message": "Unable to create instance. The allocated private IP address space is exhausted. For information on expanding the allocation, see https://cloud.google.com/vpc/docs/configure-private-services-access#modify-ip-range" }

Pode resolver este problema atribuindo endereços IP adicionais. Para mais informações sobre como o fazer, consulte o artigo Esgotamento do intervalo de endereços IP.

Não tem uma ligação de acesso a serviços privados estabelecida para a sua rede

Se tentar criar uma instância do Memorystore for Memcached sem uma ligação de acesso aos serviços privados estabelecida para a rede do seu projeto, a criação falha com o seguinte erro:

Google private service access is not enabled. Enable private service access and try again

Para criar uma instância com êxito, siga as instruções de configuração do acesso a serviços privados em Estabelecer uma ligação de acesso a serviços privados.

A interligação de redes para o acesso a serviços privados é eliminada

O estabelecimento de uma ligação de acesso privado aos serviços cria uma ligação de intercâmbio de rede denominada servicenetworking-googleapis-com, que aparece na página Intercâmbio de rede VPC do seu projeto.

A eliminação desta interligação de redes pode fazer com que receba os seguintes erros:

  • telnet: Unable to connect to remote host: Connection timed out
  • Unable to create instance. Enable private service access for the authorized network and try again. For information on enabling private service access, see https://cloud.google.com/service-infrastructure/docs/enabling-private-services-access

Para resolver este problema, siga o último passo das instruções do gcloud em Estabelecer uma ligação de acesso a serviços privados.

As regras de firewall bloqueiam os endereços IP da instância

Podem surgir problemas de conetividade se criar regras de firewall que bloqueiem endereços IP do intervalo de IP atribuído associado à sua ligação de acesso a serviços privados.

Certifique-se de que não cria regras de firewall de rede que bloqueiem o intervalo de IPs das suas instâncias do Memcached.

Erros de ligação à sua instância do Memcached a partir de outros recursos do Google Cloud

Erros ao estabelecer ligação à sua instância a partir do ambiente padrão do App Engine ou das funções do Cloud Run

Se não conseguir estabelecer ligação a uma instância do Memcached através do ambiente padrão do App Engine ou das funções do Cloud Run, é possível que não tenha configurado um conetor do Acesso a VPC sem servidor para o seu ambiente.

Para obter instruções sobre como configurar o Acesso a VPC sem servidor para o ambiente padrão do App Engine, consulte o artigo Estabelecer ligação a uma rede VPC.

Para ver instruções sobre como configurar o Acesso a VPC sem servidor para funções do Cloud Run, consulte o artigo Estabelecer ligação a uma rede VPC.

Erros ao estabelecer ligação à sua instância através de um cluster do Google Kubernetes Engine

Não pode estabelecer ligação a uma instância do Memorystore for Memcached a partir de um cluster do GKE sem o modo nativo da VPC/alias de IP ativado no cluster. É mais fácil ativar o alias de IP/nativo de VPC durante a criação do cluster do GKE. Quando criar o cluster, selecione VPC nativa em opções avançadas. Para mais detalhes, consulte o artigo Criar clusters nativos da VPC.

Erros ao estabelecer ligação à sua instância através do ambiente flexível do App Engine ou das VMs do Compute Engine

Se a sua instância tiver problemas de conetividade, siga estes passos de resolução de problemas:

  1. Certifique-se de que a instância do Memcached é aprovisionada na mesma região e rede que o cliente que está a tentar aceder à mesma.

  2. Verifique se o seu projeto não tem regras de firewall de rede que bloqueiem os IPs dos nós da sua instância do Memcached.

    • Para ver os endereços IP dos seus nós, consulte o separador de nós da sua instância do Memcached na Google Cloud consola.
  3. Use o Telnet para aceder a um dos seus nós do memcached e execute alguns comandos simples do Memcached set e get para ver se a instância está a responder ou não.

Cenários de erro da gestão de identidade e de acesso ( IAM)

Restaurar uma conta de serviço eliminada

O Memorystore for Memcached usa as seguintes contas de serviço para gerir as suas instâncias do Memcached:

  • service-project-number@service-networking.iam.gserviceaccount.com
  • service-project-number@cloud-memcache-sa.iam.gserviceaccount.com

A eliminação das associações de políticas para estas contas de serviço impede que possa criar novas instâncias.

Se tentar criar uma instância do Memcached através do gcloud neste cenário, pode receber a seguinte mensagem de erro:

ERROR: (gcloud.memcache.instances.create) { "code": 13, "message": "an internal error has occurred" }

Para restabelecer a associação de políticas para estas contas de serviço, execute um dos seguintes comandos, substituindo variables por valores adequados. Execute o comando associado à conta de serviço eliminada.

gcloud projects add-iam-policy-binding project-id --member='serviceAccount:service-project-number@service-networking.iam.gserviceaccount.com' --role='roles/servicenetworking.serviceAgent'
gcloud projects add-iam-policy-binding project-id --member='serviceAccount:service-project-number@cloud-memcache-sa.iam.gserviceaccount.com' --role='roles/memcache.serviceAgent'

Erros de limite de tempo da operação

Os seguintes cenários de erro resultam numa instância do Memcached que não responde e/ou em tempos limite de operação de instâncias/nós.

Erro de partição de rede

Por vezes, Google Cloud os recursos não conseguem comunicar entre zonas numa região devido a um erro de partição de rede nos servidores do Google Cloud. Isto pode fazer com que a sua instância perca a ligação, o que resulta num erro de tempo limite.

Depois de Google Cloud resolver o erro de partição de rede para a região ou a zona onde a sua instância é aprovisionada, a conetividade deve ser retomada normalmente.

Neste cenário, pode ver uma mensagem de erro de conetividade, como a seguinte:

telnet: Unable to connect to remote host: Connection timed out

Se não conseguir identificar a causa do erro de limite de tempo, contacte o Google Cloud apoio técnico.

Referência de aplicação inadequada aos IPs dos nós

Se o cliente estiver a exceder o tempo limite ao tentar estabelecer ligação a um ou mais nós, um potencial problema é que a sua aplicação pode não estar a especificar o endereço IP adequado dos nós aos quais está a tentar estabelecer ligação. Verifique se a sua aplicação está a apontar para os endereços IP dos nós no seu cluster.

Neste cenário, pode ver uma mensagem de erro de conetividade, como a seguinte:

telnet: Unable to connect to remote host: Connection timed out

Para resolver este problema, procure os endereços IP dos seus nós e certifique-se de que a sua aplicação aponta corretamente para os endereços dos nós.

Cenários de erro adicionais

Intervalos de endereços IP do Compute Engine não suportados

Não pode aceder ao Memorystore for Memcached a partir de VMs do Compute Engine que tenham um endereço IP no intervalo 172.17.0.0/16, porque esse intervalo está reservado para um componente interno.

Distribuição desequilibrada de nós entre zonas numa região

Se uma zona numa Google Cloud região estiver indisponível no momento em que aprovisiona uma instância do Memcached, os nós são criados nas zonas disponíveis. Isto pode levar a uma distribuição desequilibrada de nós do Memcached em várias zonas numa região.

Isto não deve ter um impacto significativo no desempenho da sua aplicação. No entanto, idealmente, os seus nós devem ser distribuídos por todas as zonas numa região para proteger os seus dados de interrupções zonais.

Se não estiver satisfeito com a distribuição de nós entre zonas quando criar uma instância, pode esperar até que essa zona volte a ficar online para criar a sua instância ou pode usar a seguinte estratégia para tentar redistribuir nós entre zonas mais tarde:

Para redistribuir os nós do Memcached entre os nós disponíveis numa zona, aumente a escala da sua instância e, em seguida, reduza a escala para o número de nós pretendido. Se as zonas desejadas voltarem a estar online, o processo de escalabilidade volta a distribuir os nós uniformemente pelas zonas disponíveis. Tenha também em atenção que o dimensionamento provoca uma limpeza da cache dos dados na sua instância do Memcached.