当前位置:   article > 正文

四、docker 仓库之分布式Harbor_harbor分布式分发

harbor分布式分发

实验环境:

业务

ip

系统

harbor1

192.168.11.11

kylin-sp1-0518-x86

harbor2

192.168.11.12

kylin-sp1-0518-x86

nginx、keepalived

192.168.11.21

kylin-sp2-0524-x86

nginx、keepalived

192.168.11.22

kylin-sp2-0524-x86

Harbor 是一个用于存储和分发 Docker 镜像的企业级 Registry服务器,由 vmware 开源,其通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution。作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中, 确保数据和知识产权在公司内部网络中管控,另外,Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

vmware 官方开源服务列表地址:https://github.com/vmware/ (现在已经捐献给了CNCF)

云原生基金会:https://www.cncf.io/

harbor 官方 github 地址:https://github.com/goharbor/harbor

harbor 官方网址:https://goharbor.io/

基于角色的访问控制:用户与 Docker 镜像仓库通过“项目”进行组织管理, 一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。

镜像复制:镜像可以在多个 Registry 实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。

图形化用户界面:用户可以通过浏览器来浏览,检索当前Docker 镜像仓库,管理项目和命名空间。

AD/LDAP 支持:Harbor 可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。

审计管理:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。

国际化:已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。

RESTful API :提供给管理员对于 Harbor 更多的操控, 使得与其它管理软件集成变得更容易。

部署简单:提供在线和离线两种安装工具, 也可以安装到vSphere 平台(OVA 方式)虚拟设备。

nginx:harbor 的一个反向代理组件,代理 registry、ui、token 等服务。这个代理会转发 harbor web 和docker client 的各种请求到后端服务上。

harbor-adminserver:harbor 系统管理接口,可以修改系统配置以及获取系统信息。

harbor-db:存储项目的元数据、用户、规则、复制策略等信息。

harbor-jobservice:harbor 里面主要是为了镜像仓库之间同步使用的。

harbor-log:收集其他 harbor 的日志信息。

harbor-ui:一个用户界面模块,用来管理 registry。

registry:存储 docker images 的服务,并且提供pull/push 服务。

redis:存储缓存信息webhook:当 registry 中的image 状态发生变化的时候去记录更新日志、复制等操作。

token service:在 docker client 进行 pull/push的时候负责 token 的发放。

4.1 安装 Harbor

下载地址:https://github.com/goharbor/harbor/releases

安装文档:https://goharbor.io/docs/2.3.0/

4.1.1 安装 docker

本次使用当前 harbor 稳定版本 2.3.5 离线安装包 ,具体名称为 harbor-offline-installer-v2.3.5.tgz

在两台主机上设置主机名,域名解析

  1. [root@localhost ~]# hostnamectl set-hostname harbor1.kylin.com
  2. [root@harbor1 ~]# cat <<EOF>> /etc/hosts
  3. 192.168.11.11 harbor1.kylin.com harbor1
  4. 192.168.11.12 harbor2.kylin.com harbor2
  5. 192.168.11.100 img.kylin.com
  6. EOF
  7. [root@harbor1 ~]# vim /etc/docker/daemon.json
  8. {
  9. "registry-mirrors": ["https://yydlt76u.mirror.aliyuncs.com"],
  10. "insecure-registries": [
  11. "http://img.kylin.com",
  12. "http://harbor1.kylin.com",
  13. "http://harbor2.kylin.com"
  14. ]
  15. }
  16. [root@harbor1 ~]# systemctl daemon-reload
  17. [root@harbor1 ~]# systemctl restart docker.service
  18. [root@harbor1 ~]# docker info
  19. ...
  20. ...
  21. Insecure Registries:
  22. harbor1.kylin.com
  23. harbor2.kylin.com
  24. img.kylin.com
  25. 127.0.0.0/8
  26. Registry Mirrors:
  27. https://yydlt76u.mirror.aliyuncs.com/
  28. Live Restore Enabled: true

4.1.2 下载 Harbor 安装包

链接:https://pan.baidu.com/s/1VjLbTRVadJBZeXGBo0cVDw

提取码:1111

  1. [root@harbor1 ~]# ls harbor-offline-installer-v2.3.5.tgz
  2. harbor-offline-installer-v2.3.5.tgz

4.2 配置 Harbor

