Migração de nós do Docker para containerd
Contexto
O Kubernetes removeu o dockershim da v1.24 e não suporta o Docker por padrão. O CCE continuará a suportar o Docker na v1.25, mas apenas até a v1.27. As etapas a seguir mostram como migrar nós do Docker para containerd.
Pré-requisitos
- Pelo menos um cluster que suporta nós em contêiner foi criado. Para mais detalhes, consulte Mapeamento entre sistemas operacionais de nó e mecanismos de contêiner.
- Há um nó do Docker ou um pool de nós do Docker no cluster.
Precauções
- Teoricamente, a migração durante a execução do contêiner interromperá os serviços por um curto período de tempo. Portanto, é altamente recomendável que os serviços a serem migrados tenham sido implementados como várias instâncias. Além disso, é aconselhável testar o impacto da migração no ambiente de teste para minimizar os riscos potenciais.
- containerd não pode construir imagens. Não use o comando docker build para criar imagens em nós em contêineres. Para outras diferenças entre Docker e containerd, veja Mecanismo de contêiner.
Migrar um nó
- Efetue logon no console do CCE e clique no nome do cluster para acessar o console do cluster.
- No painel de navegação, escolha Nodes. Na lista de nós, selecione um ou mais nós a serem redefinidos e escolha More > Reset Node.
- Defina Container Engine como containerd. É possível ajustar outros parâmetros conforme necessário ou retê-los conforme definido durante a criação.
- Se o status do nó for Installing, o nó está sendo redefinido.
Quando o status do nó é Running, você pode ver que a versão do nó é alterada para containerd. Você pode efetuar logon no nó e executar comandos containerd, como crictl, para exibir informações sobre os contêineres em execução no nó.
Migrar um pool de nós
Você pode copiar um pool de nós, definir o mecanismo de contêiner do novo pool de nós como containerd e manter outras configurações iguais às do pool de nós original do Docker.
- Efetue logon no console do CCE e clique no nome do cluster para acessar o console do cluster.
- No painel de navegação, escolha Nodes. Na página de guia Node Pools, localize o pool de nós do Docker a ser copiado e escolha More > Copy na coluna Operation.
- Na área Compute Settings, defina o Container Engine como containerd e modifique outros parâmetros conforme necessário.
- Dimensione o número de pools de nós de containerd criados para o número de pools de nós originais do Docker e exclua os nós dos pools de nós do Docker, um por um.
A migração rolante é preferida. Ou seja, adicione alguns nós de containerd e, em seguida, exclua alguns nós do Docker até que o número de nós no novo pool de nós de containerd seja o mesmo do pool de nós original do Docker.
Se você tiver definido a afinidade de nó para as cargas de trabalho implementadas nos nós originais do Docker ou no pool de nós, defina políticas de afinidade para as cargas de trabalho a serem executadas nos novos nós de containerd ou no pool de nós.
- Após a migração, exclua o pool de nós original do Docker.