Harbor域名切换解决方案

Harbor域名切换解决方案

环境如下
都要安装好Harbor,安装不会的:
https://blog.csdn.net/weixin_45308292/article/details/107248788

安装的时候,关于那个Harbor配置文件,如果没有特殊(例如主机有很多提供服务的网卡),harbor.conf 里面,hostname 项写自己主机IP就行,亲测可行
在这里插入图片描述

主机名 角色 IP
master master 192168.1.11
ord_slave slave 192.168.1.12
new_slave slave 192.168.1.13

前言

公司采用主从方案,ord_slave,存储不够了,需要切换new_slave为slave,为什么不用两个slave呢,因为这个slave是另一个机房的master,所以只能替换

但是总maste(192.168.1.11) 推送时候slave域名对应的IP是ord_slave的,需要切换域名映射的IP为new_slave的IP

这里去测试,域名切换new_slave(新)的IP,正常么,再测试回退域名到老IP否正常

1)先把域名映射到老仓库

这个Habror的容器不太一样,一般容器启动会把本宿主机/etc/resolv.conf(dns),挂进去,这样在容器启动之前,修改宿主机/etc/resolv.conf就可以,但是Harbor相关容器不会,所以修改所有Harbor容器hosts实现,当然改resolv.conf也可以

下面操作在master主机执行
vim hosts.sh 
#!/bin/bash
a=$(docker ps | grep harbor | awk '{print $1}')
for i in $a
do
        docker exec -i  $i  /bin/bash << EOF
        cat /etc/hosts  | grep -v www > /etc/hosts
        echo "192.168.1.12 www.ajbn.net" >> /etc/hosts
EOF
done
sh hosts.sh 

2)访问创建项目,测试并推送到域名(老仓库)

1.创建项目

如何上传和创建项目,我这篇博客下面有,这里不阐述
https://blog.csdn.net/weixin_45308292/article/details/107248788

访问 http://192.168.1.11
创建一个ord_slave项目
Harbor域名切换解决方案_第1张图片
上传镜像,master主机操作

docker tag goharbor/chartmuseum-photon:v0.8.1-v1.7.5  192.168.1.11/ord_slave/test1:v1
docker push 192.168.1.11/ord_slave/test1:v1 

Harbor域名切换解决方案_第2张图片

2.添加域名(对应ord_slaveIP)

master上操作
Harbor域名切换解决方案_第3张图片

3.推送到老仓库

master操作
Harbor域名切换解决方案_第4张图片

4.查看

http://192.168.1.12
Harbor域名切换解决方案_第5张图片

3)切换域名到新仓库

master主机上操作

注意域名对应IP,我改成new_slave的了

vim hosts.sh 
#!/bin/bash
a=$(docker ps | grep harbor | awk '{print $1}')
for i in $a
do
        docker exec -i  $i  /bin/bash << EOF
        cat /etc/hosts  | grep -v www > /etc/hosts
        echo "192.168.1.13 www.ajbn.net" >> /etc/hosts
EOF
done
sh hosts.sh

4)推送镜像到新仓库

为了还原真实环境,我们不进行创建新的项目,还用上面创建的项目

http://192.168.1.13
可以看到不会自动推送,需要我们手动去推送
Harbor域名切换解决方案_第6张图片

回到 http://192.168.1.11 中,手动推送

Harbor域名切换解决方案_第7张图片

到http://192.168.1.13 查看 ,成功

Harbor域名切换解决方案_第8张图片

5)测试回滚到ord_slave

master主机上操作,IP切换
vim hosts.sh 
#!/bin/bash
a=$(docker ps | grep harbor | awk '{print $1}')
for i in $a
do
        docker exec -i  $i  /bin/bash << EOF
        cat /etc/hosts  | grep -v www > /etc/hosts
        echo "192.168.1.12 www.ajbn.net" >> /etc/hosts
EOF
done
sh hosts.sh 
因为原来的项目已经有了,创建一个新的来测试

http://192.168.1.11
Harbor域名切换解决方案_第9张图片

master主机上操作, 上传镜像
docker tag goharbor/registry-photon:v2.6.2-v1.7.5 192.168.1.11/ord_slave_2/test1:re
docker push 192.168.1.11/ord_slave_2/test1:re
master添加复制规则

Harbor域名切换解决方案_第10张图片

6)查验结果

http://192.168.1.12
Harbor域名切换解决方案_第11张图片

你可能感兴趣的:(容器与自动化,docker,k8s,Rancher)