Linux在线安装harbor镜像仓库

2022-11-02 16:24:45 浏览数 (1)

前言

在之前的文章中已经搭建好了k8s集群跟KubeSphere的可视化系统,但是在实际应用上我们服务的镜像推送都需要在集群的所有节点上手动进行docker build,非常不方便。所以我们需要一个私有的镜像仓库。

容器仓库的选择
  • 公共仓库
    • docker hub
    • 云镜像仓库
  • 私有仓库
    • registry
    • Harbor

在企业应用上肯定会选择私有仓库,这时候就需要在registryHarbor中选择一个了。

  • registrydocker官方提供的私有镜像仓库,但是没有图形页面,没有权限控制,并且每次传输都会传输全量文件。
  • HarborVMware的开源项目,提供了管理图形界面,基于角色的访问控制(Role Based Access Control),镜像远程复制同步,AD/lDAP集成,以及审计日志等企业用户需求的功能,同时还 原生支持中文。

Harbor相对registry具有了许多在应用上的优点,所以Harbor是更多企业的选择,本篇就是要为k8s集群集成我们的私有Harbor仓库

配置依赖

正常Harbor仓库应该选择一个独立的服务器进行安装部署,保证那边集群产生了问题也不会影响到私有镜像仓库,但是我们也是实验的场景,可以选择安装在k8s资源足够的集群上。

更新软件包

代码语言:javascript复制
yum -y install yum-utils device-mapper-persistent-data lvm2 

安装docker(如果在k8s集群上安装就不需要,已经安装了docker)

指定yum镜像

代码语言:javascript复制
yum-config-manager --add-repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker

代码语言:javascript复制
yum list docker-ce --showduplicates|sort -r   # 查询docker版本
yum -y install docker-ce-18.09.8   # 安装指定版本,根据生产环境自行选择

安装docker-compose

使用docker compose可以一键安装Harbor,但是要做高可用的仓库还是手工部署。

下载docker-compose

执行下载命令:

代码语言:javascript复制
curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

添加可执行权限

代码语言:javascript复制
chmod  x /usr/local/bin/docker-compose

查看docker-compose版本

代码语言:javascript复制
docker-compose -version

这里的docker-compose版本是1.27.4


安装Harbor

下载Harbor

代码语言:javascript复制
wget https://github.com/goharbor/harbor/releases/download/v2.1.1/harbor-offline-installer-v2.1.1.tgz

上面下载地址特别慢的话使用下面的国内代理地址下载

代码语言:javascript复制
wget https://ghproxy.com/https://github.com/goharbor/harbor/releases/download/v2.5.3/harbor-offline-installer-v2.5.3.tgz

下载速度还是很快的

解压Harbor

代码语言:javascript复制
tar xvf harbor-offline-installer-v2.5.3.tgz  -C /home/ && cd /home/harbor/

配置Harbor

编辑harbor.yml文件

代码语言:javascript复制
vim harbor.yml

修改下图内容的配置,一个是配置https证书,一个是配置data数据目录。hostname参数修改成本机的hostname名称

创建配置的目录

创建配置文件中放置证书跟data的文件目录

代码语言:javascript复制
mkdir -p /home/harbor/certs /home/harbor/data

生成SSL证书(如果有证书无需生成)

如果有自己的证书可以将证书crtkey文件放到上面配置的目录,如果没有就按此步骤自签一个

生成证书

代码语言:javascript复制
openssl req -newkey rsa:4096 -nodes -sha256 -keyout /home/harbor/certs/harbor.key -x509 -out /home/harbor/certs/harbor.crt -subj /C=CN/ST=BJ/L=BJ/O=DEVOPS/CN=harbor.wangzy.com -days 3650

参数解释

代码语言:javascript复制
- req     产生证书签发申请命令
- newkey  生成新私钥
- rsa:4096  生成秘钥位数
- nodes   表示私钥不加密
- sha256  使用SHA-2哈希算法
- keyout  将新创建的私钥写入的文件名
- x509   签发X.509格式证书命令。X.509是最通用的一种签名证书格式。
- out 指定要写入的输出文件名
- subj    指定用户信息
- days    有效期(3650表示十年)

再次查看certs目录就存在了证书

启动Harbor

代码语言:javascript复制
./install.sh 
等待安装完成
如下图安装完成

验证Harbor

安装完成后访问https://服务器ip地址,访问的时候会有一个警告,点击高级选择忽略继续访问即可,然后就到了我们的Harbor登陆页

代码语言:javascript复制
默认管理员用户名:admin    密码:Harbor12345  修改的话可以修改harbor.yml的配置

登陆成功就到了Harbor的主页了

如果想要通过自签的域名访问需要配置本机的hosts,将服务器的ip指向我们签发的域名harbor.wangzy.com,具体怎么操作搜一下怎么配置hosts就行

0 人点赞