赞
踩
无法从 harbor 通过 docker pull
下载镜像。
这可能是一个个例,只有特定网络情况下才会发生的问题。由于我这种网络情况下发生了多次,因此有必要记录下来。
https://IP
提供服务,使用自签名的证书。10.10.1/24
和 10.10.10/24
,HTTPS 服务证书指定的 10.10.10/24
的 IP。10.10.0/24
网段。一开始在 k8s 添加了到 10.10.10/24 的路由,能 ping 通,但是仍然无法 pull。
经过排查网络问题,发现在 Harbor 上响应请求时,找不到 10.10.0/24
网段的服务器,在 Harbor 同样配置路由后解决。配置路由就遇到了 Harbor Https 私有证书配置注意事项 中提过的证书问题。按照注意事项配置后解决。
Linux 通过命令添加路由时都是临时的,重启后就丢了。
临时路由可以测试看看,而且也可以保证不重启的情况下让路由生效。
ip route add 10.10.0.0/24 via 10.10.1.1 dev ens160
其中
dev ens160
可以不提供,会自动选择可用网卡。
本文遇到的问题需要在两个端互相添加路由。
根据自己的网卡名,在 /etc/sysconfig/network-scripts/
下面添加对应的 route-网卡名
配置文件,例如 route-ens160
,添加路由内容,和上面命令一样,就是 ip route add
后面跟着的内容:
10.10.0.0/24 via 10.10.1.1 dev ens160
配置路由后重启网络 systemctl restart network
。
- name: harbor route and ca hosts: docker vars: ca_file: /etc/docker/certs.d/HARBOR_IP/ca.crt route_file: /etc/sysconfig/network-scripts/route-ens160 tasks: - name: Create /etc/docker/certs.d/HARBOR_IP file: path: /etc/docker/certs.d/HARBOR_IP state: directory mode: '0751' - name: copy ca_file copy: src=ca.crt dest={{ ca_file }} - name: copy route_file copy: src=route-ens160 dest={{ route_file }} - name: restart service network service: name: network state: restarted
当前目录需要提供 harbor 的 ca.crt
以及网卡对应的路由配置文件 route-ens160
。
CA 证书路径需要将实际的 IP 替换脚本中的 HARBOR_IP
。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。