脚本宝典收集整理的这篇文章主要介绍了部署基于Https的Harbor并使用docker login方式成功登录,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
背景:在使用VMware Tanzu的环境中,因为vcenter7.0上的DataCenter自带的Harbor没有集成chart包功能,所以需要自行搭建一个Harbor服务器,通过VMware TCA Controller对接,然后给Tanzu K8s 集群使用
VMware大环境版本:
ESXi | 7.0.2 |
vCenter | 7.0.2 |
NSX-t | 3.1.1 |
TCA | 1.9.5 |
Tanzu_k8s | v1.19.1 |
TKG_k8s | v1.20.2 |
操作系统版本: Linux (oPEn SUSE 15.2)
Harbor版本: v2.3.2
#cd /opt;mkdir harbor
#cd harbor
#tar -zxf harbor-offline-installer-v2.3.2.tgz
#ll
说明:这里的dyk01.COM是我本地搭建的域名服务器的域名,172.32.73.206是我域名服务器的IP。因为VMware vCenter7.0版本开始要求使用域名服务器。
说明:需要先配置公网zypper源(SUSE linux使用zypper管理软件源,类似于yum管理配置软件源)
#zypper install docker
#zypper install docker-compose
#zypper install openssl
说明:这里我第一次部署Harbor之后,发现docker login方式登录不了,报错x509证书错误。实际原因是我客户端的时间早于Harbor服务器的时间,客户端登录时间早于证书发布时间,这里需要把环境上的所有时间保持一致。202.112.10.36是我环境的NTP服务器
NTP
#zypper install ntp
#ntpdate 202.112.10.36
还有下面这个报错,需要更改openssl配置
x509: cannot validate certificate because of not containing any IP SANs
在openssl.cnf配置文件里的v3_ca下添加subjectAltName属性,ip为本机地址
subjectAltName = IP:172.32.73.203
具体这七个证书文件是干啥的可以看文末的官方解释说明
#cd /opt/harbor/harbor;mkdir certs
#cd certs
①
#openssl genrsa -out ca.key 4096
②
#openssl req -x509 -new -nodes -sha512 -days 3650
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=linux03.dyk01.com"
-key ca.key
-out ca.crt
③
#openssl genrsa -out linux03.dyk01.com.key 4096
④
#openssl req -sha512 -new
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=linux03.dyk01.com"
-key linux03.dyk01.com.key
-out linux03.dyk01.com.csr
⑤
#cat > v3.ext <<-EOF
authorITyKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyusage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=linux03.dyk01.com
DNS.2=linux03.dyk01
DNS.3=linux03
EOF
⑥
#openssl x509 -req -sha512 -days 3650
-extfile v3.ext
-CA ca.crt -CAkey ca.key -CAcreateserial
-in linux03.dyk01.com.csr
-out linux03.dyk01.com.crt
⑦
#openssl x509 -inform PEM -in linux03.dyk01.com.crt -out linux03.dyk01.com.cert
#cd /opt/harbor/harbor
#cp harbor.yML.tmpl harbor.yml
#vi harbor.yml
更改如下标红部分
以及启用chart包功能,在这个配置文件的105行附近
#./install.sh --with-chartmuseum
这里完成之后就可以使用浏览器就行登录访问了,域名或者IP都可以,一般搞到这里就可以了
https://computer01.dyk01.com
https://172.32.73.200
!!!但是TCA的Taznu集群使用Harbor是需要使用docker LOGin方式登录才行!!!
使用docker login登录刚开始会出现很多报错,在步骤四解决后才可以正常使用docker login登录了
①报错Error response From daemon: Get "https://172.32.73.200/v2/": x509: cannot validate certificate for 172.32.73.200 because it doesn't contain any IP SANs
步骤一第④步中解决,更改openssl配置文件
②报错Error response from daemon: Get "https://linux03.dyk01.com/v2/": x509: certificate signed by unknown authority
步骤一第④步中解决,保持环境中设备时间一致
③使用docker login命令登录报错连接拒绝
Error reponse from daemon: Get "htttps://computer01.dyk01.com/v2/": dial tcp 172.32.73.200:443: connect: connection refuesd
在步骤五解决(后来发现通过拷贝证书的方式也能解决,但是Vmware Tanzu集群里那么多集群,不知道考给谁,所以还是通过更改Harbor服务端配置的方式)
#vi /usr/lib/systemd/System/docker.service
--insecure-registry linux03.dyk01.com
#vi /etc/docker/daemon.json
{
"insecure-registries":["linux03.dyk01.com"]
}
#systemctl daemon-reload
#systemctl restart docker
#docker restart $(docker ps -aq)
至此:docker login就可以登录成功了,通过TCA controller对接后,Tanzu k8s集群就可以使用这个这个Harbor上的镜像和chart包了!
参考:
Harbor官方文档:Harbor docs | configure HTTPS Access to Harbor
Harbor软件包下载地址:https://github.com/goharbor/harbor/releaseshttps://github.com/goharbor/harbor/releases
openSUSE镜像官网:The makers' choice for sysadmins, developers and desktop users.https://www.opensuse.org/
CSDN老哥:他的Linux和我的Linux不一样,遇到的问题和处理方法也不一样
独钓寒江jlshuhttps://blog.csdn.net/weixin_41765879
以上是脚本宝典为你收集整理的部署基于Https的Harbor并使用docker login方式成功登录全部内容,希望文章能够帮你解决部署基于Https的Harbor并使用docker login方式成功登录所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。