Resolver problemas do Distributed Cloud conectado

O Google monitora e faz a manutenção remota do hardware conectado do Google Distributed Cloud. Para isso, os engenheiros do Google têm acesso Secure Shell (SSH) ao hardware conectado do Distributed Cloud. Se o Google detectar um problema, um engenheiro vai entrar em contato com você para resolver a questão. Se você tiver identificado um problema, entre em contato com o Suporte do Google imediatamente para diagnosticar e resolver a questão.

Upgrades de software do Distributed Cloud conectado

Nesta seção, descrevemos como usar o Metrics Explorer para verificar se um cluster conectado do Distributed Cloud está passando por uma atualização de software.

Este procedimento usa as seguintes métricas do Monitoring:

  • Versão atual do cluster (/edge_cluster/current_cluster_version): indica a versão atual do software conectado do Distributed Cloud em execução no cluster.

  • Versão do cluster de destino (/edge_cluster/target_cluster_version): indica a versão de destino do Distributed Cloud Connected para o qual o cluster está fazendo upgrade.

Para concluir as etapas desta seção, você precisa atender aos seguintes pré-requisitos:

  1. Acesso ao console Google Cloud e ao projeto conectado do Distributed Cloud Google Cloud .
  2. O papel do IAM Leitor do Monitoring, que permite visualizar as métricas do Monitoring.
  3. (Opcional) O valor machine_id da máquina conectada do Distributed Cloud de destino para filtrar os resultados retornados.

Use o Metrics Explorer para verificar as versões de software atuais e de destino do cluster

  1. Acesse o Metrics Explorer:

    1. No console do Google Cloud , acesse a seção Monitoring.

    2. Na árvore de navegação à esquerda, clique em Metrics Explorer.

  2. Selecione o tipo de recurso de destino:

    1. Na página do Metrics Explorer, navegue até a página Configuração.

    2. Clique em Selecionar uma métrica.

    3. Use a barra de pesquisa para procurar o tipo de recurso Cluster. Você também pode usar o identificador de recurso completo edgecontainer.googleapis.com/Cluster.

    4. Nos resultados retornados, clique no tipo de recurso Cluster.

  3. Confira a versão atual do software do cluster:

    1. Na seção Métrica, procure o valor current_cluster_version.

    2. Selecione a métrica Tempo de atividade da máquina. O caminho completo é edgecontainer.googleapis.com/edge_cluster/current_cluster_version.

    3. (Opcional) Filtre pelo valor de machine_id desejado usando a seção Filtro.

  4. Consiga a versão de software de destino do cluster:

    1. Clique em Adicionar consulta.

    2. Na seção Métrica, procure o valor target_cluster_version.

    3. Selecione a métrica Versão do cluster de destino. O caminho completo é edgecontainer.googleapis.com/edge_cluster/target_cluster_version.

    4. (Opcional) Filtre pelo valor de machine_id desejado usando a seção Filtro.

  5. Verifique o status do upgrade de software do cluster no gráfico que aparece.

    • Se as linhas Versão atual do cluster e Versão de destino do cluster indicarem valores diferentes, o cluster estará passando por um upgrade de software.

    • Se as linhas Versão atual do cluster e Versão de destino do cluster indicarem o mesmo valor, o cluster não estará passando por um upgrade de software.

  6. Verifique o resultado da etapa anterior usando o seguinte comando:

    gcloud edge-cloud container clusters describe CLUSTER_ID --location=REGION
    

    Substitua:

    • CLUSTER_ID: o ID do cluster de destino.
    • REGION: a região do Google Cloud em que o cluster foi criado.

    Na saída do comando, observe os valores dos seguintes campos:

    • Se o valor do campo status for UPDATING, o cluster estará passando por uma atualização de software.
    • Se os valores dos campos clusterVersion e targetVersion forem diferentes, compare-os com os valores retornados pelo Metrics Explorer.

Entenda os resultados

A tabela a seguir explica os resultados retornados pelo Metrics Explorer e pelo comando gcloud.

