服务器问题

云服务器怎样搭建Harbor私有镜像仓库

一、环境准备

1. 系统配置

  1. bash
    # 安装Docker
    apt update
    apt install -y docker.io docker-compose

    # 系统配置优化
    cat >>/etc/sysctl.conf << EOF
    net.ipv4.ip_forward=1
    net.bridge.bridge-nf-call-iptables=1
    EOF

    sysctl -p

2. 证书配置

  1. bash
    # 生成SSL证书
    mkdir -/data/cert
    cd /data/cert

    openssl req -newkey rsa:4096-nodes -sha256 -keyout ca.key -x509 -days 365-out ca.crt \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=Company/CN=harbor.example.com"

    # 配置Docker证书
    mkdir -/etc/docker/certs.d/harbor.example.com/
    cp ca.crt /etc/docker/certs.d/harbor.example.com/

二、Harbor安装

1. 下载配置

  1. bash
    # 下载Harbor
    wget https://github.com/goharbor/harbor/releases/download/v2.5.0/harbor-online-installer-v2.5.0.tgz
    tar xvf harbor-online-installer-v2.5.0.tgz

    # 配置Harbor
    cp harbor.yml.tmpl harbor.yml

2. 基础配置

  1. yaml
    # harbor.yml
    hostname: harbor.example.com
    https:
      certificate:/data/cert/ca.crt
      private_key:/data/cert/ca.key
    harbor_admin_password:Harbor12345
    database:
      password: root123
      max_idle_conns:100
      max_open_conns:900
    data_volume:/data/harbor

三、安全配置

1. 身份认证

  1. yaml
    # harbor.yml
    auth_mode: ldap
    ldap_url: ldap://ldap.example.com
    ldap_searchdn: cn=admin,dc=example,dc=com
    ldap_search_pwd: password
    ldap_base_dn: dc=example,dc=com
    ldap_uid: uid

2. 项目安全

  1. bash
    # 配置项目访问级别
    curl -X PUT -"Content-Type: application/json" \
    -"admin:Harbor12345" \
    "https://harbor.example.com/api/v2.0/projects/1" \
    -'{"metadata":{"public":"false"}}'

四、仓库管理

1. 仓库配置

  1. bash
    # 创建项目
    curl -X POST -"Content-Type: application/json" \
    -"admin:Harbor12345" \
    "https://harbor.example.com/api/v2.0/projects" \
    -'{"project_name":"test-project","public":false}'

    # 配置镜像清理
    ./harbor.sh garbage-collection

2. 复制策略

  1. yaml
    # 配置镜像复制
    curl -X POST -"Content-Type: application/json" \
    -"admin:Harbor12345" \
    "https://harbor.example.com/api/v2.0/replication/policies" \
    -'{
            "name": "sync-policy",
            "src_registry": {"id": 1},
            "dest_registry": {"id": 2},
            "filters": [{
                "type": "name",
                "value": "test-project/**"
            }]
        }'

五、性能优化

1. Nginx配置

  1. nginx
    # nginx.conf
    worker_processes auto;
    worker_rlimit_nofile 65535;

    events {
        worker_connections 10240;
    }

    http {
        client_max_body_size 500m;
        client_body_buffer_size 128k;
        proxy_connect_timeout 600;
        proxy_read_timeout 600;
        proxy_send_timeout 600;
    }

2. 存储优化

  1. yaml
    # harbor.yml
    storage:
      filesystem:
        maxthreads:50
      cache:
        enabled:true
        expiry:24h

六、监控告警

1. 监控配置

  1. yaml
    # prometheus.yml
    scrape_configs:
    - job_name:'harbor'
        static_configs:
    - targets:['harbor.example.com']
        metrics_path:'/metrics'

2. 告警规则

  1. yaml
    # alert.rules
    groups:
    - name: harbor_alerts
      rules:
    - alert:HarborDown
        expr: up ==0
    for:5m
        labels:
          severity: critical



免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:bkook@qq.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
上一篇:云服务器怎样部署与配置SonarQube代码质量平台
下一篇:云服务器怎样设计Grafana+VictoriaMetrics监控方案
0

在线
客服

在线客服服务时间:9:00-18:00

客服
热线

19899115815
7*24小时客服服务热线

关注
微信

关注官方微信
顶部