TLDR: Os dois erros acontecem antes mesmo de o container iniciar, então não há logs de aplicação para consultar — apenas eventos do Kubernetes e descrições do pod. CreateContainerConfigError significa que o Kubernetes não conseguiu montar a configuração do container (geralmente um ConfigMap ou Secret ausente). CreateContainerError significa que a configuração estava correta, mas o container runtime (containerd, Docker) falhou ao criar o container de fato (imagem inválida, limitações de recursos, volume mounts incorretos ou um problema no runtime). Para corrigir, crie o ConfigMap/Secret ausente, verifique a imagem e o entrypoint e compare os recursos solicitados com o que está disponível.
As mensagens de erro CreateContainerConfigError e CreateContainerError têm um papel fundamental no monitoramento e na resolução de problemas. Esses erros trazem informações valiosas sobre problemas de configuração de containers e ajudam a garantir um deployment tranquilo. Então, vamos ver o que CreateContainerConfigError e CreateContainerError significam, por que ocorrem no Kubernetes e como resolvê-los. A principal diferença entre os dois é o momento em que acontecem durante o ciclo de vida do deployment do Pod.
CreateContainerConfigError significa que o Kubernetes não consegue montar os dados de configuração necessários, como variáveis ou arquivos de configuração ausentes, antes de iniciar o container. CreateContainerError significa que a configuração está pronta, mas o container runtime engine subjacente, como containerd ou Docker, falhou ao criar fisicamente o container no nó host. Como os dois erros ocorrem antes de o container iniciar, nenhum log de aplicação é gerado dentro do container em nenhum dos casos.
Aqui estão alguns dos principais erros do Kubernetes, com dicas rápidas de como diagnosticá-los.
- Kubernetes CrashLoopBackoff: An Ultimate Guide
- The Ultimate Guide: Kubernetes CreateContainerConfigError and CreateContainerError
- How to fix OOMKilled in Kubernetes
Neste artigo:
O que é CreateContainerConfigError?
CreateContainerConfigError é um erro que ocorre durante a criação do container porque a configuração está incorreta ou falta algo na configuração do container do Pod. Como resultado, o Kubernetes não consegue gerar a configuração necessária para o container.
Fluxograma do CreateContainerConfigError: o Kubernetes verifica a configuração do container do pod; se estiver correta, ele gera a configuração do container e o container é criado com sucesso; se não estiver correta, o Kubernetes gera um CreateContainerConfigError

