2 votes

Plugin Kubernetes Jenkins - en attente de démarrage : tentative et échec pour tirer l'image

Je suis en train d'utiliser le plugin Kubernetes pour Jenkins, et il semble avoir un problème pour récupérer depuis mon registre Docker privé.

Ceci est un registre privé Harbor "non approuvé" (pas de SSL).

Lorsque j'ai configuré un autre pipeline Jenkins pour récupérer depuis le registre, j'ai dû définir --insecure-registry http://10.3.31.105 --insecure-registry 10.3.31.105 dans le fichier /etc/systemd/system/docker.service.d/docker-options.conf. Je me demande s'il y a quelque chose de spécial que je doive faire pour permettre à Kubernetes d'utiliser un registre non approuvé de manière similaire?

Voici mon pod en cours d'utilisation et l'erreur que je reçois:

[svc.jenkins@node1 ~]$ kubectl get pods
NAME                               READY     STATUS             RESTARTS   AGE
message-service-7d9494544d-fvnkl   0/1       ImagePullBackOff   0          1m
[svc.jenkins@node1 ~]$ kubectl logs message-service-7d9494544d-fvnkl
Error from server (BadRequest): container "message-service" in pod "message-service-7d9494544d-fvnkl" is waiting to start: trying and failing to pull image

Cependant, le job Jenkins se termine avec succès:

Finished Kubernetes deployment
Finished: SUCCESS

0voto

d0bry Points 1434

Votre environnement de workflow manque de secrets Kubernetes.

Kubernetes utilise ces secrets comme informations d'identification pour extraire une image du registre lorsqu'il est exécuté par Jenkins. Il est toujours mauvais de laisser le registre non protégé, donc vous devriez arrêter de fournir des paramètres en ligne de commande pour forcer un registre non sécurisé. Pour utiliser des informations d'identification dans un pipeline, vous n'avez pas besoin de faire quelque chose de spécial, vous y accédez comme vous le feriez pour des informations d'identification stockées dans Jenkins.

J'ai trouvé ce plugin kubernetes-credentials-provider utile, et un autre fonctionnant ici avec le plugin kubernetes-cd.

0voto

lvthillo Points 8424

C'est en fait un peu comme si vous faisiez : Modifiez le fichier /etc/docker/daemon.json et ajoutez :

{
    "insecure-registries" : [ "10.3.31.105:5000" ]
}

Il est recommandé de mettre les options du démon dans le daemon.json et ne pas les ajouter simplement au service de votre démon docker. Vous devrez le faire sur chaque nœud de votre cluster Kubernetes. Cela permettra à Kubernetes de tirer les images des registres non fiables.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X