问题标签 [harbor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
954 浏览

docker - 港口:拉取打开图像需要登录

我正在尝试访问由 Harbor 提供的私有 docker 注册表。注销时,拉取n.n.n.n/some_path/some_image:some_tag将导致找不到图像的错误消息。图片不是私人的。当我登录时

拉动工作正常。

我认为这是错误的(或者是吗?)。我是否错误地配置了 Harbor 服务器?

0 投票
1 回答
329 浏览

docker - 为什么不能从 Rancher 服务器目录安装 Harbor?

使用新版本的牧场主服务器。一个主节点和两个代理节点。

从目录安装Harbor时,服务都变得不健康,为什么?

在此处输入图像描述 午餐前所有配置都使用默认选项: 在此处输入图像描述

0 投票
1 回答
1673 浏览

macos - 为什么不能在普通 HTTP 情况下登录到 Harbor 服务器表单客户端?

在主机上安装了港口。使用纯 HTTP 协议。

IP是192.168.33.10

我可以从港口服务器本身登录:

并且可以从浏览器访问它:

但无法从其他客户端(Mac,安装 docker 使用它)登录。错误信息是:

从 Harbor 文档中有这样的通知:

https://github.com/vmware/harbor/blob/master/docs/installation_guide.md

重要提示:Harbor 的默认安装使用 HTTP - 因此,您需要将选项 --insecure-registry 添加到客户端的 Docker 守护程序并重新启动 Docker 服务。

港口主机和客户端主机集/etc/docker/daemon.json

并重新启动泊坞窗。但是,它不起作用。

如果现在不在HTTPS协议下设置harbor,有没有办法从客户端正确访问它?

0 投票
0 回答
2213 浏览

docker - 如何从 Kubernetes 集群中的 Harbor 注册表获取 docker 镜像?

在一台主机(192.168.33.10)上安装了 Harbor。

在其他主机上安装了 Kubernetes 集群。

成功将 docker 镜像从客户端推送到 Harbor 主机。在 Kubernetes 主控主机上,我还可以成功地从 Harbor 主机拉取该映像:

但我创建了一个 Kubernetes 部署 yaml 文件:

然后运行kubectl create -f deployment.yaml

从 Kubernetes 仪表板显示:

在此处输入图像描述

我已经设置好insecure-registries/etc/docker/daemon.json

如何从 Kubernetes 获得它?


编辑

我在 Rancher 服务器集群上使用 Kubernetes。即使我设置了Harbor服务器的IP,用户名和密码,它也无法访问:

在此处输入图像描述

0 投票
2 回答
981 浏览

kubernetes - minikube 无法访问远程 Harbor 注册表

甚至使用 启动 minikube minikube start --insecure-registry "<HARBOR_HOST_IP>",当尝试运行包含image类似路径的部署 yaml 文件时<HARBOR_HOST_IP>/app/server,出现错误:

无法拉取图像“[HARBOR_IP]/app/server”:rpc 错误:代码 = 2 desc = 来自守护进程的错误响应:{“message”:“获取https://[HARBOR_IP]/v1/_ping:拨打 tcp [HARBOR_IP ]:443: getsockopt: 连接被拒绝"} 同步 pod 时出错

如何insecure-registry在 minikube 中正确设置?


编辑

使用 80 端口标记当前 docker 映像:

将其推送到 Harbor 注册服务器:

不幸的是,远程 Harbor 主机被拒绝:

甚至添加<HARBOR_HOST_IP>:80到本地insecure-registries列表中。

0 投票
2 回答
547 浏览

docker - VMWare Harbor:如何将注册表指向特定目录以用作数据存储

我正在将 VMWare Harbor 设置为映像注册表(就像 docker 受信任的注册表一样),我不确定它当前配置在哪里存储推送后的映像。

我找不到有关如何执行此操作的文档,所以我的问题是:我将如何映射 Harbor 以将图像存储在(/data01)已经为图像分配磁盘空间的特定目录中?

0 投票
1 回答
694 浏览

docker - 无法访问 Kubernetes 集群上的新 Harbor 部署

第一次尝试 VMWare 的 Harbor 注册服务器,并将其作为新 Kubernetes 集群上的部署进行尝试。

遵循Harbor on Kubernetes指南后,所有 Harbor 资源都已应用到 k8s 集群上,并且可以看到运行良好。但是,我目前无法从网络浏览器访问 Harbour ui(我只是得到“无法连接”)。我的猜测是安全性设置不正确,缺少某些东西或放在错误的地方?

make/harbor.cfg文件配置为:

hostname = k8s-dp-2# 这是运行 Harbor 的工作节点..

ui_url_protocol = https

ssl_cert = /path/to/cert/on/host/harbor.crt

ssl_cert_key = /path/to/cert/on/host/harbor.key

secretkey_path = /data

我假设上面证书的路径是主机上的路径,python 脚本将从该路径获取文件然后进行 YAML 构建?

- - 更新 - -

在评论中给出建议后,我现在已经在 k8s 集群中配置了一个 nginx 入口控制器。添加这个入口控制器后,我更新了 Harbor 配置以使用 http 而不再使用 https,因为 https 部分现在应该由 nginx 入口控制器处理。然而,随着这些配置更改到位,我仍然无法通过 https 访问 Harbor 服务,但我现在可以通过 kubernetes 集群的 http 端口调用 Harbor 服务。请参阅下面的测试

# kubectl get svc -n=nginx-ingress NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx-ingress NodePort 10.103.165.23 <none> 80:31819/TCP,443:30435/TCP 20h

测试调用 1:

测试呼叫 2:

测试电话 3:

测试呼叫 4:

0 投票
1 回答
40 浏览

docker - 为什么直接输入在harbor中不起作用?

我使用 Docker 登录--username=xx --password=xx 192.168.0.92:7082 ,但它不起作用!

我使用 Docker login192.168.0.92:7082或 docker login --username=xx 192.168.0.92:7082。可以登陆harbor了,不知道为什么?是不是必须用docker login然后输入用户名再输入密码?为什么直接输入不行?</p>

0 投票
1 回答
3171 浏览

docker - 使用 Harbor 复制时出现 401“需要身份验证”

我已经使用 vmware-harbor v1.5.0 部署了一个私有 docker 注册表。虽然它可以与大多数功能一起使用,例如登录和拉/推图像,但是当我尝试使用 [管理] -> [复制] 时,总是会出现“需要身份验证”的错误。

以下是港口复制错误详细信息

2018-08-06T06:57:41Z [INFO] 初始化完成:存储库:ops/test,标签:[3.4.11],源注册表:URL - http ://registry.xx.com insecure-true,目标注册表: URL - https://registry-slave.xx.com insecure-false

2018-08-06T06:57:41Z [警告] 在目标注册表上创建项目操作时状态码为 409,尝试执行下一步

2018-08-06T06:57:41Z [错误] [job_logger.go:81]:从源注册表中提取 ops/zookeeper:3.4.11 的清单时发生错误:401 {"errors":[{"code": "UNAUTHORIZED","message":"authentication required","detail":[{"Type":"repository","Class":"","Name":"ops/test","Action":"pull "}]}]


如上所述,UNAUTHORIZED 错误似乎是由于从本地提取图像而不是由于远程引起的。事实上,远程注册中心已经通过了【管理】->【注册中心】创建页面中的“测试连接”。

我想知道,是否有一些指定的配置应该设置为使用复制功能?从本地提取图像时使用了哪个角色?


所以我尝试阅读harbor源代码并在第230行的jobservice/job/impl/replication/transfer.go中找到错误消息引发点:

acceptMediaTypes := []string{schema1.MediaTypeManifest, schema2.MediaTypeManifest} digest, mediaType, payload, err := t.srcRegistry.PullManifest(tag, acceptMediaTypes) if err != nil { t.logger.Errorf("an error occurred while pulling manifest of %s:%s from source registry: %v", t.repository.name, tag, err) return "", nil, err

如上代码,似乎从来没有考虑过 401 http 代码,acceptMediaTypes 是一些处理媒体类型的 http 标头,而不是身份验证。那么harbor如何从本地提取图像?


环境

linux:Red Hat Enterprise Linux Server 7.5 版(迈坡)

港口:v1.5.0

码头工人(客户端和服务器):17.12.1-ce


网络拓扑

nginx (https:443) -> 港口 (http:8082)

nginx和harbor都部署在同一个KVM上

“registry-test.xx.com”在 DNS 中解析


我更想知道有人成功使用harbor的复制功能...

所以任何人都可以帮我或只是一些提示?非常感谢~


更多细节:08-07

尝试从本地 KVM 获取一些 wireshark 信息

复制期间的 pcap

如图所示,“/service/token”请求已经发送,并且得到了正确的token,但是后面的manifest请求没有携带anthenticate token,所以失败了。所以我不知道令牌缓存发生了什么。

也许我需要从common/utils/registry/auth/tokenauthorizer.go阅读更多代码细节

0 投票
2 回答
586 浏览

docker - Harbor 注册表安装/升级

我最近开始使用名为 Harbor 的 docker 镜像注册表。我找不到任何与此相关的标签。

我的场景:在其中一台工作的服务器中,安装了 Harbor,以及 docker、docker compose 等。Harbor 站点运行良好。Harbor 本身基本上就是一个容器,这意味着可以在服务器上运行多个容器。我需要为开发团队提供 Harbor v1.7。从安全角度来看,它更好,并且具有良好的 LDAP 集成。我们托管的Harbor是非常旧的版本:0.4.5。

我的问题:

我搜索并找不到包含两个容器的方法,只有如何升级。如果前者是可能的,那么您能否建议我应该如何去做?需要更改哪些配置文件等?任何链接也将不胜感激。目前所有的选择都是升级现有的容器,这是更多的工作。目前我的目标是盲目的。由于要求是使用 postgressql 的 v1.7,而 mysql 只使用到 v1.5。如果我进行升级,是否会在表、架构和数据库结构方面引起很多问题?