Ao iniciar um novo container, o Kubernetes utiliza o método generateContainerConfig para ler os dados de configuração do container ou os metadados do pod. Isso inclui comandos de inicialização, referências a ConfigMaps e Secrets, e definições de recursos de armazenamento. Em condições normais, o Kubernetes localiza esses recursos definidos na configuração e os conecta ao container. Se o Kubernetes não conseguir encontrá-los, ele dispara um evento CreateContainerConfigError.
Causas comuns do CreateContainerConfigError no Kubernetes
O CreateContainerConfigError costuma ocorrer quando o Kubernetes não encontra recursos essenciais para a configuração de um container, normalmente ConfigMaps ou secrets.
ConfigMaps ausentes
Um ConfigMap é um objeto de API usado para armazenar dados de configuração que podem ser acessados por containers em execução dentro de pods. Ele oferece uma forma de desacoplar detalhes de configuração das imagens de container, permitindo mais flexibilidade e um gerenciamento mais simples das configurações.
Vamos ver como definir um ConfigMap e depois referenciá-lo na configuração de um Pod.
apiVersion: v1kind: ConfigMapmetadata: name: my-configmapdata: config.json: | { "key": "value" }Configuração do Pod referenciando o ConfigMap:
apiVersion: v1kind: Podmetadata: name: my-podspec: containers: - name: my-container image: <image-name> volumeMounts: - name: config-volume mountPath: /etc/config volumes: - name: config-volume configMap: name: my-configmapAo criar um Pod, você precisa referenciar o ConfigMap na configuração do Pod. Se esse ConfigMap existir, o Pod consegue acessá-lo. Se não, você vai se deparar com o CreateContainerConfigError.
Secrets ausentes
Secrets no Kubernetes são uma forma de armazenar com segurança informações sensíveis usadas pelas aplicações em execução em um cluster.
Agora, vamos considerar um exemplo em que um Pod é configurado para usar um Secret para armazenar informações sensíveis.
apiVersion: v1kind: Secretmetadata: name: my-secrettype: Opaquedata: password: cGFzc3dvcmQ= # Base64 encoded value of 'password'Configuração do Pod referenciando o Secret:
apiVersion: v1kind: Podmetadata: name: my-podspec: containers: - name: my-container image: <image-name> env: - name: DATABASE_PASSWORD valueFrom: secretKeyRef: name: my-secret key: passwordO mesmo erro aparece se você configurar um container para usar secrets que não existem.
Portanto, certifique-se de criar os ConfigMaps e secrets antes de iniciar o pod e de referenciá-los na configuração do Pod.
Diagnosticando o CreateContainerConfigError
Para diagnosticar o CreateContainerConfigError, comece analisando os logs e eventos relevantes para confirmar que se trata de um erro causado por uma configuração incorreta ou por algum recurso ausente.
Você pode seguir estes passos para diagnosticar o erro:
- Visualize o Pod e os logs: Use o comando kubectl logs para verificar os logs do Pod afetado. Procure por mensagens de log indicando um CreateContainerConfigError.
~ kubectl get pods NAME READY STATUS RESTARTS AGE my-pod 0/2 CreateContainerConfigError 1 (10s ago) 28s- Verifique os eventos com kubectl: Execute o comando kubectl get events para identificar eventos relacionados ao CreateContainerConfigError. Procure por eventos que mencionem especificamente esse erro.
~ kubectl get events- Inspecione os Pods em detalhes: Use o comando kubectl describe pod pod-name para inspecionar a configuração do Pod. Aqui você consegue identificar recursos ausentes ou mal configurados.
~ kubectl describe pod my-pod Warning Failed 56s (x6 over 1m45s) kubelet Error: configmap "my-configmap" not found- Verifique permissões e configurações de namespace: Se todos os recursos estiverem devidamente configurados e você ainda encontrar o CreateContainerConfigError, verifique as permissões e as configurações de namespace. Garanta que os recursos estejam acessíveis ao pod e no mesmo namespace.
Corrigindo o CreateContainerConfigError
Para resolver o CreateContainerConfigError, siga estas boas práticas:
- Crie os ConfigMaps e Secrets ausentes: Se um ConfigMap ou Secret referenciado estiver ausente, crie-o usando o comando kubectl create apropriado. Garanta que o recurso seja criado no mesmo namespace do pod.
~ kubectl create configmap my-configmap kubectl create secret generic my-secretConfigure as permissões corretamente: Verifique se as permissões dos recursos estão configuradas de forma adequada, permitindo que o pod os acesse. Ajuste as permissões se necessário.
Revise a configuração dos recursos: Revise a configuração do pod e garanta que todas as referências a ConfigMaps e Secrets estejam corretas e com a grafia exata. Evite erros de digitação que podem fazer o pod procurar recursos no lugar errado.
O que é CreateContainerError?
CreateContainerError é um erro que ocorre quando o Kubernetes falha ao criar um container dentro de um pod. Ele indica falha no processo de conteinerização, ou seja, o problema está relacionado à criação do container em si.
Diagrama de sequência do erro de criação de container no Kubernetes: o Client solicita a criação do container à API do Kubernetes, que pede ao Container Runtime para inicializar o container; o Container Runtime falha ao criar o container e a API do Kubernetes retorna um CreateContainerError ao Client.

Causas comuns do CreateContainerError no Kubernetes
Os problemas a seguir costumam ser os responsáveis por eventos de CreateContainerError:
Problemas de imagem: Uma das causas mais comuns é um problema com a imagem do container. Pode ser uma imagem inválida ou inexistente, ou a falta de um entrypoint padrão sem que um entrypoint manual tenha sido especificado na configuração da aplicação.
Limitações de recursos: Recursos insuficientes, como CPU ou memória, podem levar a um CreateContainerError. Se os recursos solicitados excederem a capacidade disponível, o processo de criação do container falha.
Volume mounts incorretos: Se os volume mounts do container estiverem mal configurados ou referenciarem recursos de armazenamento inexistentes, o processo de criação do container pode falhar. Isso pode acontecer se os volumes de armazenamento especificados ou os persistent volume claims (PVCs) não existirem ou não estiverem acessíveis.
Problemas no container runtime: Os container runtimes são responsáveis por gerenciar e executar containers dentro de um cluster Kubernetes. Se o container runtime tiver bugs ou não contar com recursos suficientes para operar normalmente, isso pode resultar em comportamentos inesperados e erros como o CreateContainerError.
Diagnosticando o CreateContainerError
Os passos de diagnóstico são bem parecidos com os do CreateContainerConfigError; vamos ver:
Verifique o status e os logs do Pod: Com o comando kubectl get pods, veja o status dos Pods disponíveis; se o seu Pod falhou devido a um CreateContainerError, você verá CreateContainerError no campo STATUS da saída.
Inspecione os Pods em detalhes: Use kubectl describe pod pod-name para inspecionar o pod e ver informações detalhadas sobre um Pod específico.
Verifique os eventos com kubectl: Execute o comando kubectl get events para identificar eventos relacionados ao CreateContainerError. Procure por eventos que mencionem especificamente esse erro.
Verifique os manifests do Pod: Confira se a configuração do seu Pod está correta, garanta que o Pod consegue acessar o volume caso ele seja referenciado na configuração e, além disso, verifique se a imagem do container é válida e inclui um entrypoint devidamente definido.
Corrigindo o CreateContainerError
A correção do CreateContainerError depende da causa do problema:
Entrypoint ausente: Você pode corrigir esse problema selecionando a imagem correta ou definindo o entrypoint manualmente na configuração da aplicação.
Problemas de armazenamento: Garanta que seu Pod consegue acessar os volumes configurados e que a configuração do Pod os referencia corretamente.
Problema no container runtime: Mantenha o container runtime atualizado e compatível com os componentes do sistema subjacente. Além disso, alocar recursos suficientes para o container runtime e monitorar seu desempenho ajuda a prevenir erros relacionados ao runtime. Manutenção regular, atualizações e diagnóstico contínuo ajudam a resolver problemas de container runtime e a garantir operações de container tranquilas no Kubernetes.
Lidar com CreateContainerConfigError e CreateContainerError no Kubernetes pode ser desafiador, mas entender suas causas e saber como diagnosticar esses problemas de forma eficaz pode melhorar significativamente seus processos de gerenciamento e deployment de containers. Seguindo os passos e boas práticas descritos aqui, você consegue mitigar esses erros e garantir um ambiente Kubernetes mais estável e eficiente.
Resolva erros do Kubernetes 10x mais rápido com a PerfectScale by DoiT
A plataforma de governança de Kubernetes da PerfectScale monitora continuamente o comportamento dos workloads e detecta sinais de instabilidade, como eventos de OOM ou CPU throttling, que muitas vezes levam a crash loops.
Identifique até 30 tipos diferentes de riscos de resiliência
A PerfectScale rastreia até 30 alertas de K8s criados especificamente para Kubernetes. Eles cobrem uma ampla gama de problemas potenciais, como falhas de pods ou esgotamento de recursos, eliminando a necessidade de conhecimento avançado em Kubernetes.

