Os clusters do Anthos no bare metal adicionam o campo de configuração containerRuntime
opcional ao arquivo de configuração do cluster. Use esse campo para configurar o ambiente de execução do contêiner que os nós do cluster usam para programar contêineres para os pods do Kubernetes.
A partir dos clusters do Anthos no bare metal 1.7, é possível fazer com que kubelet
chame a interface do ambiente de execução do contêiner diretamente. Com essa opção, é possível separar o kubelet
do Docker removendo a necessidade do daemon do Docker.
Essa alteração é necessária devido aos objetivos do Kubernetes para suspender o uso do daemon do Docker e tornar o containerd padrão. O Kubernetes planeja enviar avisos a partir da versão 1.20 e encerrar a suspensão de uso pela versão 1.24.Essa alteração está alinhada com a alteração planejada para tornar o containerd o padrão do GKE.
Em clusters do Anthos no bare metal, você pode configurar kubelet
para usar o Docker ou containerd
por meio do novo campo containerRuntime
.
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.3 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 Docker:
/etc/docker/certs.d/
- Para
containerd
:/etc/docker/certs.d/
/etc/containerd/certs.d/
- Para Docker:
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:
docker
containerd
Se o campo estiver vazio ou não estiver definido, os clusters do Anthos no bare metal usarão docker
por padrão.
Para usar containerd
, a entrada na sua 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: containerd
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 de uma das seguintes versões:
- 1.6.0
- 1.6.1
- 1.6.2
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.
Altere o ambiente de execução para containerd
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:
docker
containerd
Para usar containerd
, 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: containerd
Para definir o ambiente de execução do contêiner dos nós do cluster como containerd
como parte do upgrade, execute o comando a seguir para fazer upgrade dos clusters:
bmctl upgrade cluster
Alterações no plano de controle após o upgrade
Durante o upgrade, os clusters do Anthos em bare metal executarão as seguintes tarefas em nós do plano de controle para aceitar o balanceador de carga se o ambiente de execução tiver sido definido como containerd
:
- Exclua os serviços
docker.*.service
- Instalar serviços de
container.*.service
- Reiniciar os serviços systemd
haproxy
ekeepalived
Os clusters que usam o ambiente de execução docker
mantêm os serviços systemd haproxy
e keepalived
atuais do sistema após o upgrade.
Como atualizar seus clusters com containerd definido como o ambiente de execução
Se você definir o ambiente de execução do contêiner como containerd
, o comando a seguir atualizará os certificados do registro de imagem em /etc/containerd/certs.d/
bmctl update cluster
Como redefinir os clusters com containerd definido como o ambiente de execução
Se você definir o ambiente de execução do contêiner como containerd
, 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/
Verifique o status do ambiente de execução do containerd
Para verificar o status de containerd
como parte da verificação de integridade da máquina, execute o seguinte comando:
systemctl status containerd