harbor1.10.1版本安装

2020-06-09  本文已影响0人  wowshiwoniu

harbor是一款开源的镜像仓库,在docker仓库的基础上,通过调用api的方式,,进一步封装,支持web界面、项目管理、用户权限划分等诸多特性。目前针对harbor的安装,主要有三种方式:

优势

1、用户管理
用户和仓库都是基于项目进行组织的,而用户基于项目可以拥有不同的权限。

2、项目管理
镜像可以在多个Harbor实例之间进行复制(同步)。 适用于负载平衡,高可用性,多数据中心,混合和多云场景。

3、支持LDAP
Harbour与现有的企业LDAP / ADA集成,用于用户认证和管理。

4、图形UI
用户可以轻松浏览,搜索镜像仓库以及对项目进行管理。

5、审计
对存储库的所有操作都进行跟踪

6、支持高可用
支持跨数据仓库镜像远程同步功能,从某种程度上可以满足HA的需求

我使用的版本:
docker-ce | 19.0.5
docker-compose | v1.25.4 | https://github.com/docker/compose/releases
harbor | v1.10.1 | https://github.com/goharbor/harbor/releases

docker-compose安装harbor

1、安装docker-compose
由于网速的原因,在服务器上安装太慢

# 安装 docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 配置权限
chmod u+x /usr/local/bin/docker-compose
# 查看安装是否正常
docker-compose --version

2、安装harbor

# 下载
wget https://github.com/goharbor/harbor/releases/download/v1.10.1/harbor-offline-installer-v1.10.1.tgz
# 解压
tar  -xvf harbor-online-installer-v1.9.3.tgz

3、配置
进入解压文件内,修改配置

打开文件 harbor.yml

# 修改hostname,也可使用ip
hostname: harbor.example.com

# 修改端口号,默认为80,可以默认
http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 80

# 使用https修改,不需要则注释即可
https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /your/certificate/path
  private_key: /your/private/key/path

# 修改admin的密码
harbor_admin_password: xxx

4、安装

# 检查
./prepare
# 安装
./install

访问 harbor.yml中配置的hostname 即可以访问Harbor服务了

5、使用
登录浏览器,使用上面配置的域名或者ip+port,进入harbor内创建一个项目test


image.png

/etc/docker/daemon.json下添加

添加如下配置(若使用域名,替换为域名)

{
    "insecure-registries":["xx.xx.xx.xx:8080"]
}

重启使配置生效

# 重启docker
systemctl restart docker

打tag推送镜像

# 登录仓库,使用域名或者ip+端口
docker login -u <username>  xx.xx.xx.xx
# 打tag镜像,
docker tag nginx:latest xx.xx.xx.xx:8080/test/nginx:v1
# push
docker push xx.xx.xx.xx:8080/test/nginx:v1

6、配置域名访问

# 更新
apt-get update
# 安装
apt-get install nginx -y
# 添加配置文件
cat <<EOF > /etc/nginx/sites-available/harbor.example.com
server
{
    listen 80;
    server_name harbor.example.com;
    client_max_body_size 0;  # 放开上传文件大小限制
    index index.php index.html index.htm default.php default.htm default.html;

    location /
    {
        proxy_pass http://xx.xx.xx.xx:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;

        add_header X-Cache $upstream_cache_status;

        expires 12h;
    }

}
EOF
# 添加软链
ln -s /etc/nginx/sites-available/harbor.example.com /etc/nginx/sites-enabled/harbor.example.com
# 加载配置文件
nginx -s reload

ubuntu添加域名认证 : /etc/docker/daemon.json

{
    "insecure-registries":["harbor.example.com"]
}

mac添加域名认证


image.png image.png

k8s安装harbor

1、安装文件地址

项目地址:https://github.com/goharbor/harbor-helm

软件要求:

2、参数修改

进入harbor-helm下,调整values.yaml参数

type: nodePort 这里我们使用对外暴露方式为nodePort

enable: false 这里不适用tls,使用http,通过nginx反向代理

**externalURL: http://{IP}:{PORT} **这里使用ip+端口号,设置代理请求地址

image.png
3、pvc设置

这里使用了nfs存储,默认的storageclass,如有不同存储后端,或者指定存储storageclass,需要自行修改配置。
实际参数大小,需要调整,这里暂时测试运行,使用的默认的pvc配置,没有做改动。

4、运行

harbor-helm仓库路径下

helm install my-harbor .
5、访问
kubectl get svc -n <harbor-namespace> | grep harbor | grep NodePort
6、导出yaml文件安装

为了便于安装,在harbor-helm下将values.yaml文件参数调整后,通过helm导出安装文件

helm install harbor-release harbor-helm --namespace=harbor-release --dry-run >> harbor-release.yaml

镜像同步

harbor仓库支持镜像同步复制,通过管理员账户登录配置

1、仓库管理
左侧的仓库管理选项,点击新建目标,参数配置如下

提供者:harbor

目标明:自定义名字

目标URL:目标harbor的地址

访问ID:目标仓库的账号

访问密码:目标仓库的密码

验证远程证书:这里选择忽略,没有使用证书


image.png

2、复制管理
选中左侧的复制管理,点击新建规则,参数配置如下

名称:自定义

描述:简单描述信息,选填

复制模式:Push-based

资源过滤器:默认不填,即全部复制

目标Registry:选择对应仓库

触发模式:根据实际需要选择,这里暂时测试了定时


image.png
上一篇下一篇

猜你喜欢

热点阅读