Alertas em tempo real sem fadiga de alertas
A PerfectScale permite configurar alertas para seus clusters com facilidade e gerenciá-los de forma eficiente com os Alert Profiles. Você pode monitorar e ser notificado facilmente sobre os alertas relevantes para o seu ambiente.
Para atualizações mais rápidas, use os Integration Profiles do Slack ou do MS Teams para receber notificações quando um Alert for gerado.
Receba recomendações práticas para eliminar CreateContainerConfigErrors no Kubernetes
Ao aproveitar dados de uso reais e políticas orientadas à resiliência, a PerfectScale entrega recomendações precisas de right-sizing de workloads no nível do container, garantindo que os workloads tenham exatamente o que precisam. Sejam aplicadas manualmente ou de forma autônoma para impacto imediato, essas recomendações restauram a estabilidade dos workloads, eliminam reinicializações recorrentes e ajudam a prevenir falhas semelhantes no futuro.
Para aplicar as recomendações, basta copiar o .yaml e fazer o deploy no seu cluster.

Junte-se a líderes do setor como Paramount Pictures e Creditas, que já otimizaram seus ambientes Kubernetes com a PerfectScale. Cadastre-se ou agende uma demo com nossos especialistas técnicos agora mesmo!
Perguntas frequentes
Qual é a diferença entre CreateContainerConfigError e CreateContainerError?
O CreateContainerConfigError acontece antes: o Kubernetes não consegue montar a configuração do container, geralmente porque um ConfigMap ou Secret referenciado está ausente. O CreateContainerError acontece depois que a configuração está pronta, quando o próprio container runtime falha ao criar o container (imagem inválida, limites de recursos, volume mounts incorretos ou um problema no runtime).
Por que não há logs de aplicação para esses erros?
Os dois erros ocorrem antes de o container efetivamente iniciar, então a aplicação dentro dele nunca executa e nunca gera logs. Você precisa recorrer a kubectl describe pod e kubectl get events.
Como corrijo um CreateContainerConfigError causado por um ConfigMap ou Secret ausente?
Crie o recurso ausente no mesmo namespace do pod, por exemplo kubectl create configmap my-configmap ou kubectl create secret generic my-secret, e depois confira se a spec do pod referencia o nome e o namespace corretos.
O que costuma causar o CreateContainerError? Na maioria das vezes, uma imagem de container inválida ou ausente, nenhum entrypoint definido, CPU/memória insuficiente para atender às solicitações de recursos do pod, volume mounts mal configurados ou um problema no próprio container runtime (containerd, Docker).
Qual é o primeiro comando a executar quando vejo um desses erros?
kubectl get pods para confirmar o erro na coluna STATUS, depois kubectl describe pod <pod-name> para ver a mensagem específica do evento (ex.: "configmap not found") e, em seguida, kubectl get events para contexto adicional.
A PerfectScale pode ajudar a prevenir esses erros? Sim. A PerfectScale monitora o comportamento dos workloads em busca de sinais de instabilidade (como eventos de OOM ou CPU throttling) e entrega recomendações de right-sizing no nível do container, com o objetivo de detectar e prevenir falhas de configuração e de runtime relacionadas a recursos antes que elas se repitam.