4.2.1 解压并编辑 harbor.yml 配置文件

之前的版本配置文件名称为 harbor.cfg

  1. [root@harbor1 ~]# tar xf harbor-offline-installer-v2.3.5.tgz -C /usr/local/
  2. [root@harbor1 ~]# cd /usr/local/harbor/
  3. [root@harbor1 harbor]# ls
  4. common.sh harbor.v2.3.5.tar.gz harbor.yml.tmpl install.sh LICENSE prepare
  5. [root@harbor1 harbor]# cp harbor.yml.tmpl harbor.yml
  6. [root@harbor1 harbor]# vim harbor.yml
  7. 修改以下5行
  8. hostname: harbor1.kylin.com
  9. #开启https需要生成证书 ,但是自己生成的证书不可信,还是需要加入不安全的惊醒仓库,所以此处建议关闭
  10. #https:
  11. # port: 443
  12. #certificate: /your/certificate/path 公钥证书
  13. #private_key: /your/private/key/path 私钥证书
  14. [root@harbor1 harbor]# grep -vEn "#|^$" harbor.yml
  15. 5:hostname: harbor1.kylin.com
  16. 8:http:
  17. 10: port: 80
  18. 34:harbor_admin_password: Harbor12345
  19. 37:database:
  20. 39: password: root123
  21. 41: max_idle_conns: 100
  22. 44: max_open_conns: 900
  23. 47:data_volume: /data
  24. 71:trivy:
  25. 73: ignore_unfixed: false
  26. 79: skip_update: false
  27. 82: insecure: false
  28. 95:jobservice:
  29. 97: max_job_workers: 10
  30. 99:notification:
  31. 101: webhook_job_max_retry: 10
  32. 103:chart:
  33. 105: absolute_url: disabled
  34. 108:log:
  35. 110: level: info
  36. 112: local:
  37. 114: rotate_count: 50
  38. 118: rotate_size: 200M
  39. 120: location: /var/log/harbor
  40. 132:_version: 2.3.0
  41. 189:proxy:
  42. 190: http_proxy:
  43. 191: https_proxy:
  44. 192: no_proxy:
  45. 193: components:
  46. 194: - core
  47. 195: - jobservice
  48. 196: - trivy

4.3 启动 Harbor

4.3.1 安装 docker-compose

启动之前先确保,本机已经安装 docker-compose 命令,如未安装会报错,请先安装。

  1. [root@harbor1 harbor]# ls
  2. common.sh harbor.v2.3.5.tar.gz harbor.yml harbor.yml.tmpl install.sh LICENSE prepare
  3. [root@harbor1 harbor]# ./install.sh
  4. [Step 0]: checking if docker is installed ...
  5. Note: docker version: 20.10.22
  6. [Step 1]: checking docker-compose is installed ...
  7. ✖ Need to install docker-compose(1.18.0+) by yourself first and run this script again.

docker-compose下载链接

链接:https://pan.baidu.com/s/1yh_CSiO6wXouqbpp4N5pkg

提取码:1111

  1. [root@harbor1 ~]# mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
  2. [root@harbor1 ~]#
  3. [root@harbor1 ~]# docker-compose
  4. [root@harbor1 ~]# docker-compose version
  5. docker-compose version 1.29.2, build 5becea4c
  6. docker-py version: 5.0.0
  7. CPython version: 3.7.10
  8. OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
  9. 如果联网状态下直接进行安装
  10. [root@localhost ~]# yum -y install docker-compose.noarch
  11. [root@localhost ~]# docker-compose version
  12. docker-compose version 1.22.0, build f46880f
  13. docker-py version: 4.0.2
  14. CPython version: 3.7.9
  15. OpenSSL version: OpenSSL 1.1.1f 31 Mar 2020

