Compartilhar via


Solucionar problemas de falhas de download da Interface de Rede do Contêiner

Este artigo discute como identificar e resolver o código de CniDownloadTimeoutVMExtensionError erro (também conhecido como código ERR_CNI_DOWNLOAD_TIMEOUTde erro, erro número 41) ou o WINDOWS_CSE_ERROR_DOWNLOAD_CNI_PACKAGE código de erro (erro número 35) que ocorre quando você tenta criar e implantar um cluster do AKS (Serviço de Kubernetes do Microsoft Azure).

Pré-requisitos

Sintomas

Ao tentar criar um cluster do AKS baseado em Linux, você recebe a seguinte mensagem de erro:

Message: We are unable to serve this request due to an internal error
SubCode: CniDownloadTimeoutVMExtensionError;
Message="VM has reported a failure when processing extension 'vmssCSE'.
Error message: "Enable failed: failed to execute command: command terminated with exit status=41\n[stdout]\n{
"ExitCode": "41",

Ao tentar criar um cluster do AKS baseado no Windows, você recebe a seguinte mensagem de erro:

Message="VM has reported a failure when processing extension 'vmssCSE' (publisher 'Microsoft.Compute' and type 'CustomScriptExtension').
Error message: 'Command execution finished, but failed because it returned a non-zero exit code of: '1'. The command had an error output of: 'ExitCode: |35|,
Output: |WINDOWS_CSE_ERROR_DOWNLOAD_CNI_PACKAGE|, Error: |Failed in downloading \r\nhttps://acs-mirror.azureedge.net/azure-cni/v1.4.56/binaries/azure-vnet-cni-overlay-windows-amd64-v1.4.56.zip.
Error: \r\nUnable to connect to the r|\r\nAt line:1 ...'
For more information, check the instance view by executing Get-AzVmssVm or Get-AzVm (https://aka.ms/GetAzVm). These commands can be executed using CloudShell (https://aka.ms/CloudShell)'. More information on troubleshooting is available at https://aka.ms/VMExtensionCSEWindowsTroubleshoot.

Causa

Os nós de cluster não podem se conectar ao ponto de extremidade usado para baixar as bibliotecas da CNI (Interface de Rede de Contêiner). Na maioria dos casos, esse problema ocorre porque uma solução de virtualização de rede está bloqueando a comunicação SSL (Secure Sockets Layer) ou um certificado SSL.

Solução

Execute um comando Curl para verificar se os nós podem baixar os binários:

Primeiro, tente realizar download de teste do pacote CNI do Azure para Linux a partir do endpoint de espelho oficial.

curl -I https://acs-mirror.azureedge.net/cni/azure-vnet-cni-linux-amd64-v1.0.25.tgz

Resultados:

HTTP/2 200 
content-length: 970752
content-type: application/x-gzip
last-modified: Wed, 22 Jun 2022 00:00:00 GMT
etag: "0x8DA53F1234567"
server: ECAcc (dab/4B9E)
x-cache: HIT
cache-control: public, max-age=86400
accept-ranges: bytes
date: Thu, 05 Jun 2025 00:00:00 GMT

Esse comando verifica se o ponto de extremidade é acessível e retorna os cabeçalhos HTTP. Se você vir uma resposta 200 OK, isso indica que o terminal está acessível.

Em seguida, tente um download com validação e salve o arquivo localmente para mais solução de problemas. Isso ajudará a determinar se a conectividade de saída ou SSL está configurada corretamente.

# Create a temporary directory for testing
mkdir -p /tmp/cni-test

# Download the CNI package to the temp directory
curl -L --fail https://acs-mirror.azureedge.net/cni/azure-vnet-cni-linux-amd64-v1.0.25.tgz --output /tmp/cni-test/azure-vnet-cni-linux-amd64-v1.0.25.tgz && echo "Download successful" || echo "Download failed"

Resultados:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 6495k  100 6495k    0     0  8234k      0 --:--:-- --:--:-- --:--:-- 8230k
Download successful

Verifique o arquivo baixado:

ls -la /tmp/cni-test/
file /tmp/cni-test/azure-vnet-cni-linux-amd64-v1.0.25.tgz

Resultados:

total 6500
drwxr-xr-x 2 user user    4096 Jun 20 10:30 .
drwxrwxrwt 8 root root    4096 Jun 20 10:30 ..
-rw-r--r-- 1 user user 6651392 Jun 20 10:30 azure-vnet-cni-linux-amd64-v1.0.25.tgz

/tmp/cni-test/azure-vnet-cni-linux-amd64-v1.0.25.tgz: gzip compressed data, from Unix, original size modulo 2^32 20070400

Limpe os arquivos de teste:

rm -rf /tmp/cni-test/

Se você não conseguir baixar esses arquivos, verifique se o tráfego é permitido para o ponto de extremidade de download. Para obter mais informações, consulte Regras globais de FQDN/aplicativo necessárias.

Referências