安装Harbor

目录

1 背景

2 环境

3 步骤

1) 安装python

2) 安装docker-compose

3) 安装Harbor

4)docker 客户端登陆

5)停止Harbor

4.遇到的问题

5.参考资料


1 背景

在之前的k8s安装之后(二进制搭建k8s集群),继续安装其他的组件,如Harbor。

2 环境

  • 操作系统: CentOSv7.8
  • 内核:Linux v4.14.131
  • Harbor版本:v2.0.3
  • docker-compose版本:1.22.0
  • 安装Harbor的节点:10.0.12.234

3 步骤

1) 安装python

# yum install python

2) 安装docker-compose

A.下载docker-compose:https://github.com/docker/compose/tags

# cd /opt/k8s/work

# mv docker-compose-Linux-x86_64 /opt/k8s/bin/docker-compose

# chmod a+x /opt/k8s/bin/docker-compose

# export PATH=/opt/k8s/bin/:$PATH

3) 安装Harbor

A.下载Harborhttps://github.com/goharbor/harbor/tags

# cd /opt/k8s/work

# tar -zxvf harbor-offline-installer-v2.0.3.tgz

B. 生成认证文件

# vim harbor-csr.json

{
  "CN": "harbor",
  "hosts": [
    "127.0.0.1",
    "10.0.12.234"
  ],
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [
    {
      "C": "CN",
      "ST": "BeiJing",
      "L": "BeiJing",
      "O": "k8s",
      "OU": "opsnull"
    }
  ]
}
EOF

# cfssl gencert -ca=/opt/kubernetes/cert/ca.pem \
  -ca-key=/opt/kubernetes/cert/ca-key.pem \
  -config=/opt/kubernetes/cert/ca-config.json \
  -profile=kubernetes harbor-csr.json | cfssljson -bare harbor

*** 注意: /opt/kubernetes/cert/ 是之前部署k8s时存放认证文件的目录

# ll harbor*

# mkdir -p /opt/harbor/ssl

# mv harbor*pem /opt/harbor/ssl

# rm harbor.csr harbor-csr.json

C. 修改harbor文件

# cd harbor

# cp harbor.yml.tmpl harbor.yml

# vim harbor.yml

修改如下几个变量:

# mkdir -p /data/harbor

D.手动上传harbor镜像

# cd harbor

# docker load -i harbor.v2.0.3.tar.gz

E.安装harbor

# cd harbor

# .prepare

# sh .install.sh

4)docker 客户端登陆

# mkdir -p /etc/docker/certs.d/10.0.12.234
# cp /opt/kubernetes/cert/ca.pem /etc/docker/certs.d/10.0.12.234/ca.crt

# docker login 10.0.12.234

Username: admin

Password:                        # 这里为Harbor缺省登录密码

5)停止Harbor

切换到工作目录:

# cd /opt/k8s/work

# docker-compose stop

4.遇到的问题

1)由于开始下载的docker-compose(v1.28.0)的版本太高,执行install.sh时报错:* Need to install docker-compose(1.18.0+) by yourself first and run this script again.

再使用docker-compose --version查看时报错:[42724] Error loading Python lib '/tmp/_MEITIb9Lg/libpython3.9.so.1.0': dlopen: /lib64/libc.so.6: version `GLIBC_2.28` not found (required by /tmp/_MEITIb9Lg/libpython3.9.so.1.0)

解决方案:

重新下载低版本的docker-compose(v1.22.0),按照步骤2)安装docker-compose安装即可。然后,再重新执行install.sh。

2)docker客户端登录时,始终登录不上。报错:Error response from daemon: Get https://10.0.12.234/v2/: x509: certificate signed by unknown authority.

原因是copy证书文件时,没有将ca的后缀名做修改(马虎了~~~)

解决方案:

重新按照步骤4)docker客户端登录中,copy证书文件,注意后缀名即可。

5.参考资料

https://www.cnblogs.com/fqnb001/p/12482440.html -- 安装docker-compose

https://github.com/opsnull/follow-me-install-kubernetes-cluster/blob/master/D.%E9%83%A8%E7%BD%B2Harbor-Registry.md -- 安装harbor

 

 

 

 

### 安装 Harbor 容器镜像仓库 #### 准备工作 在安装 Harbor 前,需确保满足以下条件: - 已准备好一台 Linux 主机(推荐 CentOS 或 Ubuntu),并具备 DockerDocker Compose 的运行环境。 - 如果是离线环境,则需要提前下载对应的离线安装包 `harbor-offline-installer-vX.X.X.tgz`[^3]。 --- #### 离线安装流程 以下是基于离线环境的 Harbor 单机版安装步骤: 1. **获取离线安装包** 通过官方 GitHub 地址下载最新的稳定版本离线安装包。例如: ```bash curl -s https://api.github.com/repos/goharbor/harbor/releases/latest | grep browser_download_url | cut -d '"' -f4 | grep '.tgz' ``` 将返回的结果保存为文件名 `harbor-offline-installer-v2.11.2.tgz` 并上传至目标服务器。 2. **解压安装包** 解压已下载的安装包到指定目录: ```bash tar -zxvf harbor-offline-installer-v2.11.2.tgz -C /opt/ cd /opt/harbor/ ``` 3. **修改配置文件** 编辑默认配置文件 `harbor.yml`,设置必要的参数,如域名、证书路径等: ```yaml hostname: registry.example.com http: port: 80 https: port: 443 certificate: /path/to/cert.pem private_key: /path/to/key.pem admin_password: your_admin_password database: password: db_password ``` 配置完成后,建议验证语法是否正确[^1]。 4. **执行安装脚本** 使用内置的安装脚本来完成 Harbor 的初始化和部署: ```bash ./install.sh ``` 脚本会自动加载所需的容器镜像,并启动相关服务。 5. **测试访问** 打开浏览器输入配置中的主机名或 IP 地址,确认可以正常访问 Harbor Web UI 页面。登录用户名为 `admin`,初始密码可通过上述配置文件中的 `admin_password` 字段设定。 --- #### Kubernetes 集群集成 如果计划将 Harbor 整合到 Kubernetes 集群中,可以通过创建 Secret 来实现私有镜像库的身份认证: ```bash kubectl create secret docker-registry harbor-secret \ --docker-server=<your_harbor_host>:<port> \ --docker-username=<username> \ --docker-password=<password> \ -n <namespace> ``` 此命令会在指定命名空间下生成一个名为 `harbor-secret` 的密钥对象,供后续 Pod 动态拉取镜像时使用[^4]。 --- #### 后续管理与维护 Harbor 提供了丰富的功能来简化容器镜像仓库的日常操作,包括但不限于用户权限分配、项目配额限制以及审计日志记录等功能[^2]。管理员还可以定期备份数据库以防止数据丢失。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值