È possibile utilizzare un registro di container esterno con pod del cluster TKG.
Risoluzione degli errori di estrazione delle immagini da un registro di container
Se si configura TKG con i certificati da considerare attendibili e si aggiunge il certificato autofirmato al kubeconfig del cluster, è possibile eseguire correttamente il pull di un'immagine di container da un registro privato che utilizza tale certificato autofirmato.
kubectl describe pod PODNAME
Questo comando mostra in dettaglio lo stato e i messaggi di errore di un determinato pod. Esempio di tentativo di effettuare il pull di un'immagine prima di aggiungere certificati personalizzati al 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
è visibile anche nella vista dello stato generale del 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 79sGli errori "x509: certificato firmato da autorità sconosciuta" e "ErrImagePull" indicano che il cluster non è configurato con il certificato corretto per la connessione al registro di container privato. Il certificato manca oppure non è configurato correttamente.
Se si verificano errori durante la connessione a un registro privato dopo la configurazione dei certificati, è possibile verificare se i certificati applicati nella configurazione sono applicati al cluster. È possibile verificare se i certificati sono stati applicati correttamente nella loro configurazione utilizzando SSH.
- Controllare nella cartella
/etc/ssl/certs/
la presenza di file denominatitkg-<cert_name>.pem
, dove<cert_name>
è la proprietà "name" del certificato aggiunto inTkgServiceConfiguration
. Se i certificati corrispondono a ciò che si trova inTkgServiceConfiguration
e l'utilizzo di un registro privato continua a non funzionare, procedere ulteriormente con la diagnosi eseguendo il passaggio successivo. - Eseguire il test della connessione openssl seguente nel server di destinazione utilizzando certificati autofirmati eseguendo il comando
openssl s_client -connect hostname:port_num
, dovehostname
è il nome host o il nome DNS del registro privato che utilizza certificati autofirmati eport_num
è il numero della porta in cui è in esecuzione il servizio (in genere 443 per HTTPS).È possibile controllare esattamente l'errore restituito da openssl quando si tenta di connettersi all'endpoint che utilizza certificati autofirmati e risolvere la situazione da tale posizione, ad esempio aggiungendo i certificati corretti a
TkgServiceConfiguration
. Se il cluster TKG è incorporato con un certificato errato, sarà necessario aggiornare la configurazione con i certificati corretti, eliminare il cluster TKG e quindi ricrearlo utilizzando la configurazione che contiene i certificati corretti. - Verificare che il contenuto della mappa dei dati del segreto sia codificato con codifica base64 doppia. La codifica base64 doppia è necessaria. Se la codifica dei contenuti del valore della mappa dei dati non è base64 doppia, il file PEM risultante non può essere elaborato.