пятница, 25 июля 2025 г.

ContainerD не доверяет self-signed сертификату GitLab Container Registry

 Если вы столкнулись с ошибкой ImageBackOff:

3s          Warning   Failed      pod/flask-demo-57b54f64dd-mjtt4   Failed to pull image "<fqdn_name>:5005/contoso/k8sdemo/demowebsrv": rpc error: code = Unknown desc = failed to pull and unpack image "<fqdn_name>:5005/contoso/k8sdemo/demowebsrv:latest": failed to resolve reference "<fqdn_name>:5005/contoso/k8sdemo/demowebsrv:latest": failed to do request: Head "https://<fqdn_name>:5005/v2/contoso/k8sdemo/demowebsrv/manifests/latest": tls: failed to verify certificate: x509: certificate signed by unknown authority


проблема возникает из-за сертификатов. В тестовых окружениях решается путём конфигурации config.toml:

[plugins."io.containerd.grpc.v1.cri".registry.configs."<fqdn_name>".tls]

  insecure_skip_verify = true


На Prod, конечно, надо решать вопрос с цепочкой доверия. 

Сказ о том, как потратить полторы недели или внимательно пиши/читай конфиги.

В какой-то момент мне понадобилось стащить образ из self-hosted GitLab container registry.

И это был ад - одна и та же ошибка: "...

4m35s       Warning   Failed      pod/flask-demo-59c559bc5-68p7d   Failed to pull image "<fqdn_name>:5005/contoso/k8sdemo/demowebsrv:latest": rpc error: code = Unknown desc = failed to pull and unpack image "<fqdn_name>:5005/contoso/k8sdemo/demowebsrv:latest": failed to resolve reference "<fqdn_name>:5005/contoso/k8sdemo/demowebsrv:latest": unexpected status from HEAD request to http://<fqdn_name>:5005/v2/contoso/k8sdemo/demowebsrv/manifests/latest: 400 Bad Request ..."

При этом образа загружались в репозитарий "на ура".

Я долго не мог понять что-это за ошибка, откуда она лезет. Искал косяки в конфигах nginx, конфигурации gitlab, перерыл тонны форумов и видео - и НИ-ЧЕ-ГО.

А потом я зашел в config.toml на хостах k8s про который забыл.



Вместо https я указал http и залил на серваки.... *face palm*