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.

O comando a seguir pode ajudar você a determinar se a imagem de contêiner foi extraída com êxito para uma carga de trabalho do Pod:
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
E, ao executar o seguinte comando:
kubectl get pods
O erro 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          79s
Os 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.

Duas etapas de investigação podem ser realizadas conectando-se a um nó do trabalhador por meio de SSH.
  1. Verifique se há arquivos denominados tkg-<cert_name>.pem na pasta /etc/ssl/certs/, em que <cert_name> é a propriedade "nome" do certificado adicionado em TkgServiceConfiguration. Se os certificados corresponderem ao que está no TkgServiceConfiguration, e o uso de um registro privado ainda não funcionar, faça um diagnóstico adicional concluindo a próxima etapa.
  2. 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 que hostname é o nome do host/nome DNS do registro privado que está usando certificados autoassinados e port_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.

  3. 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.