Solução de problemas

Nesta página, descrevemos alguns erros comuns que você pode encontrar ao usar o Config Connector, com instruções de solução de problemas.

Mensagens de erro comuns

Nenhuma correspondência para o tipo Foo

Quando esse erro é gerado, o cluster do Kubernetes não tem o CRD para o tipo de recurso "Foo" instalado.

Primeiro, verifique se o tipo está em Recursos de conector de configuração.

Se o tipo estiver listado, o problema pode estar desatualizado ou em uma instalação inválida do Config Connector. Os upgrades com o complemento do GKE devem acontecer automaticamente. Para upgrades sobre instalações manuais, consulte Como instalar em outras distribuições do Kubernetes.

Nenhum status foi exibido para os recursos

Se os recursos aplicados não tiverem um campo status, isso provavelmente ocorre porque os pods que fazem parte do Config Connector não estão funcionando corretamente.

Para solucionar problemas, inspecione o namespace cnrm-system em busca de pods não íntegros:

kubectl get pods -n cnrm-system --field-selector status.phase!=Running

spec.labels não estão aplicados aos recursos subjacentes do Google Cloud

O Config Connector propaga os rótulos encontrados em metadata.labels para as APIs subjacentes do Google Cloud. Você não deve especificar rótulos no spec do recurso e todos os rótulos especificados em spec.labels são ignorados.

Para mais informações, consulte metadados de objetos.

Perguntas frequentes

Quando a versão XX do Config Connector estará disponível como um complemento do GKE?

A versão do complemento Config Connector está vinculada à versão do GKE, com até 10 semanas de atraso em relação à versão mais recente (variável por canal e versão no canal).

Para ter mais controle sobre a versão, consulte Mudar do complemento para uma instalação manual.

Métrica

As métricas são expostas para captura pelo Prometheus.

Logging

Todos os pods que fazem parte do Config Connector são registrados no formato JSON.

Os registros do pod cnrm-controller-manager ou Pods são úteis para depurar problemas com a reconciliação de recursos específicos.

A filtragem dos campos a seguir é útil para examinar os registros:

  • logger: contém o tipo do recurso. Por exemplo, os recursos PubSubTopic têm logger de pubsubtopic-controller.
  • resource.namespace: contém o namespace do recurso.
  • resource.name: contém o nome do recurso.

Mensagens de registro para um recurso específico

Se estiver usando o GKE, você poderá consultar registros do recurso específico com a seguinte consulta:

# Filter to include only logs coming from the cnrm-controller-manager Pods
resource.type="k8s_container"
resource.labels.container_name="manager"
resource.labels.namespace_name="cnrm-system"
labels.k8s-pod/cnrm_cloud_google_com/component="cnrm-controller-manager"

# Filter to include only logs coming from a particular GKE cluster
resource.labels.cluster_name="GKE_CLUSTER_NAME"
resource.labels.location="GKE_CLUSTER_LOCATION"

# Filter to include only logs for a particular Config Connector resource
jsonPayload.logger="RESOURCE_KIND-controller"
jsonPayload.resource.namespace="RESOURCE_NAMESPACE"
jsonPayload.resource.name="RESOURCE_NAME"

Substitua:

  • GKE_CLUSTER_NAME com o nome do cluster do GKE que executa o Config Connector
  • GKE_CLUSTER_LOCATION pelo local do cluster do GKE que executa o Config Connector. Por exemplo, us-central1.
  • RESOURCE_KIND com o tipo de recurso em minúsculas. Por exemplo, pubsubtopic.
  • RESOURCE_NAMESPACE pelo namespace do recurso.
  • RESOURCE_NAME pelo nome do recurso.

Mais ajuda

Para receber mais ajuda, registre um problema no GitHub ou entre em contato com o suporte do Google Cloud.

Ao enviar tíquetes, inclua o resultado do script diagnóstico de clusters.

Para sistemas operacionais baseados em Unix, o script pode ser executado com o seguinte comando:

source <(curl -s
  https://raw.githubusercontent.com/GoogleCloudPlatform/k8s-config-connector/master/scripts/cluster-diagnostics.sh)