Esta página mostra como personalizar a configuração do tempo de execução do contentor do containerd nos seus nós do Google Kubernetes Engine (GKE). Antes de ler este documento, certifique-se de que sabe o que é um tempo de execução do contentor e por que motivo o quer personalizar.
Acerca da configuração do containerd no GKE
Pode configurar manualmente um conjunto de opções no tempo de execução do containerd em nós do GKE que executam um sistema operativo como o SO otimizado para contentores. A personalização do tempo de execução permite-lhe configurar requisitos especiais, como o acesso a registos de imagens privados. Para definir estas opções, crie um ficheiro YAML denominado ficheiro de configuração de tempo de execução e transmita o ficheiro para o GKE quando criar ou atualizar um cluster.
Este método de personalização do containerd permite-lhe evitar a implementação de DaemonSets privilegiados, que representam um risco de segurança. Quando fornece ao GKE um ficheiro de configuração de tempo de execução, o GKE recria os nós e atualiza o ficheiro config.toml
do containerd em todos os nós com a sua configuração.
A configuração persiste durante o encerramento, as atualizações e as recriações dos nós.
O ficheiro de configuração de tempo de execução só lhe permite configurar opções no containerd. O GKE também suporta a configuração de opções kubelet específicas e opções de kernel do Linux de baixo nível através de um ficheiro separado denominado ficheiro de configuração do sistema do nó. Para mais detalhes, consulte o artigo Personalizar a configuração do sistema de nós.
Limitações
Não pode usar um ficheiro de configuração de tempo de execução para alterar as definições do containerd em imagens de nós do Ubuntu. Apenas o SO otimizado para contentores com o containerd é suportado. Esta é a imagem do nó predefinida para todos os clusters do GKE.
Opções de configuração do containerd disponíveis
A tabela seguinte descreve as opções que pode configurar através de um ficheiro de configuração de tempo de execução:
Opções do ficheiro de configuração do tempo de execução | |
---|---|
|
Aceda a registos de imagens privados com credenciais privadas que armazena no Secret Manager. Para obter instruções, consulte o artigo Aceda a registos privados com certificados de AC privada. privateRegistryAccessConfig: enabled: true certificateAuthorityDomainConfig: - gcpSecretManagerCertificateConfig: secretURI: " Esta configuração tem os seguintes campos:
|
Aplique a configuração do containerd a novos clusters
Esta secção mostra como aplicar um ficheiro de configuração do containerd quando cria um novo cluster do GKE.
Execute o seguinte comando:
gcloud container clusters create-autoCLUSTER_NAME
\ --location=LOCATION
\ --scopes="cloud-platform" \ --containerd-config-from-file="PATH_TO_CONFIG_FILE
"
Substitua o seguinte:
CLUSTER_NAME
: o nome do novo cluster.LOCATION
: a localização do Compute Engine do seu novo cluster.PATH_TO_CONFIG_FILE
: o caminho para o ficheiro de configuração que criou, como~/containerd-configuration.yaml
.
Pode ativar a configuração do registo privado em novos clusters padrão executando o comando
gcloud container clusters create
com as mesmas opções.
Aplique a configuração do containerd a clusters existentes
Esta secção mostra como aplicar uma configuração do containerd a clusters e nós existentes.
Verifique os âmbitos de acesso
Os clusters existentes têm de ter o âmbito de acesso cloud-platform
para usar esta funcionalidade. Esta secção mostra como verificar os âmbitos de acesso e atualizar um cluster existente com um ficheiro de configuração do registo privado novo ou modificado.
Para ver detalhes sobre os âmbitos de acesso predefinidos em novos clusters, consulte o artigo Âmbitos de acesso no GKE.
Verifique os âmbitos de acesso do Autopilot
Execute o seguinte comando:
gcloud container clusters describeCLUSTER_NAME
\ --location=LOCATION
\ --flatten=nodeConfig \ --format='csv[delimiter="\\n",no-heading](oauthScopes)'
Se o seu cluster não tiver o âmbito de acesso https://www.googleapis.com/auth/cloud-platform
, crie um novo cluster com este âmbito de acesso.
Verifique os âmbitos de acesso padrão
Para verificar os âmbitos de acesso do cluster Standard, verifique um conjunto de nós:
gcloud container node-pools describeNODE_POOL_NAME
\ --cluster=CLUSTER_NAME
\ --location=LOCATION
\ --flatten=nodeConfig \ --format='csv[delimiter="\\n",no-heading](oauthScopes)'
Substitua NODE_POOL_NAME
pelo nome do conjunto de nós.
Se o seu cluster não tiver o âmbito de acesso https://www.googleapis.com/auth/cloud-platform
, crie um novo conjunto de nós com o âmbito de acesso cloud-platform
e elimine o conjunto de nós existente.
Atualize o cluster para usar o ficheiro de configuração
Execute o seguinte comando:
gcloud container clusters updateCLUSTER_NAME
\ --location=LOCATION
\ --containerd-config-from-file="PATH_TO_CONFIG_FILE
"
Volte a criar nós em clusters padrão
Se o cluster Standard não usar atualizações automáticas, tem de recriar manualmente os conjuntos de nós para aplicar a nova configuração. Para acionar uma recriação manual do nó, atualize o cluster para a mesma versão do GKE que já usa.
gcloud container clusters upgradeCLUSTER_NAME
\ --location=LOCATION
\ --cluster-version=VERSION
Substitua VERSION
pela mesma versão de patch do GKE que o cluster já usa.
Desative as opções de configuração do containerd
Para remover a configuração personalizada, faça o seguinte:
-
Atualize o ficheiro de configuração para especificar
enabled: false
no item de configuração que quer desativar e elimine todos os outros campos no item, como no seguinte exemplo:privateRegistryAccessConfig: enabled: false
- Aplique o ficheiro de configuração atualizado ao cluster. Para obter instruções, consulte o artigo Aplique a configuração do containerd a clusters existentes.