Плагин Kubernetes Jenkins - ждет начала: пытается и не может тянуть изображение - PullRequest
0 голосов
/ 28 июня 2018

Я использую плагин Kubernetes для Jenkins, и, похоже, у меня проблема с извлечением из моего личного реестра Docker.

Это частный реестр Harbor, не имеющий доверия (без SSL).

Когда я получил еще один конвейер Jenkins для извлечения из реестра, мне пришлось установить --insecure-registry http://10.3.31.105 --insecure-registry 10.3.31.105 в файле /etc/systemd/system/docker.service.d/docker-options.conf. Интересно, есть ли что-то особенное, что мне нужно сделать, чтобы позволить Kubernetes использовать ненадежный реестр аналогичным образом?

Это мой модуль в использовании и ошибка, которую я получаю:

[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

Однако задание Jenkins успешно завершается:

Finished Kubernetes deployment
Finished: SUCCESS

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Это немного похоже на то, что вы делали: Отредактируйте файл /etc/docker/daemon.json и добавьте:

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

Рекомендуется помещать опции демона в daemon.json, а не просто добавлять их в службу демона Docker. Это необходимо сделать на каждом узле в вашем кластере Kubernetes. Это позволит kubernetes получать изображения из ненадежных реестров.

0 голосов
/ 28 июня 2018

В вашей рабочей среде нет секретов Kubernetes .

Kubernetes используют эти секреты в качестве учетных данных, чтобы получить изображение реестра при исполнении Дженкинс. Оставлять реестр незащищенным всегда плохая привычка, поэтому вам следует прекратить предоставлять параметры командной строки, чтобы вызвать небезопасный реестр. Чтобы использовать учетные данные в конвейере, вам не нужно делать ничего особенного, Вы получаете к ним доступ так же, как и к учетным данным, хранящимся в Jenkins.

Я нашел этот kubernetes-credentials-provider-plugin полезным и другой работающий kubernetes-cd-plugin здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...