簡體   English   中英

Openshift:TLS錯誤從其自身的注冊表中提取Docker映像

[英]Openshift: TLS Errors pulling Docker Image from it's own registry

我們正在嘗試為其中一個應用程序(在Openshift中運行)建立構建管道,並且存在一些TLS問題。

我們正在使用Jenkins為此應用程序構建docker映像,然后將映像推送到Openshift Registry。 到目前為止,這是我們所做的:

將Openshift主證書復制到Jenkins:

mkdir -p /etc/docker/certs.d/docker-registry-default.router.default.svc.cluster.local
cd /etc/docker/certs.d/docker-registry-default.router.default.svc.cluster.local
scp root@<OPENSHIFT_MASTER_IP>:/etc/origin/master/ca.crt ca.crt

從詹金斯成功登錄到注冊表:

bash-4.2$ docker login -u <USER> -p <OC_TOKEN> docker-registry-default.router.default.svc.cluster.local
Login Succeeded

將圖像從詹金斯推送到注冊表(也可以):

docker push docker-registry-default.router.default.svc.cluster.local/project/app:latest

通過Openshift UI部署圖像也可以,因為在部署圖像時我能夠為我的應用選擇NamespaceImageStreamTag

但是,pod啟動時會發生以下錯誤:

Failed to pull image "docker-registry.default.svc:5000/project/app@sha256:8fd9759XXXXXXXXXXXXXXXf7fXXXXXXXXXXXXXXXXXXXXX": rpc error: code = Unknown desc = Get https://docker-registry.default.svc:5000/v2/: net/http: TLS handshake timeout

知道為什么在Openshift可以看到映像但無法在部署時提取映像的情況下,為什么我會看到與TLS相關的錯誤嗎?

任何幫助,將不勝感激。

這里的問題是,Openshift Application節點與Master和Infra節點位於不同的子網上。

解決方法是將“應用程序”節點移到與“主節點”和“基礎設施”節點相同的子網中,然后重建群集。

這樣做后一切正常,盡管如果需要在不同子網中有節點,則可以在openshift-ansible庫存文件中對其進行配置。

https://docs.okd.io/latest/install/configuring_inventory_file.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM