Harbor镜像仓库的安装和使用

1 Harbor安装

参考文章:
银河麒麟v10离线安装harbor

由于配置了本地私有yum源,因此,直接使用yum命令安装docker和docker-compose

1.1 安装docker

yum install docker-ce

1.2 安装docker-compose

yum install docker-compose

1.3 安装harbor

下载安装文件harbor-1.10.2-1.p02.ky10.aarch64.rpm
将文件上传到服务器的/root路径下

使用yum本地安装

yum localinstall -y harbor-1.10.2-1.p02.ky10.aarch64.rpm

修改配置文件/root/harbor/harbor.yml

vim /root/harbor/harbor.yml

在这里插入图片描述

配置Harbor

./prepare

安装Harbor

./install.sh

2 Harbor的使用

2.1 Harbor镜像仓库信息

http://192.168.16.106:5000/
用户名:xxxx
密码:xxxxxxxx

2.2 创建项目

在浏览器访问Harbor的管理界面:192.168.16.106:5000
登录
在项目菜单中点击新建项目按钮,新建项目。访问级别设置为公开,不用登录用户名密码即可拉取和推送镜像

在这里插入图片描述

2.3 docker配置使用harbor私用镜像仓库

在某个局域网服务器使用harbor私有镜像仓库上传或者拉取镜像,需要先登录harbor,会自动存储配置文件到系统文件。

docker login -u test -p Test123456 http://192.168.16.106:5000

会报错Error response from daemon: Get "https://192.168.16.106:5000/v2/": http: server gave HTTP response to HTTPS client

在这里插入图片描述

因为我们的私有镜像仓库是使用http请求,而docker引擎默认使用https与镜像仓库交互,需要修改docker的配置文件,增加insecure-registries配置

编辑/etc/docker/daemon.json文件

vim /etc/docker/daemon.json

增加如下配置

{
  "insecure-registries":["http://192.168.16.106:5000"]
}

重新加载配置,重启到docker服务

systemctl daemon-reload && systemctl restart docker.service

此时即可正常登录使用

在这里插入图片描述

2.3 上传镜像到私有仓库

给镜像打标签

在公网服务器pull镜像,给镜像打私有镜像仓库的标签,上文我们给harbor中创建的项目名为test,因此下面例子均以test为例

docker tag SOURCE_IMAGE[:TAG] 192.168.16.106:5000/PROJECT_NAME/IMAGE[:TAG]

例如:

docker tag openjdk:8 192.168.16.106:5000/test/openjdk:8-arm64

上传镜像

docker push 192.168.16.106:5000/PROJECT_NAME/IMAGE[:TAG]

例如:

docker push 192.168.16.106:5000/test/openjdk:8-arm64

2.4 拉取镜像

在内网的所有服务器上可以拉取镜像

docker pull 192.168.16.106:5000/test/kuboard-spray:1.2.4-arm64

在这里插入图片描述

3 在k8s集群中使用

3.1 containerd配置http的私有仓库

由于k8s在1.24以后得版本中不在支持docker作为容器引擎,而是使用containerd,因此在集群的各个节点服务器上使用harbor私有仓库,配置与docker不同。

containerd 不能像docker一样 docker login harbor.example.com 登录到镜像仓库
containerd不像docker,在/etc/docker/deamon.json文件配置一下insecure-registries就可以使用了

修改containerd 的配置文件/etc/containerd/config.toml

vim /etc/containerd/config.toml
  • 增加`registry.configs``,设置跳过安全认证设为true,设置登录用户名和密码
  • registry.mirrors配置中增加私有镜像仓库的http地址http://192.168.16.106:5000
    [plugins."io.containerd.grpc.v1.cri".registry]
      [plugins."io.containerd.grpc.v1.cri".registry.configs]
        [plugins."io.containerd.grpc.v1.cri".registry.configs."192.168.16.106:5000".tls]
          insecure_skip_verify = true #跳过安全认证设为true
        [plugins."io.containerd.grpc.v1.cri".registry.configs."192.168.16.106:5000".auth]
          # 设置登录用户名和密码
          username = "xxxx"
          password = "xxxxxxxx"
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
          endpoint = ["https://registry-1.docker.io"]
        # 增加harbor私有镜像仓库的http地址
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."192.168.16.106:5000"]
          endpoint = ["http://192.168.16.106:5000"]


重新加载配置,使配置生效并重启Containerd

systemctl daemon-reload && systemctl restart containerd.service

此时,K8S集群各个节点即可正常从私有镜像仓库拉取镜像。

  • 21
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值