Como usar o containerd para o ambiente de execução de contêiner

O ambiente de execução do contêiner é um software responsável por gerenciar contêineres e imagens de contêiner em um nó do Kubernetes. O Containerd é um ambiente de execução de contêiner CNCF (Cloud Native Cloud Foundation) graduado. Ele é compatível com o Kubernetes de maneira nativa e é considerado mais eficiente e seguro do que o Docker Engine para Kubernetes. Até o Kubernetes 1.20, o Docker Engine era o ambiente de execução do contêiner principal. Entretanto, o Dockershim, o código de integração do Docker Engine no Kubernetes, teve seu uso suspenso no Kubernetes 1.20 e será removido no Kubernetes 1.24. Assim, os clusters do Anthos em usuários do VMware (GKE no local) devem planejar usar o containerd no ambiente de execução do contêiner assim que possível.

Suporte para clusters do Containerd nos Anthos no nós do cluster de administrador do VMware

Nos clusters do Anthos no VMware 1.8, o cluster de administrador usa o containerd em todos os nós: o nó mestre de administrador, os nós de complemento de administrador e os nós mestres de usuário. Isso se aplica aos clusters de administrador novos e atuais atualizados da versão 1.7.x.

Suporte para clusters do Containerd no Anthos em nós de cluster de usuário do VMware

Os clusters do Anthos no VMware 1.8 introduzem um novo tipo de imagem do SO ubuntu_containerd. A imagem do SO ubuntu_containerd usa a imagem do SO idêntica a ubuntu, mas o nó está configurado para usar containerd como ambiente de execução do contêiner, em vez do Docker Engine.

Na versão 1.8, o tipo de imagem do SO ubuntu_containerd é usado para um novo pool de nós por padrão se osImageType não for especificado. No entanto, se você fizer upgrade de um pool de nós atual a partir da v1.7.x, os pools de nós continuarão a usar o Docker Engine após o upgrade.

Se você quiser continuar usando o Docker Engine para um novo pool de nós, a partir da versão 1.8, especifique explicitamente ubuntu como o osImageType. Como o suporte do Docker Engine será removido no Kubernetes 1.24, você planeja planejar seus pools de nós para usar o tipo de imagem do SO ubuntu_containerd.

Atualizar osImageType usado por um pool de nós

Consulte Atualizar o osImageType de um pool de nós.

Migração do Docker Engine para o containerd

Estes recursos fornecem informações gerais sobre a migração do Docker Engine para o containerd.

Como verificar o tipo de imagem do nó

É possível verificar qual tipo de imagem é usado nos nós atuais.

Para verificar com o kubectl:

kubectl get nodes -o wide --kubeconfig ADMIN_CLUSTER_KUBECONFIG

onde:

  • ADMIN_CLUSTER_KUBECONFIG é o caminho do arquivo kubeconfig para o cluster de administrador;

A resposta será semelhante a:

NAME ...  OS-IMAGE ...         CONTAINER-RUNTIME
node-1    Ubuntu 18.04.5 LTS   containerd://1.4.3
node-2    Ubuntu 18.04.5 LTS   containerd://1.4.3
node-3    Ubuntu 18.04.5 LTS   containerd://1.4.3

A coluna CONTAINER-RUNTIME gera o ambiente de execução e a versão dele.

Para verificar dentro do nó, execute:

sudo crictl version

A resposta será semelhante a:

Version:  0.1.0
RuntimeName:  containerd
RuntimeVersion:  1.4.3-0ubuntu0~18.04.1
RuntimeApiVersion:  v1alpha2