[英]How to configure Harbor for SCDF?
我正在嘗試在microk8s 1.18.20
中使用帶有SCDF 2.9.1
的Harbor
注冊表。
通過在 SCDF 服務器配置 Map 中添加以下內容,我成功配置 SCDF 以檢索我的應用程序的 Docker 標簽:
spring:
cloud:
dataflow:
container:
registry-configurations:
harbor:
registry-host: myhost
authorization-type: dockeroauth2
user: myuser
secret: mypwd
disable-ssl-verification: true
extra:
"registryAuthUri" : 'https://myhost/service/token?service=harbor-registry&scope=repository:{repository}:pull'
然后為了拉取圖像,我用這個命令行創建了一個秘密(在配置了我的本地 Docker 守護程序之后):
microk8s.kubectl create secret generic harbor-credentials \
--from-file=.dockerconfigjson=/home/myuser/.docker/config.json \
--type=kubernetes.io/dockerconfigjson
並更改 Skipper 和 SCDF Config Map 以將其用於:
spring.cloud.skipper.server.platform.kubernetes.accounts.default.imagePullSecret=harbor-credentials
spring.cloud.dataflow.task.platform.kubernetes.accounts.default.imagePullSecret=harbor-credentials
但是當我嘗試在 stream 中部署我的應用程序時,在拉取圖像時出現此錯誤:
Head "https://myhost/v2/scdf/myapp/manifests/latest": x509: certificate signed by unknown authority
我必須如何以及在哪里配置 Harbor 自簽名證書,以便 SCDF/Skipper 可以部署應用程序?
理想情況下,我也希望刪除disable-ssl-verification: true
for Docker 標簽
解決方案非常簡單:我只需要復制/ets/ssl/certs
目錄中的 Harbor ca.crt
文件(從 Harbor UI 下載)。
您也可以直接創建密鑰,而無需配置 Docker 守護程序,例如:
microk8s.kubectl create secret docker-registry harbor-credentials \
--docker-server=hostname \
--docker-username='user' \
--docker-password=pwd
此外,如果您想使用 Harbor 作為 docker.io 中的 OCI 映像的代理,您可以通過在安裝期間添加這些屬性來一次性配置 SCDF(當然是在配置 Harbor 代理緩存項目dockerhub-proxy
之后):
global.imageRegistry = hostname/dockerhub-proxy
global.imagePullSecrets = [harbor-credentials]
在這種情況下,您的用戶應該有權拉取您需要的每個 Harbor 項目。
然后所有的圖片都會從Harbor中拉出來,包括kafka、skipper、zookeeper等……
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.