1.首先下载docker-compose
#下载docker-compose
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#给docker-compose赋予可执行权限.\
cd /usr/local/bin/
chmod +x docker-compose
#查看docker-compose版本号
2.下载harbor离线安装包
Releases · goharbor/harbor · GitHub
#从github上下载harbor离线安装包
https://github.com/goharbor/harbor/releases
Releases · goharbor/harbor · GitHub
3.将离线安装包上传到要安装harbor的镜像服务器,并进行解压
#解压离线安装包
[root@gitlab /zpf/harbor/harbor] tar xf harbor-offline-installer-v2.7.3.tgz
[root@gitlab /zpf/harbor/harbor] cd harbor/
[root@gitlab /zpf/harbor/harbor]$ls
common common.sh docker-compose.yml harbor.v2.7.3.tar.gz harbor.yml install.sh LICENSE prepare
4.修改配置文件并进行预加载
[root@gitlab /zpf/harbor/harbor]$vim harbor.yml
#修改host地址
hostname: registry.985888.top
#开启访问端口.
# http related config
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 80
#开启https证书访问,这里的证书可以申请免费证书解析一个内网地址就行,配置完成后访问80端口会自动跳转到443
# https related config
https:
# https port for harbor, default is 443
port: 443
# The path of cert and key files for nginx
certificate: /etc/ssl/certs/harbor_ssl/registry.985888.top.crt
private_key: /etc/ssl/certs/harbor_ssl/registry.985888.top.key
#修改admin用户登陆密码
36 harbor_admin_password: yaochizaocan!
#修改数据存储目录,(这里可以使用分布式存储进行数据盘挂载.)
55 data_volume: /data
#预加载配置
[root@gitlab /zpf/harbor/harbor]$./prepare
#安装harbor镜像仓库(这里本质使用的是docker-compose进行安装)
[root@gitlab /zpf/harbor/harbor]$./install.sh
5.验证是否安装成功
[root@gitlab /zpf/harbor/harbor]$ps -ef |grep harbor
10000 29491 29421 0 16:35 ? 00:00:00 /home/harbor/harbor_registryctl -c /etc/registryctl/config.yml
10000 29663 29635 0 16:35 ? 00:00:03 /harbor/harbor_core
10000 29957 29938 0 16:36 ? 00:00:07 /harbor/harbor_jobservice -c /etc/jobservice/config.yml
root 81780 9934 0 19:22 pts/1 00:00:00 grep --color=auto harbor
[root@registry /zpf/harbor]$netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:1514 0.0.0.0:* LISTEN 100170/docker-proxy
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 100701/docker-proxy
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1043/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1159/master
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 100675/docker-proxy
tcp6 0 0 :::80 :::* LISTEN 100708/docker-proxy
tcp6 0 0 :::22 :::* LISTEN 1043/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1159/master
tcp6 0 0 :::443 :::* LISTEN 100683/docker-proxy
使用浏览器查看是否安装成功
6.重点说明一下,
这里如果要在其他docker集群中(客户端非harbor服务端)使用的话需要做一些设置.
[root@master /etc/docker]$pwd
/etc/docker
[root@master /etc/docker]$cat daemon.json
{
"registry-mirrors": ["https://abt201l5.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.75.35:8858"]
}
这里做一个安全地址的配置.将内网的harbor镜像仓库配置到docker配置文件中.
systemctl daemon-reload
systemctl restart docker
重启 kubelet
#如果k8s集群报错
[root@master /etc/docker]$kubectl get po
The connection to the server lb.kubesphere.local:6443 was refused - did you specify the right host or port?
#启动一下kubelet服务即可
systemctl restart kubelet.service
7.k8s集群中创建secret用于容器镜像的拉取
# 创建 harbor 访问账号密码(需要将下访问的配置信息改成你自己的)
kubectl create secret docker-registry harbor-secret --docker-server=192.168.75.35:8858 --docker-username=admin --docker-password=yaochizaocan! -n kube-devops