Estado do cluster Diagnóstico Resolução
Saudável
Os valores currentVersion e targetVersion correspondem
O valor de "status" é RUNNING
O cluster está executando a versão de destino do software do Distributed Cloud conectado. Nenhuma.
Fazer upgrade
O valor de currentVersion é menor que targetVersion
O valor de "status" é UPDATING
O cluster está fazendo upgrade para a versão de destino do software conectado do Distributed Cloud. Monitore o cluster no Metrics Explorer até que os valores da versão atual e de destino correspondam.
Travado
O valor de currentVersion é menor que targetVersion indefinidamente
O valor de "status" é UPDATING indefinidamente
O upgrade para a versão de destino do software conectado do Distributed Cloud falhou em pelo menos um nó do cluster. Verifique a conectividade da máquina e os registros do sistema. Entre em contato com o Google para receber ajuda.
Reversão
O valor de currentVersion é maior que targetVersion
O valor de "status" é UPDATING
O luster está revertendo para uma versão anterior do software conectado do Distributed Cloud. Entre em contato com o Google para identificar o motivo do rollback.

Se o upgrade de software no cluster falhar ou se o cluster for revertido para uma versão anterior do software, verifique o seguinte:

  • Integridade do nó. Verifique se cada máquina física conectada ao Distributed Cloud tem conectividade de rede e tempo de atividade de relatório, conforme descrito na próxima seção.
  • Janelas de manutenção. Verifique se o upgrade de software foi pausado devido a uma janela de exclusão de manutenção.
  • Registros do sistema. Examine os logs do sistema para identificar possíveis motivos da falha no upgrade de software, como tempos limite de remoção de pods.

Se as etapas de resolução listadas na tabela não resolverem o problema, entre em contato com o Suporte do Google com o valor machine_id da máquina afetada e o carimbo de data/hora da interrupção do serviço.

Reinicializações de máquinas do Distributed Cloud conectado

Nesta seção, descrevemos como usar o Metrics Explorer para verificar se uma máquina física conectada ao Distributed Cloud foi reiniciada e determinar o motivo da reinicialização. O monitoramento das reinicializações ajuda a determinar se elas faziam parte de uma manutenção planejada ou foram resultado de uma falha de hardware ou interrupção de energia.

Este procedimento usa as seguintes métricas do Monitoring:

  • Tempo de atividade da máquina (/machine/uptime): indica o tempo, em segundos, desde a última reinicialização.

  • Reinicializações da máquina (/machine/restart_count): indica o número total de reinicializações da máquina de destino desde a implantação.

Para concluir as etapas desta seção, você precisa atender aos seguintes pré-requisitos:

  1. Acesso ao console Google Cloud e ao projeto conectado do Distributed Cloud Google Cloud .
  2. O papel do IAM Leitor do Monitoring, que permite visualizar as métricas do Monitoring.
  3. (Opcional) O valor machine_id da máquina conectada do Distributed Cloud de destino para filtrar os resultados retornados.