4.3.2 安装

  1. [root@localhost harbor]# pwd
  2. /usr/local/harbor
  3. [root@localhost harbor]# ls
  4. common.sh harbor.v2.3.5.tar.gz harbor.yml harbor.yml.tmpl install.sh LICENSE prepare
  5. [root@localhost harbor]# ./install.sh
  6. [root@localhost harbor]# docker images
  7. REPOSITORY TAG IMAGE ID CREATED SIZE
  8. goharbor/harbor-exporter v2.3.5 1730c6f650e2 12 months ago 81.9MB
  9. goharbor/chartmuseum-photon v2.3.5 47004f032938 12 months ago 179MB
  10. goharbor/redis-photon v2.3.5 3d0cedc89a0d 12 months ago 156MB
  11. goharbor/trivy-adapter-photon v2.3.5 5c0212e98070 12 months ago 133MB
  12. goharbor/notary-server-photon v2.3.5 f20a76c65359 12 months ago 111MB
  13. goharbor/notary-signer-photon v2.3.5 b9fa38eef4d7 12 months ago 108MB
  14. goharbor/harbor-registryctl v2.3.5 7a52567a76ca 12 months ago 133MB
  15. goharbor/registry-photon v2.3.5 cf22d3e386b8 12 months ago 82.6MB
  16. goharbor/nginx-photon v2.3.5 5e3b6d9ce11a 12 months ago 45.7MB
  17. goharbor/harbor-log v2.3.5 a03e4bc963d6 12 months ago 160MB
  18. goharbor/harbor-jobservice v2.3.5 2ac32df5a2e0 12 months ago 211MB
  19. goharbor/harbor-core v2.3.5 23baee01156f 12 months ago 193MB
  20. goharbor/harbor-portal v2.3.5 bb545cdedf5a 12 months ago 58.9MB
  21. goharbor/harbor-db v2.3.5 9826c57a5749 12 months ago 221MB
  22. goharbor/prepare v2.3.5 a1ceaabe47b2 12 months ago 255MB
  23. [root@harbor1 harbor]# docker ps
  24. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  25. 77f43df29d33 goharbor/harbor-jobservice:v2.3.5 "/harbor/entrypoint.…" About a minute ago Up About a minute (healthy) harbor-jobservice
  26. 351b0196198a goharbor/nginx-photon:v2.3.5 "nginx -g 'daemon of…" About a minute ago Up About a minute (healthy) 0.0.0.0:80->8080/tcp nginx
  27. 1cf642be8bda goharbor/harbor-core:v2.3.5 "/harbor/entrypoint.…" About a minute ago Up About a minute (healthy) harbor-core
  28. 7fcca6701a7d goharbor/redis-photon:v2.3.5 "redis-server /etc/r…" About a minute ago Up About a minute (healthy) redis
  29. 8527925dd844 goharbor/harbor-portal:v2.3.5 "nginx -g 'daemon of…" About a minute ago Up About a minute (healthy) harbor-portal
  30. b3d56391077e goharbor/registry-photon:v2.3.5 "/home/harbor/entryp…" About a minute ago Up About a minute (healthy) registry
  31. 35c744075364 goharbor/harbor-registryctl:v2.3.5 "/home/harbor/start.…" About a minute ago Up About a minute (healthy) registryctl
  32. b114a64763e2 goharbor/harbor-db:v2.3.5 "/docker-entrypoint.…" About a minute ago Up About a minute (healthy) harbor-db
  33. a280a5d3962a goharbor/harbor-log:v2.3.5 "/bin/sh -c /usr/loc…" About a minute ago Up About a minute (healthy) 127.0.0.1:1514->10514/tcp harbor-log
  34. [root@harbor1 harbor]# ss -tnl
  35. State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
  36. LISTEN 0 512 127.0.0.1:1514 0.0.0.0:*
  37. LISTEN 0 128 0.0.0.0:111 0.0.0.0:*
  38. LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
  39. LISTEN 0 128 *:9090 *:*
  40. LISTEN 0 128 [::]:111 [::]:*
  41. LISTEN 0 512 *:80 *:*
  42. LISTEN 0 128 [::]:22 [::]:*
  43. [root@harbor1 harbor]# docker-compose ps
  44. Name Command State Ports
  45. ---------------------------------------------------------------------------------------------
  46. harbor-core /harbor/entrypoint.sh Up (healthy)
  47. harbor-db /docker-entrypoint.sh 96 13 Up (healthy)
  48. harbor-jobservice /harbor/entrypoint.sh Up (healthy)
  49. harbor-log /bin/sh -c /usr/local/bin/ ... Up (healthy) 127.0.0.1:1514->10514/tcp
  50. harbor-portal nginx -g daemon off; Up (healthy)
  51. nginx nginx -g daemon off; Up (healthy) 0.0.0.0:80->8080/tcp
  52. redis redis-server /etc/redis.conf Up (healthy)
  53. registry /home/harbor/entrypoint.sh Up (healthy)
  54. registryctl /home/harbor/start.sh Up (healthy)
  55. [root@harbor1 harbor]#

  1. [root@harbor1 harbor]# ls -lh /data/
  2. 总用量 0
  3. drwxr-xr-x 2 10000 10000 6 1月 5 14:20 ca_download
  4. drwx------ 3 unbound input 18 1月 5 14:20 database
  5. drwxr-xr-x 2 10000 10000 6 1月 5 14:20 job_logs
  6. drwxr-xr-x 2 unbound input 6 1月 5 14:20 redis
  7. drwxr-xr-x 2 10000 10000 6 1月 5 14:20 registry
  8. drwxr-xr-x 5 root root 46 1月 5 14:20 secret

