就harbor本身部署来说是非常简单的,之前写过详细步骤,这里不再重复。

这里主要是总结一下部署当中遇到的问题,以及如何开启ldap验证。

harbor默认是通过http通信的,当然也支持https,但是需要配置,不太方便。docker默认是通过https通信的。所以在默认情况下,docker跟harbor是不能直接通信的,常用的办法有几种:

  • 在docker客户端修改docker启动参数,添加--insecure-registry=harbor.oupeng.com
  • 在harbor服务端开启https
  • 使用nginx或haproxy代理,在代理上开启https

如果是为了简单方便,而且客户端也可以重启docker,那么直接使用第一种就好。
如果docker客户端服务器上已经跑了各种容器,不能轻易重启docker服务,那么就该使用下面两种了。
如果你有现成的https证书,又有现成的代理服务器,那么直接使用代理就好了,既不用修改客户端,也不用修改服务端。

这是我的nginx代理配置:

# vim /usr/local/nginx/conf/vhosts/harbor.oupeng.com.confupstream harbor-oupeng-com {server 122.14.206.203 weight=10 max_fails=3 fail_timeout=10;
}server {listen 80;server_name harbor.oupeng.com;location / {rewrite ^(.*)$ https://$host$1 permanent;}access_log /usr/local/nginx/logs/harbor.oupeng.com.access.log json;error_log /usr/local/nginx/logs/harbor.oupeng.com.error.log;}server {listen       443 ssl;server_name  harbor.oupeng.com;ssl                  on;ssl_certificate      /usr/local/nginx/conf/keys/oupeng.com.pem;ssl_certificate_key  /usr/local/nginx/conf/keys/oupeng.com.key;ssl_session_timeout  10m;ssl_protocols  SSLv3 TLSv1;ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;ssl_prefer_server_ciphers   on;access_log /usr/local/nginx/logs/harbor.oupeng.com.ssl.access.log json;error_log /usr/local/nginx/logs/harbor.oupeng.com.ssl.error.log error;location / {proxy_pass http://harbor-oupeng-com;proxy_next_upstream error http_502 http_503 http_504 timeout;proxy_redirect          off;proxy_set_header        Host $host;proxy_set_header        X-Real-IP $remote_addr;proxy_set_header        X-Real-Port $remote_port;proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;client_max_body_size    0;client_body_buffer_size 128k;proxy_connect_timeout   600;proxy_send_timeout      600;proxy_read_timeout      600;proxy_buffer_size       4k;proxy_buffers           4 32k;proxy_busy_buffers_size 64k;proxy_temp_file_write_size 64k;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection $connection_upgrade;break;}
}

使用代理之后出现了两个问题:

1、push镜像中途中断报EOF错误。

解决办法:在registry的配置文件里添加一个参数relativeurls: true

# vim /docker/harbor/common/config/registry/config.yml
...
http:addr: :5000relativeurls: truesecret: placeholderdebug:addr: localhost:5001
...# docker-compose down
# docker-compose up -d

2、push镜像中途中断报413 Request Entity Too Largeconnection reset by peer错误。

每次push到一个固定的大小中断,很明显是有哪里设置了限制,由于加代理之前使用正常,所以问题应该在代理的设置上。

解决办法:修改nginx的参数client_max_body_size 0;,这个参数用来限制上传文件大小,设置为0表示不限制。可以查看上面的配置。

以上完成就可以使用admin账户正常pull/push镜像了。


配置LDAP验证

这里也踩到两个坑,按照官方guide修改配置文件auth_mode = ldap_auth,然后添加ldap相关搜索信息,重启harbor。

本以为就可以用ldap账户登录了,尝试登录了一下,发现不行。查看日志,提示验证方式依然为db_auth,也就是本地数据库验证。

后来发现,要使ldap生效,要确认两个文件的设置正确:

# cat /docker/harbor/common/config/adminserver/env
...
AUTH_MODE=ldap_auth
...# cat /docker/harbor/data/config/config.json
...
"auth_mode": "ldap_auth",
...

然而修改配置文件只改变了第一个文件,因此配置没生效。手动修改第二个文件,然后再次重启harbor。

这下好了吧?然而,并没有。

把源码clone下来随意浏览了一下,无意中看到了一张图:

难道要在UI上配置?试试。

竟然好了...配置文件敢情是假动作。


然后,又出现了另外一个问题。在UI上可以正常登陆,但是在终端上无法docker login xxx,就提示来看,是https通信问题。

经过一番排查,最后发现是token验证问题。解决办法,修改token服务的URL协议为https即可。

# vim /docker/harbor/common/config/registry/config.yml
...
auth:token:issuer: harbor-token-issuerrealm: https://harbor.oupeng.com/service/tokenrootcertbundle: /etc/registry/root.crtservice: harbor-registry
...# docker-compose down
# docker-compose up -d

转载于:https://www.cnblogs.com/keithtt/p/7596290.html

部署harbor1.2.0开启ldap验证相关推荐

  1. SQL Server数据库镜像部署 错误1418’处理及证书验证

    SQL Server数据库镜像部署 '数据库镜像'是SQLServer数据库功能最强的一种热备份方法,也是环境要求最高的一种.其配置环节比较麻烦,本人新手研究了三天,中途遇到了许多问题,希望其他第一次 ...

  2. 逃脱只会部署集群系列 —— Kubeadm部署v1.18.0与ETCD操作

    目录 一.Kubeadm部署K8s1.18.0版本 1. 安装要求 2.环境准备 3. docker安装[所有节点都需要安装] 4.docker配置cgroup驱动[所有节点] 5.镜像加速[所有节点 ...

  3. ubuntu 12.04 安装openldap(不开启加密验证)

    背景:公司已经有了openldap的client+server系统,我需要对系统进行备份.保证可用性. 系统环境:ubuntu 12.04 安装准备:berkeley-db 和openldap 版本一 ...

  4. Dubbo 3.0 - 开启下一代云原生微服务

    作者 | 郭浩(项升)  阿里巴巴经济体 RPC 框架负责人 **导读:**本文整理自作者于 2020 年云原生微服务大会上的分享<Dubbo3.0 - 开启下一代云原生微服务>,主要介绍 ...

  5. 使用 Sealos + Longhorn 部署 KubeSphere v3.0.0

    使用 Sealos + Longhorn 部署 KubeSphere v3.0.0 本文来自 KubeSphere 社区用户 Will,演示如何使用 Sealos + Longhorn 部署一个带有持 ...

  6. ASP.Net 2.0窗体身份验证机制详解(FormsAuthentication) (转载)

    ASP.Net 2.0窗体身份验证机制详解(FormsAuthentication) 收藏 转自:http://www.aspxclub.com/l12/c_3689.html 本篇文章介绍了在ASP ...

  7. linux输入influxdb密码,influxdb开启身份验证

    influxdb在刚安装好之后,默认情况下,禁用身份验证,静默忽略所有凭据,并且所有用户都具有所有权限.这样是极不安全的. 我们这里测试通过用户名和密码身份验证方式来提高安全性,但是请注意:在实际生产 ...

  8. 离线方式部署Ambari2.6.0.0

    Hadoop生态圈-离线方式部署Ambari2.6.0.0 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我现在所在的公司用的是CDH管理Hadoop集群,前端时间去面试时发现很多 ...

  9. Anolis OS8.6QU1通过cephadm部署ceph17.2.0分布式块存储(三)添加其它主机和添加mgr节点

    本文尝试在龙蜥Anolis OS8.6QU1上通过cephadm部署ceph17.2.0分布式块存储,实现国产化操作系统上的存储系统构建,本步骤为完成首节点mon节点和图形界面,完成其它节点的基础安装 ...

最新文章

  1. queueing 优化_网站加载性能
  2. mysql优化之sakila测试数据库
  3. 解决问题Can’t connect to local MySQL server through socket
  4. HDU-1232 畅通工程
  5. Javascript 清空input type=file 的值方法
  6. 智慧档案库房库房一体化安全管控平台方案【转载】
  7. java软件制作教程_Minecraft Java版材质包制作教程
  8. AMCL中odom数据处理
  9. android canvas添加文字居中,android Canvas drawText 文字居中
  10. 使用监听器实现一个统计网站在线人数的示例
  11. [转载]屏蔽双显卡笔记本的独显
  12. 大学必拿的几个证书是什么
  13. 企业邮箱如何设置邮件模板
  14. asu在线硕士计算机课程,亚利桑那州立大学将在中国推出在线硕士学历项目 纯中文授课...
  15. linux www服务器配置
  16. 屏幕篇—如何最快速驱动LCD屏
  17. 在php中将5按位与运算,PHP 5.2和PHP 5.3中对大整数的按位运算(Bitwise operations on big integers in PHP 5.2 and PHP 5.3)...
  18. USB Type-C 电力传输电路设计-主机端Type-C保护方案
  19. 软件测试爬虫,【松勤软件自动化测试】Python3-爬虫~selenium\phantomjs\ActionChains百度例子...
  20. Video Modeling with Correlation Networks 阅读

热门文章

  1. 功能测试工作的一点总结
  2. 快速写出较好CSS的5种方法
  3. 如何在国内跑Kubernetes的minikube
  4. idea怎么调成黑色页面
  5. 转:TestLink1.9.3测试用例:Excel转换XML工具二实现代码
  6. (AIDE)Android Eclipse JNI 调用 .so文件加载问题
  7. LockBits in GDI+【转】http://timothyqiu.com/archives/lockbits-in-gdiplus/
  8. Linux 信号随笔
  9. 数据结构——队列(C语言实现)
  10. RUP概述与实际应用的例子