Referência de erros
Nesta página, descrevemos os códigos de erro do Config Sync e as ações recomendadas para lidar com esses erros.
As mensagens de erro do Config Sync consistem em um ID de erro no formato KNV1234
,
em que 1234
é um número exclusivo, seguido por uma descrição do problema e uma
sugestão de como corrigi-lo. K
é herdada das convenções do Kubernetes, as regras com o prefixo N
são específicas de nomos
, V
é específica para erros detectáveis no estado inicial do repositório e do cluster. Os códigos
para erros detectáveis no estado inicial do repositório e do cluster têm
o formato KNV1XXX
. Os códigos de erros que só podem ser detectados durante a execução são
no formato KNV2XXX
.
Tabela de erros do KNV
Código do erro | Descrição | Ação recomendada |
---|---|---|
|
O ID de InternalError mudou para |
N/A |
|
Obsoleto no Config Sync 1.3. |
N/A |
|
Obsoleto no Config Sync 1.3. |
N/A |
|
Ao usar uma estrutura de repositório hierárquica, um diretório que contém uma configuração de namespace não pode conter nenhum subdiretório. Um diretório sem uma configuração de namespace é um diretório de namespace abstrato e tem diretórios herdados dele. Consequentemente, os diretórios de namespace abstratos precisam ter subdiretórios. Um diretório que contém uma configuração de namespace é um diretório de namespace e não pode ser herdado. Por isso, não pode ter subdiretórios. |
Remova a configuração do namespace do diretório pai ou mova o subdiretório para outro lugar. |
|
Um objeto com escopo de cluster não pode declarar a anotação |
Remova |
|
A única configuração válida para a anotação de gerenciamento é
|
Verifique se a anotação de gerenciamento é
Para mais informações, consulte Como gerenciar objetos. |
|
Não foi possível analisar um objeto declarado no repositório. |
Valide o formato YAML. Por exemplo, use o comando
Se |
|
Ao usar um repositório não estruturado, as configurações não podem ser declaradas em um diretório de namespace abstrato. |
Mova a configuração listada na mensagem de erro para um diretório de namespace. Para mais informações, consulte Como usar um repositório não estruturado. |
|
Ao usar uma estrutura de repositório hierárquica, as configurações precisam declarar namespaces que correspondam ao diretório de namespace que os contém ou omitir o campo. |
Atualize o campo de namespace identificado na mensagem de erro. Para mais informações, consulte Estrutura do repositório hierárquico. |
|
As configurações não podem declarar anotações sem suporte começando com |
Verifique se você está usando uma das seguintes anotações compatíveis:
|
|
As configurações não podem ter rótulos com chaves que começam com
|
Atualize os marcadores identificados na mensagem de erro. Por exemplo, se
você tentou declarar um rótulo chamado |
|
Obsoleto no Config Sync 1.3. |
N/A |
|
A configuração se refere a um ClusterSeletor ou NamespaceSeletor que não existe. Antes de poder usar um seletor em uma anotação para uma configuração, o seletor precisa existir. |
Crie qualquer seletor ausente ou, se ele tiver sido removido, remova as configurações que se referem a ele. |
|
Elas usam a sintaxe correta, mas foi encontrado um erro de sintaxe. |
Especifique a configuração usando o esquema de dados adequado: |
|
Obsoleto no Config Sync 1.3.2 | N/A |
|
Ao usar a estrutura hierárquica do repositório, é necessário que haja um config para o ConfigManagement Operator no diretório |
Defina pelo menos uma configuração mínima para o ConfigManagement Operator. Para mais informações, consulte Estrutura do repositório hierárquico. |
|
Obsoleto no Config Sync 1.3. | N/A |
|
Ao usar a estrutura hierárquica do repositório, os namespaces não podem ser declarados diretamente
no diretório |
Crie um subdiretório para as configurações do namespace listadas na mensagem de erro. Para mais informações, consulte Estrutura do repositório hierárquico. |
|
Ao usar uma estrutura de repositório hierárquica, uma configuração de namespace declara
metadata.name , e o valor dela precisa corresponder ao nome do diretório do namespace.
|
Corrija o metadata.name do namespace ou o diretório dele. |
|
Nenhuma CustomResourceDefinition foi definida para o recurso no cluster. |
Criar um CustomResourceDefinition para o recurso referenciado na mensagem de erro. Os tipos de recursos que não são objetos integrados do Kubernetes precisam ter um CustomResourceDefinition. |
|
Quando você usa um repositório hierárquico, não é possível declarar as configurações desse tipo no
diretório |
Remova do diretório |
|
O campo |
Se o formato do repositório for compatível com a versão compatível, atualize o campo |
|
Os nomes de diretório precisam ter menos de 64 caracteres, consistir em caracteres alfanuméricos minúsculos ou "-" e começar e terminar com um caractere alfanumérico. |
Renomeie ou remova o diretório com nome incorreto. |
|
As configurações do mesmo tipo precisam ter nomes exclusivos no mesmo namespace e nos namespaces pais abstratos. |
Renomeie ou remova as configurações referenciadas na mensagem de erro para que todas tenham nomes exclusivos. |
|
Não é possível ter vários recursos de namespace no mesmo diretório. |
Remova as configurações duplicadas para que apenas um recurso de namespace permaneça. |
|
Todas as configurações precisam declarar |
Adicione o campo |
|
O tipo |
Remova a configuração problemática ou converta seu repositório para usar
|
|
Se você estiver usando um repositório hierárquico, só poderá declarar
os tipos |
Verifique se as configurações declaradas no diretório |
|
É proibido declarar o namespace
A partir da versão 1.17.0 do Config Sync, os namespaces
|
Se você declarou o namespace
Se você declarou os namespaces
Se você estava sincronizando com um repositório hierárquico e precisa declarar o namespace do controlador junto com os recursos, considere mudar para um repositório não estruturado para ter mais flexibilidade na estrutura de origem. |
|
O |
Mude
Se |
|
Obsoleto no Config Sync 1.3. | N/A |
|
É proibido declarar um objeto com escopo de namespace fora do
diretório |
Mova as configurações problemáticas para um diretório legal. Para mais informações sobre objetos com escopo de namespace, consulte Objetos com escopo de namespace. |
|
É proibido declarar um objeto com escopo de cluster fora do diretório |
Mova as configurações problemáticas para um diretório legal. Para mais informações sobre objetos com escopo de cluster, consulte Objetos com escopo de cluster. |
|
Obsoleto no Config Sync 1.3. | N/A |
|
Esse tipo de recurso não pode ser declarado em um |
Remova o recurso problemático. Para ler mais sobre |
|
Um valor ilegal para |
Mude |
|
O Config Sync não pode configurar este objeto. |
Remova a configuração problemática do repositório. |
|
Um diretório de namespace abstrato com configurações precisa ter pelo menos um subdiretório de namespace. |
Adicione um diretório de namespace no diretório de namespace abstrato, adicione uma configuração de namespace ao diretório de namespace abstrato ou remova as configurações do diretório de namespace abstrato. |
|
As configurações com |
Remova o campo |
|
Este |
Atualize o |
|
Não é permitido remover uma definição de recurso personalizada (CRD, na sigla em inglês) e deixar os recursos personalizados correspondentes no repositório. |
Remova a CRD e os recursos personalizados. |
|
O CustomResourceDefinition tem um nome inválido. |
Mude o nome para a recomendação na mensagem de erro. |
|
A configuração está usando um grupo e um tipo descontinuados. |
Mude o grupo ou o tipo para a recomendação na mensagem de erro. |
|
Recursos com escopo de cluster não podem declarar |
Remova o campo metadata.namespace do recurso com escopo de cluster. |
|
Os recursos com escopo de namespace precisam declarar |
Adicione o campo ausente ao recurso com escopo de namespace. |
|
As configurações contêm um valor inválido para uma anotação. |
Siga as instruções na mensagem para resolvê-lo. |
|
O valor de |
Atualize o valor de
|
|
Um recurso é declarado em um namespace não gerenciado. |
Remova a anotação |
|
Um recurso tem um rótulo ilegal. |
Remova os marcadores ilegais listados na mensagem de erro. |
|
Um repositório de namespace só pode declarar recursos com escopo de namespace no namespace a que ele se aplica. |
Verifique se todos os repositórios de namespace estão declarando corretamente os recursos com escopo de namespace.
Por exemplo, o repositório do repositório de namespace
Por exemplo, se uma configuração no repositório de namespace Além de garantir que os recursos com escopo de namespace sejam declarados corretamente, verifique se os namespaces estão declarados no repositório raiz. Isso é necessário porque os namespaces têm escopo de cluster. |
|
Um repositório de namespace pode declarar no máximo um recurso do Kptfile. |
Remova todos, exceto um recurso Kptfile. |
|
Ao gerenciar objetos em várias fontes da verdade, podem surgir conflitos quando o mesmo objeto (grupo correspondente, tipo, nome e namespace) é declarado em mais de uma fonte. Por exemplo, quando o mesmo objeto é gerenciado por um RootSync e um RepoSync, o RootSync vence. Se o RootSync se aplicar primeiro, o RepoSync informará um erro de status do KNV1060. Se o RepoSync se aplicar primeiro, o RootSync substituirá o objeto do RepoSync e o RepoSync informará um erro de status do KNV1060 quando detectar a atualização. |
Para resolver o conflito, atualize a configuração para que ela corresponda à outra fonte de informações ou exclua o objeto conflitante de uma das origens.
O comando |
|
Um |
Siga as instruções na mensagem para corrigir os erros de configuração. |
|
O Kptfile não tem um campo de inventário válido. Um Kptfile precisa ter um campo de inventário não vazio com o identificador e o namespace especificados. |
Especifique os valores de |
|
Kptfiles foram encontrados no repositório raiz. Os Kptfiles só são compatíveis com repositórios com escopo de namespace. |
Remova os Kptfiles do repositório raiz. |
|
Não foi possível analisar o arquivo |
Siga as instruções na mensagem de erro. Por exemplo, talvez seja necessário executar
No |
|
CustomResourceDefinition está incorreto. |
Verifique o campo especificado pela mensagem de erro e se o valor está formatado corretamente. |
|
Um objeto de configuração precisa declarar apenas a anotação do seletor de cluster. Esse erro ocorre quando
a anotação legada ( |
Remova uma das anotações do campo |
|
O reconciliador não codifica os campos declarados em um formato compatível com aplicação do lado do servidor (link em inglês). Pode ser causado por um esquema desatualizado. |
Verifique o campo especificado pela mensagem de erro e certifique-se de que ele corresponda ao esquema do tipo de recurso. |
|
O processo de renderização encontrou um problema acionável pelo usuário. |
Se o repositório Git contiver configurações do Kustomize, mas nenhum arquivo
Se o erro for causado por falhas
Se ocorrer um erro |
|
Um reconciliador reconciliou o próprio objeto RootSync ou RepoSync. Um objeto RootSync pode gerenciar outros objetos RootSync e RepoSync. Um objeto RepoSync pode gerenciar outros objetos RepoSync, mas não é possível gerenciar isso por conta própria. |
Remova o objeto RootSync ou RepoSync da fonte de verdade de que o objeto é sincronizado. |
|
Uma chamada de sistema no nível do SO que acessa um recurso do sistema de arquivos falha. |
Esse erro provavelmente é causado por uma configuração YAML inválida ou pelo uso de caracteres especiais. Se você tiver uma configuração YAML inválida, verá uma mensagem de erro semelhante a esta:
Se o nome do arquivo ou caminho tiver caracteres especiais, talvez você veja uma mensagem de erro
semelhante a |
|
Uma solicitação que acessa o servidor da API falha. |
Talvez você esteja enfrentando um erro de descoberta de API. Para saber mais, consulte os erros de descoberta de API. |
|
Uma chamada genérica de sistema no nível do SO falha. | |
|
O Config Sync não pode ler a fonte da verdade. |
Há vários problemas que podem causar esse erro. Para dicas sobre como resolver problemas comuns ao se conectar à fonte da verdade, consulte Resolver problemas de conexão com a fonte da verdade. |
|
O Config Sync está competindo com outro controlador por um recurso. Esses conflitos consomem uma grande quantidade de recursos e podem prejudicar seu desempenho. | Para ver dicas sobre como diagnosticar e resolver conflitos de controles, consulte Resolver problemas de lutas de controles. |
|
Para evitar a exclusão acidental, o Config Sync não permite que você remova todos os namespaces ou recursos com escopo de cluster em uma única confirmação. |
Se o webhook de admissão do Config Sync estiver desativado, reverta a confirmação que exclui todos os recursos.
Se você quiser excluir o conjunto completo de recursos gerenciados, siga estas etapas:
|
|
Um recurso no servidor de API é modificado ou excluído enquanto o Config Sync também tenta modificá-lo. |
Se esse tipo de erro só aparece na inicialização ou com pouca frequência, ignore-os.
Se esses erros não forem temporários (persistirem por vários minutos), talvez isso indique um problema sério, e o |
|
Esse é um erro genérico que indica que o Config Sync não conseguiu sincronizar algumas configurações com o cluster. |
Há vários problemas que podem causar esse erro. Para dicas sobre como resolver problemas comuns de sincronização, consulte Resolver problemas de sincronização. |
|
Esse é um erro genérico que indica um problema com um recurso ou conjunto de recursos. |
A mensagem de erro inclui os recursos específicos que causaram o erro. Consulte estes recursos. |
|
Um recurso específico é necessário para continuar, mas ele não foi encontrado. Por exemplo, o ConfigManagement Operator tentou atualizar um recurso, mas ele foi excluído ao calcular a atualização. |
Crie ou restaure o recurso ausente. |
|
Esse erro informa que mais de uma instância de um APIResource foi encontrada em um contexto em que exatamente um APIResource é permitido. Por exemplo, é preciso que haja apenas um recurso |
O APIResource adicional foi removido. |
|
Um reconciliador de namespace não tem permissões suficientes para gerenciar recursos. |
Verifique se o reconciliador tem permissões suficientes. |
|
Esse aviso ocorre quando a configuração do webhook do Config Sync é modificada ilegalmente. As configurações de webhook ilegais são ignoradas. |
Remover o webhook modificado ilegalmente. |
|
O processo de renderização encontrou um problema interno. Por exemplo, o Config Sync não consegue acessar o sistema de arquivos. |
Esse erro pode indicar que o pod não está íntegro. É possível reiniciar os pods do reconciliador executando os seguintes comandos: # restart a root reconciler kubectl delete pod -n config-management-system -l configsync.gke.io/reconciler=root-reconciler # restart a namespace reconciler kubectl delete pod -n config-management-system -l configsync.gke.io/reconciler=ns-reconciler-NAMESPACE |
|
Esse erro representa um problema temporário que deve ser resolvido automaticamente mais tarde. Por exemplo, se o estado de renderização não corresponder à configuração de origem, esse erro poderá aparecer. |
O erro será resolvido automaticamente. |
|
Há um problema com a própria ferramenta de linha de comando |
Envie um relatório do bug com o comando exato que você executou e a mensagem que recebeu. |
|
Você encontrou um erro sem uma mensagem de erro documentada. |
Ainda não escrevemos documentação específica para o erro encontrado. |
Mensagens de erro sem um código KNV
Os erros relatados pelos reconciliadores do Config Sync têm o código de erro KNV, mas os erros informados de outros componentes não têm. Por exemplo, o erro de permissão negada vem do controlador de frota, que é uma camada sobre o Config Sync.
A tabela a seguir lista alguns erros comuns sem o prefixo KNV.
Mensagem de erro | Ação recomendada |
---|---|
|
Não é possível criar exportadores
Quando um componente no Open Telemetry Collector não consegue acessar a
conta de serviço padrão com o mesmo namespace, é possível que o pod Esse problema geralmente acontece quando a Identidade da carga de trabalho está ativada em um cluster. Para resolver esse problema, siga as instruções em Como monitorar o Config Sync para conceder permissão de gravação de métricas à conta de serviço padrão.
Se o erro persistir após a configuração do IAM, reinicie o
pod |
server certificate verification failed. CAfile:/etc/ca-cert/cert CRLfile: none
|
Falha na verificação do certificado do servidor
Se o contêiner
Essa mensagem indica que o servidor Git está configurado com certificados de uma autoridade de certificação (CA, na sigla em inglês) personalizada. No entanto,
a AC personalizada não está configurada corretamente, o que resulta em falha
do contêiner
Para resolver esse problema, primeiro você pode verificar se o campo
Em seguida, se o campo tiver sido configurado e o objeto Secret existir, verifique se ele contém os certificados completos. Veja um exemplo de como listar os certificados do servidor: echo -n | openssl s_client -showcerts -connect HOST:PORT -servername SERVER_NAME 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' É possível solicitar que a equipe de administração de rede receba os certificados de CA para você. |
Error message: "MESSAGE": "Unable to retrieve pull secret, the image pull may not succeed."
|
Não foi possível recuperar o secret de pull, a imagem pode não ser bem-sucedidaSe você estiver usando um registro particular com o GKE no VMware, a instalação ou o upgrade do Config Sync pode ficar travado. Você verá um erro semelhante a esta mensagem. Para resolver esse problema, siga as etapas em Atualizar o Config Sync usando um registro particular antes de instalar ou fazer upgrade do Config Sync. |
Permission 'gkehub.features.create' denied on 'projects/PROJECT_ID/locations/global/features/configmanagement'
|
Permissão negadaSe você receber um erro semelhante ao exemplo ao tentar configurar o Config Sync, talvez não tenha o papel Administrador do GKE Hub. Para garantir que você tenha as permissões necessárias, confira se você concedeu os papéis do IAM necessários. |
A seguir
- Confira os problemas conhecidos.
- Leia a introdução à solução de problemas no Config Sync.
- Se precisar de mais ajuda, entre em contato com o Cloud Customer Care.