O ACK oferece suporte a containerd, Sandboxed-Container e Docker. Compare modelos de isolamento, limites de uso e arquitetura de implantação para escolher o runtime adequado à sua carga de trabalho.
O runtime Docker foi descontinuado. Se o seu cluster executa Docker, migre para containerd.
Como os runtimes de contêiner se integram a um nó do Kubernetes
Um runtime de contêiner gerencia o ciclo de vida dos contêineres em cada nó. O kubelet comunica-se com o runtime por meio da Container Runtime Interface (CRI). A escolha do runtime define o modelo de isolamento, os tipos de nó compatíveis e as ferramentas de CLI disponíveis.
O ACK oferece suporte aos seguintes runtimes:
containerd — Recomendado para a maioria das cargas de trabalho. Leve, compatível diretamente com a CRI e sem daemon intermediário.
Sandboxed-Container — Usa VMs leves (runV) para executar cada pod em um kernel isolado.
Docker (descontinuado) — Migre para containerd.
Recursos e limites
|
Recurso |
containerd |
Sandboxed-Container |
Docker (manutenção descontinuada) |
|
Tipos de cluster |
|
|
Todos os tipos de clusters ACK |
|
Versão do Kubernetes |
1.20 ou posterior |
1.16 ou posterior |
1.22 e anteriores |
|
Tipo de nó |
|
ECS |
|
|
Sistema operacional do nó |
O Container Service for Kubernetes fornece imagens públicas para sistemas operacionais como Alibaba Cloud Linux 3 versão otimizada para contêineres, ContainerOS, Alibaba Cloud Linux 3, Ubuntu e Windows. Para mais informações, consulte Sistemas operacionais. |
|
|
|
Engine de contêiner |
containerd |
containerd |
Docker |
|
Monitoramento |
Compatível |
Compatível |
Compatível |
|
Coleta de logs de contêiner |
Compatível |
Injeção manual de sidecar. Consulte Usar CRDs para coletar logs de texto de contêiner no modo sidecar. |
Compatível |
|
Coleta de stdout de contêiner |
Compatível |
Compatível |
Compatível |
|
RuntimeClass |
Não compatível |
Compatível (runV) |
Não compatível |
|
Agendamento de pods |
Nenhuma configuração necessária. |
Adicione as seguintes configurações:
|
Nenhuma configuração necessária. |
|
HostNetwork |
Compatível |
Não compatível |
Compatível |
|
Disco de dados do nó |
Opcional |
Obrigatório. Mínimo de 200 GiB. |
Opcional |
|
Plug-in de rede |
|
|
|
|
Modo kube-proxy |
|
|
|
|
Plug-in de volume |
Plug-in CSI (exceto ACK Edge clusters) |
Plug-in CSI |
Plug-in CSI |
|
Sistema de arquivos raiz do contêiner |
OverlayFS |
OverlayFS (com cota de disco) |
OverlayFS |
Docker e Sandboxed-Container não podem compartilhar o mesmo nó. Para usar ambos em um cluster, crie pools de nós separados para cada runtime.
O Sandboxed-Container executa sobre o containerd. Ao inspecionar nós com kubectl get node ou no console do ACK, o runtime aparece como containerd.
Arquitetura de implantação
A cadeia de chamadas do kubelet até os contêineres varia conforme o runtime. Menos camadas resultam em menor sobrecarga e menos complexidade.
|
Runtime |
Arquitetura de implantação |
|
Docker |
|
|
containerd |
|
|
Sandboxed-Container v2 |
|
O containerd elimina a camada dockerd e permite que o kubelet acesse diretamente a CRI. O Sandboxed-Container v2 estende o containerd com o containerd-shim-runv2, que executa pods em VMs leves via runV para garantir isolamento no nível do kernel, coexistindo com contêineres runC padrão.
Comandos de CLI para containerd e Docker
Os runtimes containerd e Docker usam ferramentas de CLI diferentes. Use crictl para containerd, pois opera no nível da CRI. O ctr é uma alternativa de baixo nível do containerd.
|
Operação |
crictl (recomendado para containerd) |
ctr (CLI de baixo nível do containerd) |
docker |
|
Listar contêineres |
|
|
|
|
Inspecionar contêineres |
|
|
|
|
Visualizar logs de contêiner |
|
N/A |
|
|
Executar comandos em contêineres |
|
N/A |
|
|
Anexar a contêineres |
|
N/A |
|
|
Visualizar uso de recursos |
|
N/A |
|
|
Criar contêineres |
|
|
|
|
Iniciar contêineres |
|
|
|
|
Parar contêineres |
|
ctr -n k8s.io task pause <container> |
|
|
Excluir contêineres |
|
|
|
|
Listar imagens |
|
|
|
|
Inspecionar imagens |
|
N/A |
|
|
Baixar imagens |
|
|
|
|
Enviar imagens |
N/A |
|
|
|
Excluir imagens |
|
|
|
|
Listar pods |
|
N/A |
N/A |
|
Inspecionar pods |
|
N/A |
N/A |
|
Iniciar pods |
|
N/A |
N/A |
|
Parar pods |
|
N/A |
N/A |