日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

部署docker-consul群集,Harbor构建Docker私有仓库

發布時間:2024/2/28 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 部署docker-consul群集,Harbor构建Docker私有仓库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 部署docker-consul群集,Harbor構建Docker私有倉庫
    • 了解Harvor
    • 案例概述
    • Docker consul服務了解
  • 部署Harbor服務過程
    • 不是本地上傳鏡像操作
    • 在用戶端操作
  • 部署Docker consul群集實驗過程
    • 安裝部署docker-compose
    • 配置Docker consul服務
    • 安裝Gliderlabs/Registrator
    • 安裝consul-template
    • 準備template nginx模板
    • 編譯安裝nginx
    • 配置開啟template
    • 查看日志

部署docker-consul群集,Harbor構建Docker私有倉庫

了解Harvor

  • Harbor是VMware公司開源的企業級Docker Registry項目
  • Harbor的優勢
    ●基于角色控制
    ●基于鏡像的復制策略
    ●支持LDAPIAD
    ●圖像刪除和垃圾收集
    ●圖形U
    ●審計
    ●RESTful API

案例概述

  • 最近創鑫公司又提出一個新需求,將項目全部打包成鏡
    像部署私有倉庫服務,經過幾輪商討,最終選擇
    Docker Harbor
  • Docker Harbor有可視化的Web管理界面,可以方便
    管理Docker鏡像,又提供了多個項目的鏡像權限管理
    及控制功能

了解基礎名稱

Proxy
●通過一個前置的反向代理統一接收瀏覽器、Docker客戶端的請求,并將請求轉發給后端不同的服務

Registry
●負責儲存Docker鏡像,并處理docker push/pull命令
Core services
●Harbor的核心功能,包括UI、webhook、token服務
Database
●為core services提供數據庫服務
Log collector
●負責收集其他組件的log,供日后進行分析

Harbor可選參數
●電子郵件設置、harbour_admin_password、auth_mode
●self_registration、token_expiration
●oproject_creation_restriction、verify_remote_cert
啟動并安裝Harbor

Docker consul服務了解

Consul是一個分布式、高可用的系統,是一個為了解決在生產環境中服務注冊,服務發現,服務配置的一個工具,它有多個組件,提供如下幾個關鍵功能:

  • 服務發現: Consul的某些客戶端可以提供一個服務,例如api或者mysql,其它客戶端可以使用Consul去發現這個服務的提供者。使用DNS或者HTTP,應用可以很容易的找到他們所依賴的服務。
  • 健康檢查: Consul客戶端可以提供一些健康檢查,這些健康檢查可以關聯到一個指定的服務(服務是否返回200 OK),也可以關聯到本地節點(內存使用率是否在90%以下)。這些信息可以被一個操作員用來監控集群的健康狀態,被服務發現組件路由時用來遠離不健康的主機。
  • 鍵值存儲: 應用可以使用Consul提供的分層鍵值存儲用于一些目的,包括動態配置、特征標記、協作、leader選舉等等。通過一個簡單的HTTP API可以很容易的使用這個組件。
  • 多數據中心: Consul對多數據中心有非常好的支持,這意味著Consul用戶不必擔心由于創建更多抽象層而產生的多個區域。

容器跟新拓撲圖

需要一下服務

  • Consul-Template是一個守護進程,用于實時查詢Consu集群信息
  • docker-compose非常適合組合使用多個容器進行開發的場景
  • Docker consul容器服務更新與發現
  • Gliderlabs/Registrator可以檢查容器運行狀態自動注冊,還可以注銷

案例需要

  • 實現單機網絡下容器與容器之間互通

  • 使用Docker compose創建容器

  • 搭建Consul服務實現自動發現和更新

部署Harbor服務過程

以下服務都是在有docker的前提下部署的!!!
安裝docker-compose

[root@localhost ~]# chmod +x docker-compose

系統可以識別

mv docker-compose /usr/local/bin/

查看是否安裝

[root@localhost ~]# docker-compose -v docker-compose version 1.21.1, build 5a3f1a3

安裝harbor

[root@localhost ~]# tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/