data目录包含的文件夹和相应的作用

模块

说明

ca_download

存放用户访问Harbor时所需的CA。

database

存放数据库的目录,Harbor、Clair和Notary 数据库的数据都在此目录

job_logs

存放JobService的日志信息

redis

缓存数据

registry

存放 OCI Artifacts数据(对于大部分用户来说是镜像数据)

secret

存放Harbor内部组件通信所需的加密信息

#chart_storage

存放Helm v2版本的Chart数据。

4.3.3 登录web页面

win电脑需要在hosts文件添加域名才可以使用域名访问,也可以直接使用IP地址访问

http://192.168.11.11/

账号:admin

密码:Harbor2345

4.4 停止与启动和重启Harbor

  1. cd /usr/local/harbor
  2. #停止harbor
  3. docker-compose stop
  4. docker ps -a
  5. #启动harbor
  6. docker-compose start
  7. #重启harbor
  8. docker-compose restart
  9. #如果重启不成功,则直接使用 install.sh 脚本
  10. # docker-compose down
  11. # ./install.sh

4.5 harbor https 配置

  1. [root@harbor1 harbor]# docker-compose down
  2. [root@harbor1 harbor]# docker ps -a
  3. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  4. [root@harbor1 ~]# mkdir /etc/certs
  5. [root@harbor1 ~]# cd /etc/certs/
  6. #生成自签证书
  7. [root@harbor1 certs]# openssl genrsa -out harbor-ca.key 2048
  8. [root@harbor1 certs]# openssl req -x509 -new -nodes -key harbor-ca.key -subj "/CN=harbor1.kylin.com" -days 7120 -out harbor-ca.crt
  9. [root@harbor1 certs]# ls
  10. harbor-ca.crt harbor-ca.key
  11. [root@harbor1 certs]# cd /usr/local/harbor/
  12. #修改harbor配置文件
  13. [root@harbor1 harbor]# vim harbor.yml
  14. 13 https:
  15. 14 # https port for harbor, default is 443
  16. 15 port: 443
  17. 16 # The path of cert and key files for nginx
  18. 17 certificate: /etc/certs/harbor-ca.crt #注意修改保存公钥的路径
  19. 18 private_key: /etc/certs/harbor-ca.key #注意修改保存私钥的路径
  20. #重新执行安装脚本
  21. ./install.sh
  22. #注意自签名证书是不被信任的所以,还是需要配置 --insecure-registry harbor1.kylin.com 才可以使用,或者直接使用授权证书

4.6 配置 docker 使用 harbor 仓库上传下载镜像

4.6.1 编辑 docker 配置文件

可以编写daemon或者一下文件,本文开篇已经写过daemon这里可以不用在写

  1. vim /lib/systemd/system/docker.service
  2. "insecure-registries": [
  3. "https://harbor1.kylin.com",
  4. "https://harbor2.kylin.com",
  5. "https://img.kylin.com"
  6. ]
  7. #配置dns解析
  8. cat >> /etc/hosts <<EOF
  9. 192.168.11.11 harbor1.kcc.com
  10. 192.168.11.12 harbor2.kcc.com
  11. 192.168.11.100 harbor.kcc.com
  12. EOF
  13. #重启服务
  14. systemctl daemon-reload
  15. systemctl restart docker

4.6.2 验证能否登录 harbor

