功能使用如图位置:
图片
如果使用版本低v20.10.10的Docker在线/离线安装Harbor 2.9.0,则可能会遇到Harbor数据库容器无法启动的问题。此问题正在 (#19141) 进行跟踪。有关此特定问题的更多详细信息,请访问此页面(timescale/timescaledb-docker-ha#260)。
为避免此问题,建议在将 Harbor v20.10.10 与在线/离线安装程序一起使用时,确保 Docker 版本等于或大于 2.9.0。
适用于多个版本,离线安装的步骤基本没什么变化。
$ sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
$ sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab$ swapoff -a
$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo$ wget http://mirrors.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo$ yum clean all
$ mkdir docker-ce$ yum install -y docker-ce --downloadonly --downloaddir=./docker-ce/$ yum install -y rpm/*.rpm
$ systemctl enable --now docker
$ cat /etc/docker/daemon.json { "registry-mirrors": ["http://127.0.0.1:65001"], "insecure-registries": ["192.168.2.19:443","134.194.15.150:1021"], "storage-driver": "overlay2", "exec-opts": ["native.cgroupdriver=systemd"] , "graph": "/dcos/data/docker", "log-driver": "json-file", "log-opts": { "max-size": "500m" }}
$ systemctl daemon-reload && systemctl restart docker
docker-compose的版本在1.18.0+
$ wget https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64$ mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose$ chmod +x /usr/local/bin/docker-compose$ docker-compose -vdocker-compose version 1.29.2, build 5becea4c
配置3个必要的内核参数,其他内核参数可自行添加。
$ modprobe br_netfilter #加载内核模块(临时)$ cat > /etc/sysctl.conf << EOFnet.ipv4.ip_forward = 1net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOF $ sysctl -p
net.ipv4.ip_forward:开启路由转发(不配置该参数,当主机重启后,服务状态正常,却无法访问到服务器)
https模式需要签发证书,本处使用cfssl向Harbor签发证书,
下载二进制可执行文件并放入到/usr/local/bin/下并给执行权限即完成。
$ wget -c https://github.com/cloudflare/cfssl/releases/download/v1.6.0/cfssl_1.6.0_linux_amd64 -O /usr/local/bin/cfssl$ wget -c https://github.com/cloudflare/cfssl/releases/download/v1.6.0/cfssljson_1.6.0_linux_amd64 -O /usr/local/bin/cfssljson$ wget -c https://github.com/cloudflare/cfssl/releases/download/v1.6.0/cfssl-certinfo_1.6.0_linux_amd64 -O /usr/local/bin/cfssl-certinfo$ chmod +x /usr/local/bin/cfssl*cfssl versionVersion: 1.6.0Runtime: go1.18
http模式可不需要进行本处操作,生产环境建议使用https模式来保障安全。
本处使用cfssl向Harbor签发证书,详细见文章: https://mp.weixin.qq.com/s/T9xug20FNU3zOodno5IwPA
自建CA证书颁发机构,使用刚才安装好的cfssl工具为harbor制作颁发证书
$ mkdir -p /app/harbor/ssl/ #创建证书存放目录$ cfssl print-defaults config > /app/harbor/ssl/ca-config.json #生成默认配置文件$ cat <<EOF > /app/harbor/ssl/ca-config.json{ "signing": { "default": { "expiry": "87600h" }, "profiles": { "harbor": { "expiry": "87600h", "usages": [ "signing", "key encipherment", "server auth", "client auth" ] } } }}EOF
图片
$ cfssl print-defaults csr > /app/harbor/ssl/ca-csr.json$ cat <<EOF > /app/harbor/ssl/ca-csr.json{ "CN": "harbor", "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "ST": "Beijing", "L": "Beijing" } ]}EOF
图片
$ cfssl gencert -initca /app/harbor/ssl/ca-csr.json | cfssljson -bare /app/harbor/ssl/ca $ ls /app/harbor/ssl/ca-config.json ca.csr ca-csr.json ca-key.pem ca.pem
可以看到,当前目录下新生成了ca.csr、ca-key.pem、ca.pem这3个文件。ca-key.pem、ca.pem这两个是CA相关的证书,通过这个CA来向Harbor颁发证书。
图片
Harbor使用类似于申请表的一个请求文件向CA机构申请证书,CA机构则根据配置文件(证书策略)和请求文件(申请表)向Harbor颁发证书。
使用以下命令创建一个默认的请求文件,但默认的部分参数需要修改。
$ cfssl print-defaults csr > /app/harbor/ssl/harbor-csr.json$ cat /app/harbor/ssl/harbor-csr.json{ "CN": "harbor", "hosts": [ "127.0.0.1", "192.168.2.19", "lidabai.harbor.cn" ], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "ST": "BeiJing", "L": "BeiJing" } ] }
图片
CA使用请求文件根据配置向Harbor颁发证书。
$ cfssl gencert -ca=/app/harbor/ssl/ca.pem \-ca-key=/app/harbor/ssl/ca-key.pem \-cnotallow=/app/harbor/ssl/ca-config.json \-profile=harbor /app/harbor/ssl/harbor-csr.json | cfssljson -bare /app/harbor/ssl/harbor $ ls /app/harbor/ssl/ca-config.json ca.csr ca-csr.json ca-key.pem ca.pem harbor.csr harbor-csr.json harbor-key.pem harbor.pem$ cp harbor.pem harbor-key.pem /app/harbor/ssl/
图片
$ export HARBOR_VERSION=2.9.0 #声明变量,指定版本号$ wget https://github.com/goharbor/harbor/releases/download/v$HARBOR_VERSION/harbor-offline-installer-v$HARBOR_VERSION.tgz$ tar -zxvf harbor-offline-installer-v$HARBOR_VERSION.tg z -C /app/harbor/harbor.v$HARBOR_VERSION.tar.gzharbor/prepareharbor/LICENSEharbor/install.shharbor/common.shharbor/harbor.yml.tmpl
$ docker load -i harbor.v$HARBOR_VERSION.tar.gz
将配置模板复制为配置文件后修改配置参数
$ cp harbor.yml.tmpl harbor.yml$ vim harbor.ymlhostname: lidabai.harbor.comhttp: port: 80# 启用httpshttps: port: 443 certificate: /app/harbor/ssl/harbor.pem #Harbor的证书 private_key: /app/harbor/ssl/harbor-key.pem #Harbor的证书私钥metric: enabled: true #开启Harbor Metrics监控 port: 9090 path: /metric
其他配置参数根据需要进行修改。
在安装目录下执行./prepare加载各个组件的配置。
$ ./prepare
图片
$ ./install.sh --with-trivy
图片
图片
出现:✔ ----Harbor has been installed and started successfully.则表示安装成功
$ docker-compose ps
图片
服务正常!
浏览器输入https://192.168.2.19:443
图片
图片
图片
图片
登录正常!
https://github.com/goharbor/harbor/releases
责任编辑:武晓燕 来源: Harbor进阶实战 HarborOCINydus(责任编辑:娱乐)
远东发展(00035.HK)获执行董事邱达昌增持33万股 涉资约92.1万港元
力合微(688589.SH)2020年归母净利2782.05万元 基本每股收益0.33元