Nesta página, explicamos como especificar o ambiente de execução de contêiner que o cluster usa para executar pods do Kubernetes. Para especificar o ambiente de execução do contêiner, defina o valor do campo containerRuntime
no arquivo de configuração do cluster.
Só é possível alterar o valor do campo containerRuntime
ao fazer upgrade ou
instalação de um cluster. Esse campo é opcional, e o padrão será containerd
se você
deixá-lo indefinido.
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 podem mais usar o Docker Engine.
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 fazer upgrade de um cluster 1.12 que usa o Docker para a versão 1.13. - 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 para um cluster 1.12 que use o Docker. No entanto, recomendamos que você passe para o contêiner 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.
O Docker precisa ser instalado na
estação de trabalho do administrador.
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 especificar o ambiente de execução do contêiner usado no cluster, consulte as seções a seguir.
Antes de começar
Identifique qual ambiente de execução você quer que os clusters usem. Só é possível alterar o valor do campo do ambiente de execução do contêiner ao fazer upgrade ou instalação de um cluster.
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, instalados para ambos os ambientes de execução:
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 os seguintes certificados nos nós, dependendo do ambiente de execução escolhido:
- Para
containerd
:/etc/docker/certs.d/
/etc/containerd/certs.d/
- Para Docker:
/etc/docker/certs.d/
- Para
Configurar o ambiente de execução do contêiner para um novo cluster
Para definir o ambiente de execução do contêiner para um novo cluster, defina o campo containerRuntime
na seção nodeConfig
em spec
no arquivo de configuração do cluster. Os clusters do Anthos no bare metal são compatíveis com os seguintes valores:
containerd
docker
Se o campo estiver vazio ou não estiver definido, os clusters do Anthos no bare metal usarão containerd
por padrão.
Para usar o Docker, a entrada na configuração deve ser semelhante ao
exemplo a seguir:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
nodeConfig:
containerRuntime: docker
Configurar o ambiente de execução do contêiner ao fazer upgrade de um cluster
É possível configurar clusters do Anthos em Bare Metal para usar um ambiente de execução de contêiner diferente ao fazer upgrade. Só é possível alterar o valor do campo do ambiente de execução do contêiner ao fazer upgrade ou instalação de um cluster.
Requisitos
- Fazer upgrade de clusters administrativos antes dos clusters de usuários
- Defina o valor do campo
containerRuntime
no seu arquivo de configuração antes de fazer upgrade dos clusters.
Alterar o ambiente de execução para o Docker
Para definir o ambiente de execução do contêiner durante um upgrade, defina o campo containerRuntime
na seção nodeConfig
em spec
no arquivo de configuração do cluster. Os clusters do Anthos no bare metal são compatíveis com os seguintes valores:
containerd
docker
Para usar o Docker, altere seu arquivo de configuração para parecer com o seguinte exemplo:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
nodeConfig:
containerRuntime: docker
Para definir o ambiente de execução do contêiner dos nós do cluster como docker
como parte do upgrade, execute o comando a seguir para fazer upgrade dos clusters:
bmctl upgrade cluster
Atualizar seus clusters com o Docker definido como o ambiente de execução
Se você definir o ambiente de execução do contêiner como docker
, o comando a seguir atualizará os certificados do registro de imagem em /etc/containerd/certs.d/
bmctl update cluster
Redefinir os clusters que usam o containerd como o ambiente de execução
Se você usar o ambiente de execução de contêiner padrão, o comando a seguir não excluirá configurações, arquivos binários ou diretórios:
bmctl reset cluster
Durante a redefinição, o serviço containerd
continua em execução, mas os contêineres que
o Kubernetes programou são interrompidos e removidos do ambiente de execução containerd.
Exclua os seguintes arquivos binários e diretórios para concluir a redefinição:
/etc/crictl.yaml
/etc/systemd/system/containerd.service
/etc/systemd/system/containerd.service.d/
/etc/containerd/config.toml
/etc/containerd/certs.d/
Se você estiver usando o Docker como ambiente de execução, nenhuma limpeza será realizada durante a redefinição.
Verificar o status do ambiente de execução
Para verificar o status de como parte da verificação de integridade da máquina, execute o seguinte comando:
systemctl status RUNTIME
Substitua RUNTIME
pelo ambiente de execução escolhido:
containerd
ou docker
.