Usar o Metrics Explorer para verificar o tempo de atividade da máquina e a contagem de reinicializações

  1. Acesse o Metrics Explorer:

    1. No console do Google Cloud , acesse a seção Monitoring.

    2. Na árvore de navegação à esquerda, clique em Metrics Explorer.

  2. Selecione o tipo de recurso de destino:

    1. Na página do Metrics Explorer, navegue até a página Configuração.

    2. Clique em Selecionar uma métrica.

    3. Use a barra de pesquisa para procurar o tipo de recurso Máquina. Você também pode usar o identificador de recurso completo edgecontainer.googleapis.com/Machine.

    4. Nos resultados retornados, clique no tipo de recurso Máquina.

  3. Verifique o tempo de atividade da máquina:

    1. Na seção Métrica, procure o valor uptime.

    2. Selecione a métrica Tempo de atividade da máquina. O caminho completo é edgecontainer.googleapis.com/machine/uptime.

    3. (Opcional) Filtre pelo valor de machine_id desejado usando a seção Filtro.

    4. No gráfico de tempo que aparece, verifique se o gráfico de tempo de atividade está aumentando continuamente. Se, a qualquer momento, o valor do tempo de atividade cair para zero e reiniciar, isso indica que a máquina foi reiniciada.

  4. Verifique a contagem de reinicializações da máquina:

    1. Na seção Métrica, procure o valor restart_count.

    2. Selecione a métrica Reinicializações da máquina. O caminho completo é edgecontainer.googleapis.com/machine/restart_count.

    3. (Opcional) Filtre pelo valor de machine_id desejado usando a seção Filtro.

    4. No gráfico de tempo que aparece, verifique se a linha permanece em 0, o que indica que não houve reinicializações. Se em algum momento a linha aumentar para 1, isso indica que a máquina foi reiniciada. Anote o carimbo de data/hora exato da reinicialização para mais solução de problemas.

    5. (Opcional) Para ver eventos individuais em vez de um gráfico, navegue até a seção Agregação da página, defina o campo Período de alinhamento como 1 minute e o campo Alinhador por série temporal como Delta.

Entenda os resultados

A tabela a seguir explica os resultados retornados pelo Metrics Explorer.

Estado da máquina Diagnóstico Resolução
Estável
A métrica "Tempo de atividade da máquina" aumenta constantemente
O delta da métrica "Reinicializações da máquina" é 0
A máquina não foi reiniciada. Nenhuma.
Reinicialização limpa
A métrica "Tempo de atividade da máquina" cai para 0
A métrica "Reinicializações da máquina" aumenta para 1
A máquina foi reiniciada e reconectada ao Google Cloud. Verifique os registros do sistema para determinar o motivo da reinicialização.
Falha de energia
O gráfico da métrica "Tempo de atividade da máquina" tem uma interrupção sem dados
A métrica "Reinicializações da máquina" não mudou durante a interrupção no tempo de atividade da máquina
A máquina perdeu energia ou conectividade de rede antes de poder ser reiniciada. Verifique os cabos de alimentação e de rede, a configuração da rede local e o status do indicador LED.
Intermitente
O valor da métrica "Máquina conectada" alterna entre 0 e 1
O valor da métrica "Conectividade de rede" alterna entre 0 e 1
Conexão de rede instável, perda de pacotes ou latência excessiva. Verifique se há congestionamento e hardware com falha na sua rede local.

Se as etapas de resolução listadas na tabela não resolverem o problema, entre em contato com o Suporte do Google com o valor machine_id da máquina afetada e o carimbo de data/hora da interrupção do serviço.

Conectividade de máquinas do Distributed Cloud conectado

Nesta seção, descrevemos como verificar a conectividade da internet e do Google Cloud para suas máquinas conectadas do Distributed Cloud usando o recurso Metrics Explorer do Cloud Monitoring.

Este procedimento usa as seguintes métricas do Monitoring:

  • Máquina conectada (/machine/connected): indica se a máquina está conectada a Google Cloud.

  • Conectividade de rede (/machine/network/connectivity): indica se a interface de rede principal da máquina tem conectividade com a Internet.

Para concluir as etapas desta seção, você precisa atender aos seguintes pré-requisitos:

  1. Acesso ao console Google Cloud e ao projeto conectado do Distributed Cloud Google Cloud .
  2. O papel do IAM Leitor do Monitoring, que permite visualizar as métricas do Monitoring.
  3. (Opcional) O valor machine_id da máquina de destino do Distributed Cloud Connected para filtrar os resultados retornados.

