簡體   English   中英

如何為 SCDF 配置 Harbor?

[英]How to configure Harbor for SCDF?

我正在嘗試在microk8s 1.18.20中使用帶有SCDF 2.9.1Harbor注冊表。
通過在 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.

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