可以现在界面创建一个项目,添加一个成员并设置为项目的管理员

  1. [root@harbor1 harbor]# docker login harbor1.kylin.com
  2. Username: user1
  3. Password:
  4. WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
  5. Configure a credential helper to remove this warning. See
  6. https://docs.docker.com/engine/reference/commandline/login/#credentials-store
  7. Login Succeeded #出现这个表示登录成功

4.6.3 测试上传和下载镜像

将之前构建的镜像打标签上传到 harbor 服务器用于测试

4.6.3.1 导入镜像

  1. #先给镜像打tag
  2. [root@harbor1 ~]# docker tag busybox:latest harbor1.kylin.com/kylin1/bbox:v1
  3. [root@harbor1 ~]# docker images | grep bbox
  4. harbor1.kylin.com/kylin1/bbox v1 beae173ccac6 12 months ago 1.24MB
  5. #上传如果提示project imagesbase not found表示没有这个项目需要先去web端创建项目
  6. [root@harbor1 harbor]# docker push harbor1.kylin.com/kylin1/bbox:v1
  7. Using default tag: latest
  8. The push refers to repository [harbor1.kylin.com/kylin1/bbox]
  9. tag does not exist: harbor1.kylin.com/kylin1/bbox:latest
  1. #创建后再次上传
  2. [root@harbor1 ~]# docker push harbor1.kylin.com/kylin1/bbox:v1
  3. The push refers to repository [harbor1.kylin.com/kylin1/bbox]
  4. 01fd6df81c8e: Pushed
  5. v1: digest: sha256:62ffc2ed7554e4c6d360bce40bbcf196573dd27c4ce080641a2c59867e732dee size: 527

新建项目时,勾选公开表示可以匿名下载本项目中镜像,但是上传必须登录,如果不勾选表示上传和下载都得登录

4.6.3.2 下载镜像

下载镜像的 docker 主机需要配置 insecure-registries,如果使用可信的证书,则不需要

在harbor2上进行下载测试

  1. #下载时可以写IP地址,如写域名需要配置dns
  2. [root@harbor2 ~]# docker login harbor1.kylin.com
  3. #拉去命令可以登录网页版进行复制
  4. [root@harbor2 ~]# docker pull harbor1.kylin.com/kylin1/bbox@sha256:62ffc2ed7554e4c6d360bce40bbcf196573dd27c4ce080641a2c59867e732dee
  5. [root@harbor2 ~]# docker images
  6. REPOSITORY TAG IMAGE ID CREATED SIZE
  7. harbor1.kylin.com/kylin1/bbox <none> beae173ccac6 12 months ago 1.24MB

4.7 实现 harbor 高可用

高可用实现方式

Harbor 支持基于策略的 Docker 镜像复制功能,这类似于MySQL 的主从同步,其可以实现不同的数据中心、不同的运行环境之间同步镜像,并提供友好的管理界面,大大简化了实际运维中的镜像管理工作,已经有用很多互联网公司使用harbor 搭建内网 docker 仓库的案例,并且还有实现了双向复制的案列

4.7.1 实现双向同步复制的高可用

架构图

4.7.1.1 部署harbor的同步集群

#安装俩台harbor主机 harbor1 harbor2

#配置文件harbor.yml

vim harbor.yml

hostname: 192.168.11.11/12

#这里只能写的IP地址,写域名会导致创建目标仓库测试失败

#配置 Harbor 复制必须使用 https

#启动

./install.sh

在 harbor1 的 web 页面配置

这里目标名称可以随便写,访问ID访问密码按自己的情况填写,验证证书不要勾选,之后点测试连接,然后点确定

配置复制规则

名称:随便写

复制模式:选择推送模式,还是拉取模式

触发模式:事件驱动 (如果要将同步之前的旧镜像推送到远程,设置为手动)

其他:默认

###同样的操作在harbor2上进行配置

测试

能从 harbor1 上传下载镜像

能从 harbor2 下载从 harbor1 同步过来的镜像

反之亦然,如果全部成功说明同步没有问题

  1. [root@harbor2 harbor]# docker tag goharbor/nginx-photon:v2.3.5 harbor2.kylin.com/kylin1/harbortest:v1
  2. [root@harbor2 harbor]# docker login harbor2.kylin.com
  3. [root@harbor2 harbor]# docker push harbor2.kylin.com/kylin1/harbortest:v1

本来原有的镜像使用手动复制进行同步

4.7.1.2 安装 nginx