Usar o Metrics Explorer para verificar a conectividade da máquina

  1. Acesse o Metrics Explorer:

    1. No console do Google Cloud , acesse a seção Monitoring.

    2. Na árvore de navegação à esquerda, clique em Metrics Explorer.

  2. Selecione o tipo de recurso de destino:

    1. Na página do Metrics Explorer, navegue até a página Consultas.

    2. Use a barra de pesquisa para procurar o tipo de recurso Máquina. Você também pode usar o identificador de recurso completo edgecontainer.googleapis.com/Machine.

    3. Nos resultados retornados, clique no tipo de recurso Máquina.

  3. Verifique a conexão da máquina com Google Cloud:

    1. Na seção Métrica, procure o valor connected.

    2. Selecione a métrica Máquina conectada. O caminho completo é edgecontainer.googleapis.com/machine/connected.

    3. (Opcional) Filtre pelo valor de machine_id desejado usando a seção Filtro.

    4. No gráfico de tempo que aparece, verifique se a linha Íntegra permanece em 100% de forma contínua. Se, em algum momento, esse valor for 0% ou Não íntegro, a máquina terá perdido a conectividade com Google Cloud no horário indicado.

  4. Verifique a conectividade de Internet da máquina:

    1. Na seção Métrica, procure o valor connectivity.

    2. Selecione a métrica Conectividade de rede. O caminho completo é edgecontainer.googleapis.com/machine/network/connectivity.

    3. (Opcional) Filtre pelo valor de machine_id desejado usando a seção Filtro.

    4. No gráfico de tempo que aparece, verifique se a linha Íntegra permanece em 100% de forma contínua. Se em algum momento esse valor for 0% Não íntegro, a máquina terá perdido a conectividade com a Internet no horário indicado.

Entenda os resultados

A tabela a seguir explica os resultados retornados pelo Metrics Explorer.

Estado da máquina Diagnóstico Resolução
Em bom estado
O valor da métrica "Máquina conectada" é 1
O valor da métrica "Conectividade de rede" é 1
Operação normal. Nenhuma.
Desconectado
O valor da métrica "Máquina conectada" é 0
O valor da métrica "Conectividade de rede" é 1
A máquina tem conectividade com a Internet, mas não consegue se conectar a Google Cloud. Verifique suas regras de firewall para serviços do Google e endpoints de API. Verifique se os agentes conectados do Distributed Cloud estão em execução na máquina.
Isolado
O valor da métrica "Máquina conectada" é 0
O valor da métrica "Conectividade de rede" é 0
A máquina não tem conectividade com a Internet. Verifique os cabos de alimentação e de rede, a configuração da rede local e o status do indicador LED. Verifique a configuração de VLAN e roteamento.
Intermitente
O valor da métrica "Máquina conectada" alterna entre 0 e 1
O valor da métrica "Conectividade de rede" alterna entre 0 e 1
Conexão de rede instável, perda de pacotes ou latência excessiva. Verifique se há congestionamento e hardware com falha na sua rede local.

Se você notar valores constantes de 0 para qualquer uma das métricas, siga as etapas de solução de problemas descritas na tabela para resolver o problema. Se o problema persistir, entre em contato com o Suporte do Google com o valor machine_id da máquina afetada e o carimbo de data/hora da interrupção.

Máquinas virtuais travadas no estado Pending

Uma carga de trabalho de máquina virtual pode ficar presa no estado Pending e não ser programada em um nó se uma das seguintes situações ocorrer:

  • O Distributed Cloud Connected não pode alocar os recursos solicitados, como tempo de CPU, memória ou espaço em disco, para a máquina virtual.
  • Há uma falha na configuração da máquina virtual.
  • Há uma falha no armazenamento da máquina virtual.
  • O nó de destino está corrompido.