修改配置文件

[root@localhost ~]# cd /usr/local/harbor/ [root@localhost harbor]# vim harbor.cfg 5 hostname = 192.168.136.81

開啟Harbor

[root@localhost harbor]# sh install.sh

輸入地址查看

密碼Harbor12345默認

添加項目

打開kgc沒有創建鏡像

添加鏡像倉庫

登錄 [root@localhost harbor]# docker login -u admin -p Harbor12345 http://127.0.0.1下載鏡像 [root@localhost harbor]# docker pull nginx打標簽 上傳鏡像到Harbor [root@localhost harbor]# docker tag nginx:latest 127.0.0.1/kgc/nginx:v1上傳鏡像 [root@localhost harbor]# docker push 127.0.0.1/kgc/nginx

不是本地上傳鏡像操作

在開啟一臺服務端192.168.136.30

[root@localhost ~]# docker login -u admin -p Harbor12345 http://192.168.136.81 WARNING! Using --password via the CLI is insecure. Use --password-stdin. Error response from daemon: Get https://192.168.136.81/v2/: dial tcp 192.168.136.81:443: connect: connection refuse

以上操作拒絕是因為交互默認使用HTPS但是私有默認使用的是HTTP服務

解決方法(下面都指向對方地址)

[root@localhost ~]# vim /usr/lib/systemd/system/docker.service 14 ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.136.81

重啟服務

[root@localhost ~]# systemctl daemon-reload [root@localhost ~]# systemctl restart docker 登錄到Harbor docker login -u admin -p Harbor12345 http://192.168.136.81下載centos:7 [root@localhost ~]# docker pull centos:7標簽 [root@localhost ~]# docker tag centos:7 192.168.136.81/kgc/centos7:v1上傳鏡像 [root@localhost ~]# docker push 192.168.136.81/kgc/centos7

游覽器查看

在用戶端操作

退出和登錄

[root@localhost ~]# docker logout 192.168.136.81 [root@localhost ~]# docker login 192.168.136.81

移除Harbor所有容器清除

[root@localhost ~]# cd /usr/local/harbor/ [root@localhost ~]# docker-compose down -v

部署Docker consul群集實驗過程

實驗前提2臺服務器

服務端:192.168.136.81 需要配置軟件:Docker,docker-compose Docker consul

服務端:192.168.136.30 需要配置軟件:Docker,Gliderlabs/Registrator,consul-template

實驗目的:

安裝部署docker-compose

在192.168.136.81中配置docker-compose非常適合組合使用多個容器進行開發的場景

導入docker-compose 模板

[root@localhost ~]# chmod +x docker-compose

讓系統識別

[root@localhost ~]# mv docker-compose /usr/local/bin/

配置Docker consul服務

Docker consul容器服務更新與發現

[root@localhost ~]# mkdir consul [root@localhost ~]# cd consul/

解壓consul服務包

[root@localhost consul]# unzip consul_0.9.2_linux_amd64.zip

讓系統識別

[root@localhost consul]# mv consul /usr/bin/

配置服務軟件

[root@localhost consul]# consul agent \ -server \ -bootstrap \ -ui \ -data-dir=/var/lib/consul-data \ -bind=192.168.136.81 \ -client=0.0.0.0 \ -node=consul-server01 &> /var/log/consul.log &

解釋

[root@localhost consul]# consul agent \ 安裝agnt -server \ 安裝server -bootstrap \ 選舉 -ui \ 網頁查看 -data-dir=/var/lib/consul-data \ 數據存放位置 -bind=192.168.136.81 \ 綁定自己地址 -client=0.0.0.0 \ 監聽地址 -node=consul-server01 &> /var/log/consul.log & 在本地定義名稱

查看群集信息

[root@localhost consul]# consul members Node Address Status Type Build Protocol DC [root@localhost consul]# consul info | grep leaderleader = trueleader_addr = 192.168.136.81:8300

通過httpd api 獲取群集信息

curl 127.0.0.1:8500/v1/status/peers

群集Raf leader

curl 127.0.0.1:8500/v1/status/leader

查看服務

