Vous pouvez utiliser un registre de conteneur externe avec des espaces de cluster TKG.
Dépannage des erreurs lors de l'annulation d'images à partir d'un registre de conteneur
Si vous configurez le TKG avec les certificats approuvés et que vous ajoutez le certificat auto-signé au fichier kubeconfig du cluster, vous devez pouvoir réussir à extraire une image de conteneur à partir d'un registre privé qui utilise ce certificat auto-signé.
kubectl describe pod PODNAME
Cette commande affiche l'état détaillé et les messages d'erreur d'un espace donné. Exemple de tentative d'utilisation d'une image avant d'ajouter des certificats personnalisés au 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
est également visible dans la vue globale de l'état de l'espace :
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 79sLes erreurs « x509 : certificat signé par une autorité inconnue » et « ErrImagePull » indiquent que le cluster n'est pas configuré avec le certificat correct pour se connecter au registre du conteneur privé. Le certificat est manquant ou mal configuré.
Si vous rencontrez des erreurs de connexion à un registre privé après avoir configuré les certificats, vous pouvez vérifier si les certificats appliqués dans la configuration sont appliqués au cluster. Vous pouvez vérifier si les certificats ont été correctement appliqués dans leur configuration à l'aide de SSH.
- Recherchez dans le dossier
/etc/ssl/certs/
les fichiers nomméstkg-<cert_name>.pem
, où<cert_name>
correspond à la propriété « name » du certificat ajouté dansTkgServiceConfiguration
. Si les certificats correspondent à ce qui se trouve dansTkgServiceConfiguration
, et si l'utilisation d'un registre privé ne fonctionne toujours pas, effectuez un diagnostic supplémentaire en réalisant l'étape suivante. - Exécutez le test de connexion openssl suivant sur le serveur cible à l'aide de certificats auto-signés en exécutant la commande
openssl s_client -connect hostname:port_num
, oùhostname
correspond au nom d'hôte/nom DNS du registre privé qui utilise des certificats auto-signés etport_num
correspond au numéro de port sur lequel le service s'exécute (en général, 443 pour HTTPS).Vous pouvez vérifier exactement quelle erreur est renvoyée par openssl lors d'une tentative de connexion au point de terminaison qui utilise des certificats auto-signés, et corriger la situation, par exemple, en ajoutant les certificats appropriés à
TkgServiceConfiguration
. Si le cluster TKG est intégré à un certificat incorrect, vous devrez mettre à jour la configuration avec les certificats corrects, supprimer le cluster TKG, puis le recréer à l'aide de la configuration qui contient les certificats corrects. - Vérifiez que le contenu de la carte de données du secret est codé en base64 double. Un double codage base64 est requis. Si le contenu de la valeur de la carte de données n'est pas doublement codé en base64, le fichier PEM qui en résulte ne peut pas être traité.