Para resolver esse problema, faça o seguinte:

  1. Consiga as credenciais do cluster conforme descrito em Receber credenciais de um cluster.

  2. Receba informações sobre a máquina virtual afetada:

    kubectl describe virtualmachine VM_NAME -n NAMESPACE
    

    Substitua:

    • VM_NAME: o nome da máquina virtual de destino.
    • NAMESPACE: o namespace da máquina virtual de destino.

    O comando retorna uma saída semelhante a esta:

    Status:
    ...
    State:                    Pending
    ...
    Events:
    Type     Reason                  Age   From                       Message
    ----     ------                  ----  ----                       -------
    Normal   SuccessfulCreate        15m   virtualmachine-controller  Created virtual machine my-stuck-vm
    Warning  DiskProvisioningFailed  14m   virtualmachine-controller  Failed to provision disk: DataVolume my-stuck-vm-data-disk not ready
    Warning  PVCNotBound             14m   virtualmachine-controller  PersistentVolumeClaim my-stuck-vm-data-disk is in phase Pending
    Warning  VMINotCreated           10m   virtualmachine-controller  VirtualMachineInstance cannot be created: dependencies not ready
    

    A saída do comando contém mensagens que podem indicar restrições de recursos, falhas de programação, falhas de armazenamento e outros problemas.

  3. Examine a saída para determinar as causas da falha de programação, conforme explicado nas próximas seções.

Recursos insuficientes

Talvez você veja uma mensagem indicando recursos insuficientes, como CPU, memória ou espaço em disco. Exemplo:

5/8 nodes are available: 3 Insufficient memory, 3 Insufficient CPU.

Para corrigir esse problema, verifique os recursos alocados às máquinas virtuais afetadas e outras cargas de trabalho programadas no nó. Em seguida, faça o seguinte, dependendo das suas necessidades comerciais:

  • Reduza a escala vertical de outras cargas de trabalho programadas no nó.
  • Reduza a quantidade de recursos alocados para a máquina virtual afetada.
  • Adicione mais máquinas ao cluster afetado.

Nós com taint

Talvez apareça uma mensagem indicando que o nó de destino está corrompido. Exemplo:

5/8 nodes are available: 3 node(s) had taint {<taint-key>:<taint-value>}, that the pod didn't tolerate.

Para corrigir esse problema, faça o seguinte:

  1. Use o comando a seguir para verificar se há taints no nó:

    kubectl get nodes -o custom-columns=NAME:.metadata.name,TAINTS:.spec.taints
    

    O comando retorna uma saída semelhante a esta:

    NAME                           TAINTS
    node-name-1   [map[effect:PreferNoSchedule key:node-role.kubernetes.io/master] map[effect:PreferNoSchedule key:node-role.kubernetes.io/control-plane]]
    node-name-2   <none>
    
  2. Escolha uma destas opções:

    • Para taints inesperados, remova-os conforme descrito em Taints e tolerâncias.
    • Para taints esperados, adicione tolerâncias correspondentes à configuração da máquina virtual, conforme descrito em Taints e tolerâncias.

Falhas de armazenamento

Talvez apareça uma mensagem indicando uma falha no armazenamento da máquina virtual. Exemplo:

5/8 nodes are available: 3 node(s) had volume node affinity conflict, 3 node(s) had unbound immediate PersistentVolumeClaims.

Essa mensagem pode indicar que o volume permanente correspondente não foi montado no nó de destino.

Para corrigir esse problema, faça o seguinte:

  1. Use o comando a seguir para conferir o status das solicitações de volume permanente (PVCs, na sigla em inglês) no namespace da máquina virtual afetada:

    kubectl get pvc -n NAMESPACE
    

    Substitua NAMESPACE pelo nome do namespace de destino.

    O comando retorna uma saída semelhante a esta:

    NAME                                               STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS            AGE
    windows-robin-disk-0                               Bound     pvc-b1a1d264-84bf-4e58-857d-f37f629d5082   25Gi       RWX            robin-block-immediate   30h
    windows-robin-disk-1                               Bound     pvc-0130b9a8-7fed-4df0-8226-d79273792a16   25Gi       RWX            robin-block-immediate   30h
    windows-robin-vm-0-restored-windows-robin-disk-0   Pending                                                                        gce-pd-gkebackup-in     26m
    
  2. Verifique se o PVC correspondente tem o status Bound. Se o status for Pending, o subsistema de armazenamento não provisionou o volume. Nesses casos, é preciso resolver problemas na configuração do subsistema de armazenamento e garantir que o StorageClass adequado esteja disponível.