Harbor企业级部署

前置依赖

Harbor是依赖docker-compose的,所以要先确定我们的环境已经正确的安装和启动了docker和docker-compose。
我这里的环境已经提前装好了,并且也启动了的(docker和docker-compose的安装启动在我的专栏中介绍过,这里不再赘述)


1733898178697.png

安装Harbor

1) 下载安装包

在Harbor的Github官网上去下载一个稳定版本的离线安装包,地址:

https://github.com/goharbor/harbor/releases

我这里下载的是harbor-offline-installer-v2.9.5.tgz这个版本。
解压安装包,新建一个目录用作harbor的安装路径,我这里用了/data/harbor/harbor-2.9.5


1733903355911.png
2)修改harbor配置文件

这里解压过后会有一个harbor配置的临时文件harbor.yml.tmpl,我们拷贝一份将他命名为harbor.yml,按自己的实际环境情况修改其中的hostname,端口,证书路径,管理员密码等配置项,一个示例如下所示:

http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 5000

# https related config
https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /data/harbor/ssl/cert/harbor.david.com.cert
  private_key: /data/harbor/ssl/cert/harbor.david.com.key

# # Uncomment following will enable tls communication between all harbor components
# internal_tls:
#   # set enabled to true means internal tls is enabled
#   enabled: true
#   # put your cert and key files on dir
#   dir: /etc/harbor/tls/internal
#   # enable strong ssl ciphers (default: false)
#   strong_ssl_ciphers: false

# Uncomment external_url if you want to enable external proxy
# And when it enabled the hostname will no longer used
external_url: https://harbor.david.com

# The initial password of Harbor admin
# It only works in first time to install harbor
# Remember Change the admin password from UI after launching Harbor.
harbor_admin_password: Harbor@210

启动Harbor

这里可以先执行prepare脚本检查,然后执行install.sh脚本启动Harbor

运行./prepare脚本,他是用来配置nginx启动HTTPS协议的


image.png

执行./install.sh


image.png

启动完了过后我们可以直接访问Harbor页面额,直接通过地址访问。

配置证书

到这里我们已经可以直接访问使用Harbor了,不过如果我们要使用https的话,就需要我们生成证书了。

生成CA证书(证书颁发机构)

1)在/data/harbor下面创建一个ssl目录用于存放证书

cd /data/harbor
mkdir ssl

2)生成CA根证书

openssl genrsa -out ca.key 4096

3)生成CA证书,注意修改成自己的域名

openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=TW/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.david.com" \
-key ca.key -out ca.crt
生成服务器证书

1)生成服务器端证书私钥

openssl genrsa -out harbor.david.com.key 4096

2)生成证书请求签名
这里同样要注意替换掉CN(common name)这里的的值,把他指定为自己的网址

openssl req -sha512 -new -subj \
"/C=TW/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.david.com" \
-key harbor.david.com.key -out harbor.david.com.csr

3)生成注册表主机的证书
这里生成的是一个v3的扩展文件,操作如下:

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=harbor.david.com
EOF

4)为Harbor主机生成证书
这里要使用v3.ext文件给harbor主机生成证书

openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -
CAcreateserial -in harbor.david.com.csr -out harbor.david.com.crt
为harbor 和 docker 颁发证书

生成ca.crt、harbor.david.com.crt和harbor.david.com.key文件后,必须将它们提供给Harbor和Docker,并重新配置Harbor以使用它们。
将yourdomain.com.crt转换为yourdomain.com.cert,供Docker使用。这是因为Docker守护进程将.crt文件解释为CA证书,.cert文件解释为客户端证书。

#证书转换
openssl x509 -inform PEM -in harbor.david.com.crt -out harbor.david.com.cert

mkdir -p /etc/docker/certs.d/harbor.david.com/

cp harbor.david.com.cert /etc/docker/certs.d/harbor.david.com/
cp harbor.david.com.key /etc/docker/certs.d/harbor.david.com/
cp ca.crt /etc/docker/certs.d/harbor.david.com/

# 重启docker服务:
systemctl daemon-reload
systemctl restart docker

已经安装了Docker Compose,我们也可以在Harbor的安装路径下面通过docker compse命令停止和启动Harbor

docker-compose down
docker-compose up -d

配置访问客户端

最后,在我们要访问的客户端(以Windows系统为例)配置hosts,
打开Windows\System32\drivers\etc下的hosts文件,在里面加上地址配置,示例如下:

#10.0.2.15 192.168.33.90

#127.0.0.1 imes.local.david.cc
# This line is auto added by aTrustAgent, do not modify, or aTrustAgent may unable to work
#127.0.0.1  localhost.sangfor.com.cn


# This line is auto added by aTrustAgent, do not modify, or aTrustAgent may unable to work
127.0.0.1   localhost.sangfor.com.cn
191.168.0.210 harbor.david.com
https://harbor.david.com/

然后,我们在配置过的电脑上就可以通过浏览器访问https://harbor.david.com/来访问Harbor镜像仓库了。

Harbor试用(上传镜像)

这里给出一个实例,我们的机器上有一个nginx.1.19.3的镜像,我们把他上传到Harbor上去,基本命令如下:

#登录harbor的admin账户
docker login harbor.david.com
admin
Harbor@210

# 从一个压缩包加载镜像
docker load -i nginx.1.19.3.alpine.tar
# 给这个镜像打标签
docker tag nginx:1.19.3-alpine harbor.david.com/david/nginx:v1
# 将镜像推送到指定的一个地址
docker push harbor.david.com/david/nginx:v1

推送上去后,通过访问https://harbor.david.com/,登录后可以看到上传后的镜像。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容