Docker Harbor 2.3.4 集群 双主复制高可用镜像仓库
下面操作大部分是雙節點同時執行一樣的命令,不同的地方我會進行標注和特殊說明
文章目錄
- 一、環境準備
- 1. 環境要求
- 2. 節點總覽
- 3. 安裝docker-compose
- 二、安裝harbor
- 2.1. 下載
- 2.2. 解壓
- 2.3. 調整配置
- 2.4. 安裝 harbor
- 2.5. 效果驗證
- 三、Docker開啟遠程API
- 3.1. 修改配置
- 3.2. 支持http
- 3.3. 重新啟動Docker服務
- 3.4. 防火墻管理
- 3.5. 重新啟動
- 3.6. 監控狀態
- 四、測試推送鏡像
- 4.1. 新建項目
- 4.2. 登錄harbor倉庫
- 4.3. tag鏡像
- 4.4. 上傳鏡像到私有倉庫
- 4.5. 登錄
- 4.6. 驗證鏡像
- 五、拉取鏡像
- 5.1. 登錄
- 5.2. 拉取鏡像
- 六、雙主復制
- 6.1. 登錄雙節點
- 6.2. 新建目標
- 6.3. 新建復制規則
- 6.4. 規則效果
- 6.5. 鏡像同步驗證
- 6.6. 新建目標
- 6.7. 新建規則
- 6.8. 規則效果
- 6.9. 總結
- 七、基本操作
- 7.1. 下線
- 7.2. 監控狀態
- 7.3. 重新部署上線
一、環境準備
1. 環境要求
環境docker版本17.06.0+
| 系統版本 | centOS 7.6.1810 |
| docker | 20.10.11 |
| docker-compose | 1.23.2 |
| jdk | 1.8.0_301 |
2. 節點總覽
| 192.168.92.129 | 80 | harbor節點1 |
| 192.168.92.130 | 80 | harbor節點2 |
3. 安裝docker-compose
服務器有網絡安裝方式:
docker-compose是docker用來管理容器的一個工具,harbor的運行基于docker-compose。
- 安裝docker-compose:
- 如果github安裝太慢,可使用下面的高速地址安裝:
-
服務器無網絡時安裝方式:
先下載好(下載地址:https://github.com/docker/compose/releases/)后,上傳至服務器centos的/usr/local/bin目錄下 -
賦予權限
不管使用哪種方式下載,上傳到指定目錄后都需要對文件進行賦權:
二、安裝harbor
2.1. 下載
下載安裝包:
官網地址:https://github.com/vmware/harbor/releases/
下載速度慢可用這個地址:http://harbor.orientsoft.cn/
2.2. 解壓
cd /app tar -zxvf harbor-offline-installer-v2.3.4.tgz2.3. 調整配置
特殊說明:如果搭建的單機環境的話,配置服務器ip即可,如果集群環境,配置各自的ip
修改harbor配置文件
從模板harbor.yml.tmpl拷貝一份文件命名harbor.yml
PS: 這里跟以前2.x以下的版本不一樣,沒有了harbor.cfg文件,我們需要手動復制harbor.yml.tmpl在做修改即可修改配置harbor.yml文件如下:
PS: harbor作為私有倉庫作用在公司內網,一般都是信任關系,沒多大必要做https,使用http即可!
所以 把https相關的已經注釋掉
- 192.168.92.129 節點
harbor默認存儲目錄是/data,但是我服務器存儲大空間在/app磁盤,因此,調整了目錄存儲路徑
集群環境,配置要在配置一份,證書都用自己的,不能復制給另一臺使用
- 192.168.92.130 節點
2.4. 安裝 harbor
運行install.sh文件安裝harbor
cd /app/harbor/ ll ./prepare ./install.sh
2.5. 效果驗證
進入登錄頁面:
http://192.168.92.129
https://192.168.92.130/
默認用戶名:
密碼:
Harbor12345- 登錄頁面
三、Docker開啟遠程API
3.1. 修改配置
用vim編輯器修改docker.service文件
vim /usr/lib/systemd/system/docker.service需要修改的部分:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock修改后的部分:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock3.2. 支持http
讓Docker支持http上傳鏡像(docker對于私有倉庫默認都是使用https,不信任http)
- 192.168.92.129節點操作:
- 192.168.92.130節點操作:
如果端口號不是 80;加上端口號:
echo '{ "insecure-registries":["192.168.92.129:9080"] }' > /etc/docker/daemon.jsonor
echo '{ "insecure-registries":["192.168.92.130:9080"] }' > /etc/docker/daemon.json3.3. 重新啟動Docker服務
systemctl daemon-reload systemctl restart docker3.4. 防火墻管理
開啟防火墻的Docker構建端口(需要的話)
企業中需要開啟防火墻
3.5. 重新啟動
cd /app/harbor docker-compose down -v docker-compose up -d3.6. 監控狀態
查看harbor的運行狀態
cd /app/harbor docker-compose ps四、測試推送鏡像
這第四測試推送鏡像,都在192.168.92.129節點操作
4.1. 新建項目
刪除默認的項目
新建名稱為k8s項目
4.2. 登錄harbor倉庫
docker login -u admin -p Harbor12345 192.168.92.1294.3. tag鏡像
docker tag nginx:latest 192.168.92.129/k8s/nginx:v1.04.4. 上傳鏡像到私有倉庫
docker push 192.168.92.129/k8s/nginx:v1.0
4.5. 登錄
進入項目內部
4.6. 驗證鏡像
驗證上傳的鏡像
- 如果遇到一下問題(沒有就跳過):
unauthorized: unauthorized to access repository: ces/ces-auth, action: push: unauthorized to access repository: ces/ces-auth, action: push
所有操作多對的,那可能是端口模式默認的 80/443
- 解決方案
加端口(8080)
五、拉取鏡像
這第四測試推送鏡像,都在192.168.92.130節點操作
5.1. 登錄
docker login -u admin -p Harbor12345 192.168.92.129 vim /etc/docker/daemon.json { "insecure-registries":["192.168.92.129","192.168.92.130"] }說明:這里可以配置nginx的服務器IP地址,或者nginx的本地域名,如果配置本地域名的話,需要在hosts為你就按中配置域名
- 重新啟動Docker服務
- 重新啟動
- 監控狀態
查看harbor的運行狀態
5.2. 拉取鏡像
docker pull 192.168.92.129/k8s/nginx:v1.0六、雙主復制
6.1. 登錄雙節點
6.2. 新建目標
129操作
填寫信息如下:
填寫完畢后,測試連接是否成功
6.3. 新建復制規則
重要的是選擇目標
6.4. 規則效果
6.5. 鏡像同步驗證
回到130節點,刷新瀏覽器,就會多一個k8s的項目
6.6. 新建目標
在130節點新建一個目標
填寫信息如下:
6.7. 新建規則
重要的是選擇目標
6.8. 規則效果
6.9. 總結
如果129服務器節點如果存在相同的項目和鏡像,不會發生真正的傳輸,但是會比對鏡像的簽名,如果一樣就不會再做額外的工作了。
七、基本操作
7.1. 下線
cd /app/harbor docker-compose down -v7.2. 監控狀態
查看harbor的運行狀態
cd /app/harbor docker-compose ps7.3. 重新部署上線
docker-compose up -dor
docker-compose restart總結
以上是生活随笔為你收集整理的Docker Harbor 2.3.4 集群 双主复制高可用镜像仓库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: caas k8s主控节点如何查询_k8s
- 下一篇: docker: Error respon