部署harbor1.2.0开启ldap验证
就harbor本身部署來說是非常簡單的,之前寫過詳細步驟,這里不再重復。
這里主要是總結(jié)一下部署當中遇到的問題,以及如何開啟ldap驗證。
harbor默認是通過http通信的,當然也支持https,但是需要配置,不太方便。docker默認是通過https通信的。所以在默認情況下,docker跟harbor是不能直接通信的,常用的辦法有幾種:
- 在docker客戶端修改docker啟動參數(shù),添加--insecure-registry=harbor.oupeng.com
- 在harbor服務(wù)端開啟https
- 使用nginx或haproxy代理,在代理上開啟https
如果是為了簡單方便,而且客戶端也可以重啟docker,那么直接使用第一種就好。
如果docker客戶端服務(wù)器上已經(jīng)跑了各種容器,不能輕易重啟docker服務(wù),那么就該使用下面兩種了。
如果你有現(xiàn)成的https證書,又有現(xiàn)成的代理服務(wù)器,那么直接使用代理就好了,既不用修改客戶端,也不用修改服務(wù)端。
這是我的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;} }使用代理之后出現(xiàn)了兩個問題:
1、push鏡像中途中斷報EOF錯誤。
解決辦法:在registry的配置文件里添加一個參數(shù)relativeurls: true。
# vim /docker/harbor/common/config/registry/config.yml ... http:addr: :5000relativeurls: truesecret: placeholderdebug:addr: localhost:5001 ...# docker-compose down # docker-compose up -d2、push鏡像中途中斷報413 Request Entity Too Large和connection reset by peer錯誤。
每次push到一個固定的大小中斷,很明顯是有哪里設(shè)置了限制,由于加代理之前使用正常,所以問題應(yīng)該在代理的設(shè)置上。
解決辦法:修改nginx的參數(shù)client_max_body_size 0;,這個參數(shù)用來限制上傳文件大小,設(shè)置為0表示不限制。可以查看上面的配置。
以上完成就可以使用admin賬戶正常pull/push鏡像了。
配置LDAP驗證
這里也踩到兩個坑,按照官方guide修改配置文件auth_mode = ldap_auth,然后添加ldap相關(guān)搜索信息,重啟harbor。
本以為就可以用ldap賬戶登錄了,嘗試登錄了一下,發(fā)現(xiàn)不行。查看日志,提示驗證方式依然為db_auth,也就是本地數(shù)據(jù)庫驗證。
后來發(fā)現(xiàn),要使ldap生效,要確認兩個文件的設(shè)置正確:
# 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上配置?試試。
竟然好了...配置文件敢情是假動作。
然后,又出現(xiàn)了另外一個問題。在UI上可以正常登陸,但是在終端上無法docker login xxx,就提示來看,是https通信問題。
經(jīng)過一番排查,最后發(fā)現(xiàn)是token驗證問題。解決辦法,修改token服務(wù)的URL協(xié)議為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轉(zhuǎn)載于:https://www.cnblogs.com/keithtt/p/7596290.html
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的部署harbor1.2.0开启ldap验证的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [hiho1159] Poker
- 下一篇: 迁移笔记到博客