美文网首页
harbor1.10.1版本安装

harbor1.10.1版本安装

作者: wowshiwoniu | 来源:发表于2020-06-09 14:43 被阅读0次

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

    • 物理机安装
    • docker-compose
    • k8s集群内部安装

    优势

    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

    软件要求:

    • Kubernetes cluster 1.10+
    • Helm 2.8.0+
    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

    相关文章

      网友评论

          本文标题:harbor1.10.1版本安装

          本文链接:https://www.haomeiwen.com/subject/ielktktx.html