Neste documento, mostramos como personalizar a configuração do ambiente de execução do contêiner containerd nos nós do Google Kubernetes Engine (GKE). Antes de ler este documento, é necessário saber o que um ambiente de execução do contêiner e por que você deve personalizá-lo.
Sobre a configuração do containerd no GKE
É possível configurar manualmente um conjunto de opções no ambiente de execução containerd em nós do GKE que executam um sistema operacional como o Container-Optimized OS. Personalizar o ambiente de execução permite configurar requisitos especiais, como acesso a registros de imagens particulares. Para definir essas opções, crie um arquivo YAML chamado arquivo de configuração do ambiente de execução e transmita-o para o GKE ao criar ou atualizar um cluster.
Esse método de personalização do containerd permite evitar a implantação de DaemonSets privilegiados, que são um risco para a segurança. Quando você fornece ao GKE um arquivo de configuração do ambiente de execução, ele recria os nós e atualiza o arquivo config.toml
do containerd em cada nó com a configuração.
A configuração persiste com o encerramento, upgrades e recriações do nó.
O arquivo de configuração do ambiente de execução só permite configurar opções no containerd. O GKE também permite configurar opções específicas de kubelet e opções do kernel do Linux de baixo nível usando um arquivo separado chamado de arquivo de configuração do sistema de nós. Para mais detalhes, consulte Como personalizar a configuração do sistema de nós.
Limitações
Não é possível usar um arquivo de configuração do ambiente de execução para mudar as configurações do containerd nas imagens de nó do Ubuntu. Somente o Container-Optimized OS com o containerd é aceito. Essa é a imagem de nó padrão para todos os clusters do GKE.
Opções de configuração do containerd disponíveis
A tabela a seguir descreve as opções que podem ser configuradas usando um arquivo de configuração do ambiente de execução:
Opções do arquivo de configuração do ambiente de execução | |
---|---|
|
Acesse registros de imagens particulares com credenciais particulares que você armazena no Secret Manager. Para instruções, consulte Acessar registros particulares com certificados de AC particulares. privateRegistryAccessConfig: enabled: true certificateAuthorityDomainConfig: - gcpSecretManagerCertificateConfig: secretURI: " Essa configuração tem os seguintes campos:
|
Aplicar a configuração do containerd a novos clusters
Nesta seção, mostramos como aplicar um arquivo de configuração do containerd ao criar um novo cluster do GKE.
Execute este comando:
gcloud container clusters create-autoCLUSTER_NAME
\ --location=LOCATION
\ --scopes="cloud-platform" \ --containerd-config-from-file="PATH_TO_CONFIG_FILE
"
Substitua:
CLUSTER_NAME
: o nome do novo cluster.LOCATION
: o local do Compute Engine do novo cluster.PATH_TO_CONFIG_FILE
: o caminho para o arquivo de configuração que você criou, como~/containerd-configuration.yaml
.
É possível ativar a configuração do registro particular em novos clusters padrão executando o comando gcloud container clusters create
com as mesmas opções.
Aplicar a configuração do containerd a clusters já existentes
Nesta seção, mostramos como aplicar uma configuração do containerd a clusters e nós já existentes.
Verificar os escopos de acesso
Os clusters já existentes precisam ter o escopo de acesso cloud-platform
para usar esse recurso. Nesta seção, mostramos como verificar os escopos de acesso e atualizar um cluster já existente com um arquivo de configuração de registro particular novo ou modificado.
Para detalhes sobre os escopos de acesso padrão em novos clusters, consulte Escopos de acesso no GKE.
Verificar os escopos de acesso do Autopilot
Execute este comando:
gcloud container clusters describeCLUSTER_NAME
\ --location=LOCATION
\ --flatten=nodeConfig \ --format='csv[delimiter="\\n",no-heading](oauthScopes)'
Se o cluster não tiver o escopo de acesso https://www.googleapis.com/auth/cloud-platform
, crie um novo cluster com esse escopo.
Verificar os escopos de acesso Standard
Para verificar os escopos de acesso do cluster Standard, verifique um pool 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 pool de nós.
Se o cluster não tiver o escopo de acesso https://www.googleapis.com/auth/cloud-platform
, crie um novo pool de nós com o escopo de acesso cloud-platform
e exclua o pool de nós que já existe.
Atualizar o cluster para que use o arquivo de configuração
Execute este comando:
gcloud container clusters updateCLUSTER_NAME
\ --location=LOCATION
\ --containerd-config-from-file="PATH_TO_CONFIG_FILE
"
Recriar nós em clusters Standard
Quando o cluster padrão não usa upgrades automáticos, é necessário recriar manualmente os pools de nós para aplicar a nova configuração. Para acionar uma recriação manual de nós, faça upgrade do cluster para a mesma versão do GKE que ele já usa.
gcloud container clusters upgradeCLUSTER_NAME
\ --location=LOCATION
\ --cluster-version=VERSION
Substitua VERSION
pela mesma versão do patch do GKE que o cluster já usa.
Desativar opções de configuração do containerd
Para remover a configuração personalizada, faça isto:
-
Atualize o arquivo de configuração para especificar
enabled: false
no item de configuração que você quer desativar e exclua todos os outros campos do item, como no exemplo a seguir:privateRegistryAccessConfig: enabled: false
- Aplique o arquivo de configuração atualizado ao cluster. Para instruções, acesse Aplicar a configuração do containerd a clusters já existentes.