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.
É 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
. Por padrão, kubelet
usa o containerd como o ambiente de execução de contêiner.
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
.