主机MTU值和Docker MTU值不一致导致Harbor无法推送问题
最近收到需求需要在一台主机上部署Habrbor仓库。该主机因为是虚拟机在其环境得特殊性他的MTU得配置必须为1420。使用harbor安装脚本部署后。发现该harbor服务运页面可以正常访问,但是在使用中发现了两个问题。
1、与该harbor不在一个网段得主机,可以docker login,但是无法 push /pull 镜像。
2、该harbor与其他harbor配置同步得时候push任务是可以成功得,pull任务会卡住。
在经过查看日志和网络抓包发现导致该问题得原因是因为主机MTU值和Docker MTU值不一致导致得。
为什么?MTU是什么?
TODO
解决方法:
1、修改Docker MTU 值:
vi /etc/docker/daemon.json
#添加
"mtu": 1420,
#重启docker
systemctl restart docker.service
2、修改Harbor - docker-compose文件里的网络配置
#添加driver_opts
networks:
harbor:
external: false
driver_opts:
com.docker.network.driver.mtu: 1420
harbor-chartmuseum:
external: false
driver_opts:
com.docker.network.driver.mtu: 1420
#重启harbor
docker-compose down
docker-compose up -d
3、检查 修改后 的网卡信息
ip addr
ifconfig
docker network ls
docker network inspect harbor_harbor