在开启两台虚拟机11.21和11.22

  1. 两台都执行
  2. [root@localhost ~]# yum -y install nginx
  3. #如果 nginx 需要监听 VIP,需要配置下面内核参数
  4. #vim /etc/sysctl.conf
  5. #net.ipv4.ip_nonlocal_bind = 1
  6. #此参数表示是否允许服务绑定一个本机不存在的IP地址
  7. #sysctl -p
  8. [root@localhost ~]# cp /etc/nginx/nginx.conf{,.bak}
  9. [root@localhost ~]# vim /etc/nginx/nginx.conf
  10. user nginx;
  11. worker_processes auto;
  12. error_log /var/log/nginx/error.log;
  13. pid /run/nginx.pid;
  14. include /usr/share/nginx/modules/*.conf;
  15. events {
  16. worker_connections 1024;
  17. }
  18. stream {
  19. upstream harbor_server {
  20. hash $remote_addr consistent;
  21. server 192.168.11.11:443 max_fails=3 fail_timeout=30s;
  22. server 192.168.11.12:443 max_fails=3 fail_timeout=30s;
  23. }
  24. server {
  25. listen 80;
  26. listen 443;
  27. proxy_connect_timeout 3s;
  28. proxy_timeout 30s;
  29. proxy_pass harbor_server;
  30. }
  31. }
  32. [root@localhost ~]# nginx -t
  33. [root@localhost ~]# systemctl enable --now nginx
  34. [root@localhost ~]# ss -tnl
  35. State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
  36. LISTEN 0 511 0.0.0.0:80 0.0.0.0:*
  37. LISTEN 0 511 0.0.0.0:443 0.0.0.0:*

4.7.1.3 安装keepalive

#俩台都执行

  1. [root@localhost ~]# vim /etc/keepalived/keepalived.conf
  2. ! Configuration File for keepalived
  3. global_defs {
  4. router_id LVS_DEVEL
  5. }
  6. vrrp_script check-nginx {
  7. script "/etc/keepalived/chnginx.sh"
  8. weight -30
  9. timeout 2
  10. fall 2
  11. rise 3
  12. interval 2
  13. }
  14. vrrp_instance VI_1 {
  15. state MASTER
  16. interface ens160
  17. virtual_router_id 80
  18. priority 100
  19. advert_int 1
  20. authentication {
  21. auth_type PASS
  22. auth_pass 1111
  23. }
  24. virtual_ipaddress {
  25. 192.168.11.100/24
  26. }
  27. track_script {
  28. check-nginx
  29. }
  30. }
  31. ~
  32. [root@localhost ~]# vim /etc/keepalived/chnginx.sh
  33. #!/bin/bash
  34. /usr/bin/killall -0 nginx
  35. [root@localhost ~]# chmod +x /etc/keepalived/chnginx.sh
  36. #ke2配置修改相关内容和脚本
  37. vrrp_instance VI_1 {
  38. state BACKUP
  39. interface ens160
  40. virtual_router_id 80
  41. priority 80
  42. #启动全部
  43. [root@localhost keepalived]# systemctl start keepalived.service
  44. [root@localhost keepalived]# systemctl enable keepalived.service
  45. [root@localhost ~]# ip a
  46. 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
  47. link/ether 00:0c:29:63:07:0f brd ff:ff:ff:ff:ff:ff
  48. inet 192.168.11.21/24 brd 192.168.11.255 scope global noprefixroute ens160
  49. valid_lft forever preferred_lft forever
  50. inet 192.168.11.100/24 scope global secondary ens160
  51. valid_lft forever preferred_lft forever
  52. inet6 fe80::4bfd:424c:d8e:a76/64 scope link noprefixroute
  53. valid_lft forever preferred_lft forever

4.7.1.4 docker测试

在harbor1上传镜像,之后在harbor2上使用vip进行登录下载或者上传测试

[root@harbor2 docker]# docker login img.kylin.com

Login Succeeded

[root@harbor2 ~]# docker images | grep bbox

[root@harbor2 ~]#

[root@harbor2 harbor]# docker pull img.kylin.com/kylin1/bbox:v1

[root@harbor2 harbor]# docker images | grep bbox

harbor1.kylin.com/kylin1/bbox v1 beae173ccac6 12 months ago 1.24MB

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/41799
推荐阅读
相关标签
  

闽ICP备14008679号