Você pode usar um registro de contêiner externo com pods de cluster do TKG.
Solucionar problemas de erros ao extrair imagens de um Container Registry
Se você configurar o TKG com os certificados para confiar e adicionar o certificado autoassinado ao cluster kubeconfig, deverá conseguir efetuar pull com êxito de uma imagem de contêiner de um registro privado que usa esse certificado autoassinado.
kubectl describe pod PODNAME
Esse comando mostra o status detalhado e as mensagens de erro para um determinado pod. Um exemplo de tentativa de pull de uma imagem antes de adicionar certificados personalizados ao cluster:
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 33s default-scheduler ... Normal Image 32s image-controller ... Normal Image 15s image-controller ... Normal SuccessfulRealizeNSXResource 7s (x4 over 31s) nsx-container-ncp ... Normal Pulling 7s kubelet Waiting test-gc-e2e-demo-ns/testimage-8862e32f68d66f727d1baf13f7eddef5a5e64bbd-v10612 Warning Failed 4s kubelet failed to get images: ... Error: ... x509: certificate signed by unknown authority
kubectl get pods
ErrImagePull
também fica visível na visualização geral de status do pod:
NAME READY STATUS RESTARTS AGE testimage-nginx-deployment-89d4fcff8-2d9pz 0/1 Pending 0 17s testimage-nginx-deployment-89d4fcff8-7kp9d 0/1 ErrImagePull 0 79s testimage-nginx-deployment-89d4fcff8-7mpkj 0/1 Pending 0 21s testimage-nginx-deployment-89d4fcff8-fszth 0/1 ErrImagePull 0 50s testimage-nginx-deployment-89d4fcff8-sjnjw 0/1 ErrImagePull 0 48s testimage-nginx-deployment-89d4fcff8-xr5kg 0/1 ErrImagePull 0 79sOs erros “x509: certificado assinado por autoridade desconhecida” e “ErrImagePull” indicam que o cluster não está configurado com o certificado correto para se conectar ao registro de contêiner privado. O certificado está ausente ou está configurado incorretamente.
Se você estiver enfrentando erros ao se conectar a um registro privado após configurar os certificados, poderá verificar se os certificados aplicados na configuração são aplicados ao cluster. Você pode verificar se os certificados que foram aplicados em sua configuração foram aplicados corretamente usando o SSH.
- Verifique se há arquivos denominados
tkg-<cert_name>.pem
na pasta/etc/ssl/certs/
, em que<cert_name>
é a propriedade "nome" do certificado adicionado emTkgServiceConfiguration
. Se os certificados corresponderem ao que está noTkgServiceConfiguration
, e o uso de um registro privado ainda não funcionar, faça um diagnóstico adicional concluindo a próxima etapa. - Execute o seguinte teste de conexão openssl para o servidor de destino usando certificados autoassinados, executando o comando
openssl s_client -connect hostname:port_num
, em quehostname
é o nome do host/nome DNS do registro privado que está usando certificados autoassinados eport_num
é o número da porta em que o serviço está sendo executado (geralmente 443 para HTTPS).Você pode verificar exatamente qual erro está sendo retornado pelo openssl ao tentar se conectar ao endpoint que está usando certificados autoassinados e remediar a situação a partir daí, por exemplo, adicionando os certificados corretos ao arquivo
TkgServiceConfiguration
. Se o cluster TKG estiver incorporado com o certificado errado, você precisará atualizar a configuração com os certificados corretos, excluir o cluster TKG e recriá-lo usando a configuração que contém os certificados corretos. - Verifique se o conteúdo do mapa de dados do segredo é codificado em base64 dupla. A codificação base64 dupla é necessária. Se o conteúdo do valor do mapa de dados não for codificado em base6 dupla, o arquivo PEM resultante não poderá ser processado.