[root@localhost consul]# curl 127.0.01:8500/v1/catalog/services

群集節點信息信息

[root@localhost consul]# curl 127.0.01:8500/v1/catalog/nodes

打開游覽器查看節點管理頁面

輸入地址192.168.136.81:8500

安裝Gliderlabs/Registrator

在192.168.136.30容器安裝Gliderlabs/Registrator

可以檢查容器運行狀態自動注冊,還可以注銷

[root@localhost consul]# docker run -d \ --name=registrator \ --net=host \ -v /var/run/docker.sock:/tmp/docker.sock \ --restart=always \ gliderlabs/registrator:latest \ -ip=192.168.136.30 \ consul://192.168.136.81:8500

解釋

[root@localhost consul]# docker run -d \ 以容器運行registrator --name=registrator \ 名稱--net=host \ 僅主機 -v /var/run/docker.sock:/tmp/docker.sock \ 建立數據卷 --restart=always \ 重啟策略 gliderlabs/registrator:latest \ 下載鏡像 -ip=192.168.136.30 \ 自己的ip consul://192.168.136.81:8500 指向服務ip

測試服務發現是否功能正常

docker run -itd -p:83:80 --name test-01 -h test01 nginxdocker run -itd -p:84:80 --name test-02 -h test02 nginx[root@localhost ~]# docker run -itd -p:88:80 --name test-03 -h test03 httpd[root@localhost ~]# docker run -itd -p:89:80 --name test-04 -h test04 httpd

驗證httpd和nginx服務是否注冊到consul

在consul服務端查看服務

[root@localhost consul]# curl 127.0.0.1:8500/v1/catalog/services {"consul":[],"httpd":[],"nginx":[]}[root@localhost consul]#

安裝consul-template

Consul-Template是一個守護進程,用于實時查詢Consu集群信息,
并更新文件系統上任意數量的指定模板,生成配置文件。更新完成以后,
可以選擇運行shell命令執行更新操作,重新加載Nginx。Consul-Template
可以查詢Consul中的服務目錄、Key.Key-values等。
這種強大的抽象功能和查詢語言模板可以使Consul-Template特別適合動態的創建配置文件。
例如∶創建Apache/Nginx Proxy Balancers、Haproxy Backends

準備template nginx模板

[root@localhost consul]# vim nginx.ctmpl upstream http_backend {{{range service "nginx"}}server {{.Address}}:{{.Port}};{{end}} }server {listen 83;server_name localhost 192.168.136.81; access_log /var/log/nginx/kgc.cn-access.log;index index.html index.php;location / {proxy_set_header HOST $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header Client-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://http_backend;} }

編譯安裝nginx

yum install -y gcc gcc-c++ pcre-devel zlib-devel cd /opt tar zxvf nginx-1.12.0.tar.gz cd nginx-1.12.0 [root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx [root@localhost nginx-1.12.0]# make && make install

修改配置文件

[root@localhost conf]# cd /usr/local/nginx/conf/18 include mime.types; 19 include vhost/*conf; 添加20 default_type application/octet-stream;

創建vhost目錄和日志

[root@localhost conf]# mkdir /usr/local/nginx/conf/vhost [root@localhost conf]# mkdir /var/log/nginx

開啟服務

[root@localhost conf]# /usr/local/nginx/sbin/nginx

查看不到83端口號,因為沒有配置template

配置開啟template

template是跟新模板信息

配置生成文件

[root@localhost conf]# cd /root/consul/ [root@localhost consul]# unzip consul-template_0.19.3_linux_amd64_\(1\).zip

讓系統可以識別

[root@localhost consul]# mv consul-template /usr/local/bin/

配置監控(保持一直監控狀態)

consul-template -consul-addr 192.168.136.81:8500 \ -template

重啟開啟終端查看配文件查看是否生成

查看日志

刷新網頁192.168.136.81:83在192.168.136.30中查看日志,可以看到端口可以訪問

[root@localhost ~]# docker logs -f test-01 [root@localhost ~]# docker logs -f test-02

總結

以上是生活随笔為你收集整理的部署docker-consul群集,Harbor构建Docker私有仓库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。