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

La commande suivante peut vous aider à déterminer si l'image de conteneur a été correctement issue d'une charge de travail d'un groupe :
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
Lors de l'exécution de la commande suivante :
kubectl get pods
L'erreur 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          79s
Les 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.

Deux étapes d'investigation peuvent être réalisées en se connectant à un nœud worker via SSH.
  1. Recherchez dans le dossier /etc/ssl/certs/ les fichiers nommés tkg-<cert_name>.pem, où <cert_name> correspond à la propriété « name » du certificat ajouté dans TkgServiceConfiguration. Si les certificats correspondent à ce qui se trouve dans TkgServiceConfiguration, et si l'utilisation d'un registre privé ne fonctionne toujours pas, effectuez un diagnostic supplémentaire en réalisant l'étape suivante.
  2. 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 et port_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.

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