当前位置:首页 >知识 >Harbor v2.9.0版本变化及离线部署 在harbor的离线运维过程中

Harbor v2.9.0版本变化及离线部署 在harbor的离线运维过程中

2024-06-30 19:16:31 [百科] 来源:避面尹邢网

Harbor v2.9.0版本变化及离线部署

作者:键客李大白 云计算 云原生 Harbor 现在支持 OCI Distribution Spec v1.1.0-rc2,版本变部署并增加了对符号签名和 Nydus 转换作为引用的化及支持。

版本变化

1.1 更新内容

  • 安全中心管理员用户现在可以访问有价值的离线安全见解,其中包括扫描和未扫描的版本变部署项目数量、危险项目和 CVE 的化及识别,以及使用多个组合条件对漏洞的离线高级搜索功能。
  • GC 增强功能通过详细的版本变部署 GC 执行历史记录提高可见性,并启用并行删除以加快 GC 触发器。化及
  • 支持 OCI 分发规范 v1.1.0-rc2Harbor 现在支持 OCI Distribution Spec v1.1.0-rc2,离线并增加了对符号签名和 Nydus 转换作为引用的版本变部署支持。
  • 自定义横幅消息管理员现在可以设置显示在 Harbor 网页顶部的化及自定义横幅消息,其也是在生产环境比较实用的功能,在harbor的离线运维过程中,Harbor中存储多个项目的版本变部署镜像,如果存储空间满时可向用户发布清理镜像的化及”通告“而不需要管理员来清理镜像,以防止重要的离线镜像被误删的情况。

功能使用如图位置:

图片图片

Harbor v2.9.0版本变化及离线部署 在harbor的离线运维过程中

  • 配额更新提供程序引入了一种利用 Redis 在推送镜像时配额更新期间进行乐观锁定的新机制。有关启用和使用此功能的说明,请参阅 https://github.com/goharbor/perf/wiki/Quota-Update 中的文档。
  • 移除Notary从版本 v2.9.0 开始,Harbor 不再在用户界面或后端中包含 Notary。详情请浏览至此页面。

1.2 已知问题

如果使用版本低v20.10.10的Docker在线/离线安装Harbor 2.9.0,则可能会遇到Harbor数据库容器无法启动的问题。此问题正在 (#19141) 进行跟踪。有关此特定问题的更多详细信息,请访问此页面(timescale/timescaledb-docker-ha#260)。

Harbor v2.9.0版本变化及离线部署 在harbor的离线运维过程中

为避免此问题,建议在将 Harbor v20.10.10 与在线/离线安装程序一起使用时,确保 Docker 版本等于或大于 2.9.0。

Harbor v2.9.0版本变化及离线部署 在harbor的离线运维过程中

安装部署(离线)

适用于多个版本,离线安装的步骤基本没什么变化。

2.1 主机初始化

① 关闭SELinux、swap
$ sed -i 's/SELINUX=enforcing/SELINUX=disabled/g'  /etc/selinux/config
  • 禁用Swap
$ sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab$ swapoff -a
② 配置repo源
$ 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
③ 安装docker-ce
  • 下载rpm包并安装
$ mkdir docker-ce$ yum install  -y docker-ce  --downloadonly  --downloaddir=./docker-ce/$ yum install  -y rpm/*.rpm
  • 启动docker
$ systemctl enable --now docker
  • 修改docker配置 在insecure-registries参数后填写Harbor的地址及端口
$ 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

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:开启路由转发(不配置该参数,当主机重启后,服务状态正常,却无法访问到服务器)

⑥ 安装cfssl证书工具(可选)

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

2.2 签发HTTPS证书(可选)

http模式可不需要进行本处操作,生产环境建议使用https模式来保障安全。

本处使用cfssl向Harbor签发证书,详细见文章: https://mp.weixin.qq.com/s/T9xug20FNU3zOodno5IwPA

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

自建CA证书颁发机构,使用刚才安装好的cfssl工具为harbor制作颁发证书

  • 生成并修改CA默认配置文件
$ 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

图片图片

  • 生成并修改默认csr请求文件
$ 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

图片图片

  • 初始化CA证书
$ 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颁发证书。

图片图片

② CA给Harbor颁发证书

Harbor使用类似于申请表的一个请求文件向CA机构申请证书,CA机构则根据配置文件(证书策略)和请求文件(申请表)向Harbor颁发证书。

  • 创建并修改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颁发证书

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

图片图片

⑤ 安装启动Harbor

$ ./install.sh  --with-trivy

图片图片

图片图片

出现:✔ ----Harbor has been installed and started successfully.则表示安装成功

服务验证

3.1 检查服务及组件状态

$ docker-compose ps

图片图片

服务正常!

登录Harbor UI

浏览器输入https://192.168.2.19:443

图片图片

图片图片

图片图片

图片图片

登录正常!

参考文献

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

责任编辑:武晓燕 来源: Harbor进阶实战 HarborOCINydus

(责任编辑:娱乐)

    推荐文章
    热点阅读