Os clusters usam um ambiente de execução de contêiner para criar e executar pods do Kubernetes. Antes
da versão 1.13 dos clusters do Anthos em bare metal, o ambiente de execução do contêiner poderia ser
Docker Engine
ou containerd
. No entanto, o ambiente de execução do contêiner só pode ser
containerd
a partir da versão 1.13 dos clusters do Anthos em bare metal.
Se os clusters usam Docker Engine
como o ambiente de execução do contêiner, altere-o para containerd
. Nesta página, explicamos como definir o ambiente de execução do contêiner como containerd
.
Para especificar o ambiente de execução do contêiner, defina o valor do campo containerRuntime
no arquivo de configuração do cluster. No entanto, apenas definir ou alterar o
valor desse campo não é suficiente. Você precisa criar um novo cluster ou
fazer upgrade de um cluster atual para que a alteração entre em vigor. Em outras palavras, só
é possível alterar o ambiente de execução do contêiner ao criar um novo cluster ou ao
fazer upgrade de um cluster atual.
O Kubernetes 1.24 encerra a compatibilidade com o Docker Engine
O componente dockershim
no Kubernetes permite que os nós do cluster usem o ambiente de execução do contêiner
do Docker Engine. No entanto, o Kubernetes 1.24 removeu o componente dockershim
. Como
os clusters do Anthos em bare metal versão 1.13 serão executados no Kubernetes 1.24, a versão 1.13
e mais recentes não poderão mais usar o Docker Engine como um ambiente de execução de contêiner.
Ao fazer upgrade ou criação de clusters, observe as seguintes regras de ambiente de execução do contêiner:
- Use
containerd
para clusters da versão 1.13 e mais recentes. - Não é possível criar clusters da versão 1.12 que usam o ambiente de execução de contêiner do Docker Engine.
- É possível fazer upgrade de um cluster 1.11 que use o Docker Engine para um cluster 1.12 que use
o Docker Engine. No entanto, recomendamos que você passe para
containerd
antes do upgrade.
A instalação do Docker usada para criar imagens não está relacionada ao ambiente de execução do contêiner do Docker Engine no cluster do Kubernetes. Ainda é possível usar o Docker para criar imagens e contêineres de aplicativo. Esses contêineres ainda funcionarão no cluster.
Continue instalando o Docker na sua
estação de trabalho de administrador
porque o comando bmctl
requer o Docker para operações, como a criação de clusters.
Esse uso do Docker também não é afetado pela descontinuação do dockershim
.
Para instruções detalhadas sobre como alterar o ambiente de execução do contêiner de docker
para containerd
, consulte as seções a seguir.
Antes de começar
Lembre-se de que, ao fazer upgrade de um cluster, você precisa fazer upgrade do cluster de administrador antes de fazer upgrade dos clusters de usuário.
Certifique-se de que sua implantação seja compatível com o
containerd
versão 1.4.6 ou superior. Os clusters do Anthos em bare metal instalam essa versão em qualquer versão anteriormente instalada decontainerd
.Verifique se os clusters do Anthos em bare metal podem instalar os seguintes arquivos:
Arquivos binários
/usr/bin/containerd
/usr/bin/containerd-shim
/usr/bin/containerd-shim-runc-v1
/usr/bin/containerd-shim-runc-v2
/usr/bin/crictl
/usr/bin/ctr
/usr/local/sbin/runc
Arquivos de configuração
/etc/crictl.yaml
/etc/systemd/system/containerd.service
/etc/containerd/config.toml
/etc/containerd/certs.d/
/etc/systemd/system/containerd.service.d/09-proxy.conf
Esse arquivo só é instalado quando você configura um proxy HTTP.
Verifique se os clusters do Anthos em bare metal podem instalar o seguinte certificado nos seus nós:
/etc/containerd/certs.d/
Defina containerd
como o ambiente de execução do contêiner para um novo cluster
Se a seção spec.nodeConfig
do arquivo de configuração do cluster estiver vazia ou
não definida, o ambiente de execução do contêiner do cluster será definido automaticamente como
containerd
quando um novo cluster for criado.
No entanto, se você quiser definir explicitamente containerd
como o ambiente de execução do contêiner para um novo
cluster, defina o campo containerRuntime como containerd
na seção spec.nodeConfig
do arquivo de configuração do cluster. Depois disso, a configuração do cluster
terá esta aparência:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
nodeConfig:
containerRuntime: containerd
Ao usar esse arquivo de configuração de cluster para criar um novo cluster, o
ambiente de execução do contêiner será containerd
.
Alterar o ambiente de execução do contêiner de docker
para containerd
ao fazer upgrade de um cluster
Para alterar o ambiente de execução do contêiner de docker
para containerd
ao fazer upgrade de um
cluster, conclua as seguintes etapas:
Altere o campo containerRuntime de
docker
paracontainerd
na seçãospec.nodeConfig
do arquivo de configuração do cluster. Depois disso, a configuração do cluster vai ficar assim:apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: cluster1 namespace: cluster-cluster1 spec: nodeConfig: containerRuntime: containerd
Execute o comando a seguir para fazer upgrade do cluster:
bmctl upgrade cluster -c CLUSTER_NAME --kubeconfig=ADMIN_KUBECONFIG
Substitua:
- CLUSTER_NAME pelo nome do cluster que você quer atualizar.
- ADMIN_KUBECONFIG pelo caminho do arquivo kubeconfig do cluster de administrador.
Verificar o status do ambiente de execução do contêiner
Para verificar o status do ambiente de execução do contêiner, execute o seguinte comando:
systemctl status containerd
Alterar o ambiente de execução do contêiner de containerd
para docker
ao fazer upgrade de um cluster
É possível usar qualquer um dos ambientes de execução do contêiner ao fazer upgrade dos clusters do Anthos na versão bare metal
1.11 para a 1.12. No entanto, recomendamos que você use o containerd
,
porque o ambiente de execução do contêiner Docker Engine
não é compatível com a versão 1.13.0
e mais recentes.