O tempo de execução do contentor é um software responsável pela gestão de contentores e imagens de contentores num nó do Kubernetes. O containerd é um tempo de execução do contentor CNCF (Cloud Native Cloud Foundation) graduado. É compatível com o Kubernetes de forma nativa e é considerado mais eficiente em termos de recursos e seguro do que o Docker Engine para o Kubernetes. Até ao Kubernetes 1.20, o Docker Engine era o tempo de execução do contentor principal. No entanto, o Dockershim, o código de integração do Docker Engine no Kubernetes, foi descontinuado no Kubernetes 1.20 e foi removido no Kubernetes 1.24.
A partir de agora, deve usar o containerd nos seus clusters.
Suporte para o containerd num cluster de administrador
O Google Distributed Cloud usa o containerd para todos os nós do cluster de administração.
Suporte do containerd num cluster de utilizador
O Google Distributed Cloud suporta os seguintes tipos de imagens de SO para nós do cluster de utilizadores:
Tipo de imagem do SO | Tempo de execução do contentor |
---|---|
ubuntu_containerd | containerd |
cos | containerd |
windows | containerd |
Restrições e recomendações
A partir da versão 1.13.0, o Google Distributed Cloud já não suporta o tipo de imagem do SO
ubuntu
. Todos os nós do cluster têm de usar o tempo de execução do containerd.Não pode atualizar um cluster que use o Docker Engine para a versão 1.13. Tem de atualizar o cluster para usar o tempo de execução do containerd antes de atualizar para a versão 1.13.
A partir da versão 1.12.0, já não pode criar novos clusters que usem o tipo de imagem do SO
ubuntu
. Ou seja, já não pode criar novos clusters que usem o tempo de execução de contentores do Docker Engine.
Determine que node pools estão a usar o Docker Engine
Ubuntu
Liste os node pools do Ubuntu que usam o Docker Engine:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get onpremnodepools \ -o json -A | jq -r '.items[] |select(.spec.osImageType == "ubuntu")|.metadata.name'
Substitua USER_CLUSTER_KUBECONFIG pelo caminho do ficheiro kubeconfig do cluster de utilizadores.
Exemplo de saída:
ubuntu-node-pool-1 ubuntu-node-pool-3
Windows
Todos os pools de nós do Windows num cluster de utilizador usam o mesmo tempo de execução do contentor. O tempo de execução para os nós do Windows é determinado pelo valor de enableWindowsDataplaneV2
, que é um campo no ficheiro de configuração do cluster de utilizadores.
Se enableWindowsDataplaneV2
for true
, todos os nós do Windows no cluster de utilizadores usam o containerd. Se for false
, todos os nós do Windows usam o Docker Engine.
Execute o seguinte comando para determinar que clusters de utilizadores têm o valor enableWindowsDataplaneV2
definido como false
. Isto indica que clusters de utilizadores estão configurados para usar o Docker Engine para nós do Windows.
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get onpremuserclusters \ -A -o json | jq -r '.items[] |select(.spec.enableWindowsDataplaneV2 == false)|.metadata.name'
A saída apresenta todos os clusters de utilizadores configurados para usar o Docker Engine para nós do Windows. Por exemplo:
user-cluster-1
Independentemente de um cluster de utilizadores ter ou não node pools do Windows, se o cluster tiver enableWindowsDataplaneV2
definido como false
, não vai poder atualizá-lo para a versão 1.13.
Atualize os node pools do Linux para usar o containerd
Para cada conjunto de nós no ficheiro de configuração do cluster de utilizador, defina
osImageType
ubuntu_containerd
ou cos
.
Exemplo:
nodePools - name: "my-node-pool" osImageType: "ubuntu_containerd"
Atualize o cluster de utilizadores:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Substitua o seguinte:
ADMIN_CLUSTER_KUBECONFIG: o caminho do ficheiro kubeconfig do cluster de administrador
USER_CLUSTER_CONFIG: o caminho do ficheiro de configuração do cluster do utilizador
Atualize os nós do Windows para usar o containerd
No ficheiro de configuração do cluster de utilizadores, defina enableWindowsDataplaneV2 como true
.
enableWindowsDataplaneV2: true
Atualize o cluster de utilizadores:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
O comando anterior define o tempo de execução do contentor como containerd para todos os nós do Windows no cluster.