部署基于Https的Harbor并使用docker login方式成功登录

背景:在使用VMware Tanzu的环境中,因为vCenter7.0上的DataCenter自带的Harbor没有集成chart包功能,所以需要自行搭建一个Harbor服务器,通过VMware TCA Controller对接,然后给Tanzu K8s 集群使用

VMware大环境版本:

ESXi7.0.2
vCenter7.0.2
NSX-T3.1.1
TCA1.9.5
Tanzu_k8sv1.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

 

②配置主机名、DNS、域名

说明:这里的dyk01.com是我本地搭建的域名服务器的域名,172.32.73.206是我域名服务器的IP。因为VMware vCenter7.0版本开始要求使用域名服务器。

 

③安装docker/docker-compose/openssl

说明:需要先配置公网zypper源(SUSE linux使用zypper管理软件源,类似于yum管理配置软件源)

#zypper install docker

#zypper install docker-compose

#zypper install openssl

④提前更改NTP和openssl配置,防止x509报错 

 

说明:这里我第一次部署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

❷结果如下:

 

❸复制下面两个文件到docker目录下

 

三、安装Harbor

①更改配置文件

#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登录了

 

四、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服务端配置的方式)

 

五、添加docker对私有仓库的支持

①在docker server启动的时候,增加启动参数

#vi /usr/lib/systemd/system/docker.service

--insecure-registry linux03.dyk01.com

 

②更改docker配置

#vi /etc/docker/daemon.json

 

   "insecure-registries":["linux03.dyk01.com"]

}

③重启docker 服务

#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/releasesicon-default.png?t=LA23https://github.com/goharbor/harbor/releases

openSUSE镜像官网:The makers' choice for sysadmins, developers and desktop users.icon-default.png?t=LA23https://www.opensuse.org/

CSDN老哥:他的Linux和我的Linux不一样,遇到的问题和处理方法也不一样

独钓寒江jlshuicon-default.png?t=LA23https://blog.csdn.net/weixin_41765879

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值