harbor相关

1、docker-compose-linux-x86_64下载

mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
vim ~/.bashrc
# 在文件结尾加入
export PATH=/usr/local/bin:$PATH

source ~/.bashrc
docker-compose --version

2、harbor-offline-installer-v2.8.2.tgz下载下来

tar -zxvf harbor-offline-installer-v2.8.2.tgz
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
1 hostname: 改成电脑的ip地址
2 注释掉这里的内容
#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
3 这里改成你的存储地址
# The default data volume
data_volume:

./install.sh
3 (可选)配置nginx是为了访问ip1就能访问到ip2

docker pull nginx:1.14.2
vim nginx.conf
user nginx;
worker_processes 1;

error_log /var/log/nginx/error.log warn;

pid /var/run/nginx.pid;

events {
  worker_connections 1024;
}

stream {
  upstream hub {
    server 192.168.1.6:80;  # 这个ip是ip1,这台nginx服务器的ip是ip2
  }
  server {
    listen 80;
    proxy_pass hub;
    proxy_timeout 300s;
    proxy_connect_timeout 5s;
  }
}

vim restart.sh

docker stop harbornginx

docker rm harbornginx

docker run -itd --net=host --name harbornginx -v /home/admin/nginx/nginx.conf:/etc/nginx/nginx.conf nginx:1.14.2

4 配置 /etc/hosts
安装harbor的机器ip 你需要的域名,比如hub.example.com
所有机器的daemon.json要加上这句
“insecure-registries”: [“hub.example.com”],

systemctl restart docker

5 在网页中新建项目,比如test,然后新建用户,再点开项目–成员,把新建用户加上
docker login hub.example.com 把新建用户信息填入

2.安装 带https的harbor

1)安装docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

2)harbor

harbor offline下载地址

3) https

在harbor同级建一个certs文件夹(其实文件夹的位置不重要),把下面这个脚本放进去
gen_certs.sh

openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.liu.com" \
 -key ca.key \
 -out ca.crt
 
openssl genrsa -out harbor.liu.com.key 4096
openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.liu.com" \
    -key harbor.liu.com.key \
    -out harbor.liu.com.csr

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=harbor.liu.com
DNS.2=harbor.liu
DNS.3=hostname
EOF

openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in harbor.liu.com.csr \
    -out harbor.liu.com.crt

mkdir -p /data/cert/
cp harbor.liu.com.crt /data/cert/
cp harbor.liu.com.key /data/cert/
openssl x509 -inform PEM -in harbor.liu.com.crt -out harbor.liu.com.cert
mkdir -p /etc/docker/certs.d/harbor.liu.com/
cp harbor.liu.com.cert /etc/docker/certs.d/harbor.liu.com/
cp harbor.liu.com.key /etc/docker/certs.d/harbor.liu.com/
cp ca.crt /etc/docker/certs.d/harbor.liu.com/
systemctl restart docker

4) 进去harbor文件夹

修改 harbor.yml.tmpl
hostname: harbor.liu.com
certificate: /etc/docker/certs.d/harbor.liu.com/harbor.liu.com.cert
private_key: /etc/docker/certs.d/harbor.liu.com/harbor.liu.com.key
密码可以修改一下

cp harbor.yml.tmpl harbor.yml

然后就是 ./install.sh

5) 别的服务器要连这个harbor的私有项目

需要把/etc/docker/certs.d 文件夹拷贝到别的机器上才行

3、解决harbor不自启的问题

编写harbor.service(放置于/etc/systemd/system目录下)

[Unit]
# 这部分定义了服务的元数据和与其他服务的关系。

Description=harbor
# 这行提供了服务的简短描述,也就是 "harbor"。

After=docker.service systemd-networkd.service systemd-resolved.service
# 该服务将在列出的服务(docker、systemd-networkd 和 systemd-resolved)之后启动。

#Requires=docker.service
# 这意味着此服务需要 docker.service 运行。如果 docker.service 失败,这个服务也会被停止。当 Docker 停止时,Harbor 也会停止,但当 Docker 启动时,Harbor 不会自动启动。
BindsTo=docker.service
# 当 Docker 停止时,Harbor 会停止,但当 Docker 重新启动时,Harbor 也会重新启动。

Documentation=http://github.com/vmware/harbor
# 这是服务的文档URL,提供额外的信息或如何使用它的指导。

[Service]
# 这部分定义了服务启动和停止时要执行的命令以及其他服务参数。

Type=simple
# 服务类型是简单的,这意味着它的主进程会立即启动并不会后台运行。

Restart=on-failure
# 如果服务失败(即非正常退出),它会自动重新启动。

RestartSec=5
# 服务重新启动之间的延迟是5秒。

ExecStart=/usr/local/bin/docker-compose -f  /home/Admin/harbor/docker-compose.yml up
# 当服务启动时,要执行的命令。这里它使用 Docker Compose 启动容器。

ExecStop=/usr/local/bin/docker-compose -f  /home/Admin/harbor/docker-compose.yml down
# 当服务停止时,要执行的命令。这里它使用 Docker Compose 停止容器。

[Install]
# 这部分定义了如何 "安装" 这个服务,即如何使其在启动时自动启动。

WantedBy=multi-user.target
# 这意味着当系统达到 "multi-user" 运行级别时,这个服务应该被启动。在 systemd 中,这通常意味着系统已经完成了基本的启动过程。
systemctl start harbor.service
systemctl enable harbor.service

ceph做docker hub的存储

要使用 Ceph 为 Harbor 提供 300GB 的数据卷,您需要按照以下步骤进行配置。假设您的 Ceph 集群已经部署完成,并且您已经安装了 Ceph 命令行工具(如 cephrbd)和 Docker。

前提条件

  1. 已部署的 Ceph 集群:确保您的 Ceph 集群已经正常运行。
  2. Ceph 客户端工具:在您要配置 Harbor 的机器上安装了 Ceph 客户端工具。
  3. Harbor 已安装:您已经在目标机器上安装了 Harbor。
  4. 权限配置:确保 Ceph 用户有足够的权限创建和使用RBD镜像。

步骤一:创建Ceph Pool

首先,创建一个新的 pool 用于存储 Harbor 的数据。如果已经有合适的 pool,可以跳过这一步。

ceph osd pool create harbor-pool 128 128

步骤二:创建RBD镜像

接下来,在创建的 pool 中创建一个 300GB 的 RBD 镜像。

rbd create harbor-pool/harbor-data --size 300G

步骤三:映射RBD镜像到本地

将创建的 RBD 镜像映射到本地系统,使其作为块设备使用。

rbd map harbor-pool/harbor-data

此命令会输出一个类似 /dev/rbd0/dev/rbd/harbor-pool/harbor-data 的设备路径。

步骤四:格式化和挂载

  1. 格式化设备

    mkfs.ext4 /dev/rbd0
    

    这里假设映射的设备路径是 /dev/rbd0,请根据实际情况调整。

  2. 创建挂载点并挂载

    mkdir -p /mnt/harbor
    mount /dev/rbd0 /mnt/harbor
    
  3. 确保开机自动挂载

    编辑 /etc/fstab 文件,添加以下内容:

    /dev/rbd0 /mnt/harbor ext4 defaults,_netdev 0 0
    

步骤五:配置Harbor使用Ceph存储

编辑 Harbor 的配置文件(通常是 harbor.ymldocker-compose.yml),将 data_volume 配置为使用挂载的 Ceph RBD。

  1. harbor.yml 中配置

    data_volume: /mnt/harbor
    
  2. 或者在 docker-compose.yml 中配置

    volumes:
      harbor-data:
        external:
          name: /mnt/harbor
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值