一、容器服務的更新與發現拓撲圖:
1、架構組件的功能:
-
consul template:(自動生成nginx的組態檔nginx.conf)
-
consul server:服務發現、更新
-
consul agent:對接后面的節點
-
代碼實作:
實驗1:conslu
兩個節點:1、做nginx反向代理+consul容器服務 2、nginx和httpd的業務容器節點
1、在監控服務器1上:14.0.0.10
將docker-compose包拖進來到~目錄下:
chmod +x docker-compose
mv docker-compose /usr/local/bin/
mkdir consul
cd consul
將consul_0.9.2、consul-template的連個包拖進來,
unzip consul_0.9.2_linux_amd64.zip
mv consul /usr/local/bin/
consul agent \ '//設定代理'
-server \ '//服務功能'
-bootstrap \ '//參與選舉'
-ui \ '//提供web界面'
-data-dir=/var/lib/consul-data \ '//提供一個代理存盤資料目錄'
-bind=14.0.0.10 \ '//系結本地地址'
-client=0.0.0.0 \ '//面對的客戶端地址'
-node=consul-server01 &> /var/log/consul.log & 功能都已開啟
consul member 查看集群資訊
consul info | grep leader 查看管理資訊
curl 127.0.0.1:8500/v1/status/peers 查看集群server成員
curl 127.0.0.1:8500/v1/status/leaders 查看集群Raf leader
curl 127.0.0.1:8500/v1/catalog/services 查看注冊的所有服務
curl 127.0.0.1:8500/v1/catalog/nginx 查看nginx服務的資訊
curl 127.0.0.1:8500/v1/catalog/nodes 集群節點詳細資訊
在瀏覽器上輸入“14.0.0.10:8500”即可查看網頁界面 “注意需要關閉防火墻墻的安全機制!!!”
在nginx和httpd的業務容器節點上:14.0.0.11
docker run -d \
--name=registrator \ '//定義容器名稱,對接nginx和consul'
--net=host \ '定義網路'
-v /var/run/docker.sock:/tmp/docker.sock \ '指定資料卷,存盤資訊'
--restart=always \
gliderlabs/registrator:latest \ '定義鏡像'
-ip=14.0.0.11 \ '指定本地地址'
consul://14.0.0.10:8500
docker ps -a ‘nginx、httpd與consul成功對接’
docker run -itd -p 83:80 --name test-01 -h test01 nginx
docker run -itd -p 84:80 --name test-02 -h test02 nginx
docker run -itd -p 85:80 --name test-03 -h test03 httpd
docker run -itd -p 86:80 --name test-04 -h test04 httpd 到監控機14.0.0.10:8500上觀察已監控到業務容器!!
2、在監控服務器14.0.0.10上:
vim /root/consul/nginx.ctmpl
upstream http_backend {
{{range service "nginx"}}
server {{.Address}}:{{.Port}};
{{end}}
{{range service "httpd"}}
server {{.Address}}:{{.Port}};
{{end}}
}
server {
listen 88;
server_name localhost 14.0.0.10;
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反向代理服務器:
cd /opt/
yum install gcc gcc-c++ make expat* pcre* perl* zlib* -y
tar zxvf nginx-1.12.0.tar.gz
cd nginx-1.12.2
./configure --prefix=/usr/local/nginx
make && make install
vim /usr/local/nginx/conf/nginx.conf 第19行添加
include vhost/*.conf;
mkdir /usr/local/nginx/conf/vhost/
mkdir /var/log/nginx
/usr/local/nginx/sbin/nginx 啟動nginx反向代理服務
cd /root/consul/ 將consul-template的包拖進來!
unzip consul-template_0.19.3_linux_amd64.zip
mv /usr/local/bin/
consul-template -consul-addr 14.0.0.10:8500 \
-template "/root/consul/nginx.ctmpl:/usr/local/nginx/conf/vhost/kgc.conf:/usr/local/nginx/sbin/nginx -s reload" \
--log-level=info
docker logs -f test-01
docker logs -f test-02
docker logs -f test-03
docker logs -f test-04
在瀏覽器上訪問:14.0.0.10:88 監控機上的nginx做反向代理88埠提供服務!! (如果訪問不了就換一個埠號)
二、Harbor私庫:


代碼實作:
實驗2:注意關閉防火墻機制
1、做私庫站點服務器:14.0.0.13
2、客戶端服務器:14.0.0.14
第一步:在私庫服務服務器的節點上:
將docker-compose、harbor拖進來
chmod +x docker-compose
mv dokcer-compose /usr/local/bin/
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
cd /usr/local/harbor/
vim harbor.cfg 第5行修改
hostname = 14.0.0.13(本機地址)
sh install.sh 安裝harbor
到瀏覽器上訪問:14.0.0.13,登錄harbor系統
用戶名:admin
密碼:Harbor12345
本地登錄:docker login -u admin -p Harbor12345 http://127.0.0.1
從官網下載鏡像上傳到自創的私庫里面: 1、下載鏡像 2、打標簽 3、上傳動作 “到瀏覽器上查看是否上傳成功?”
現在瀏覽器上創建kgc的專案組,才能上傳!!!!
docker pull nginx
docker tag nginx:latest 127.0.0.1/kgc/nginx:v1
docker push 127.0.0.1/kgc/nginx
第二步:在客戶機服務器的節點上:
vim /usr/lib/systemd/system/docker.service 第14行添加 為了避免https安全機制的干擾
fd:// --insecure-registry 14.0.0.13 --containerd
systemctl daemon-reload
systemctl restart docker
docker login -u admin -p Harbor12345 http://14.0.0.13
docker tag centos:7 14.0.0.13/kgc/centos7:v1 打標簽并上傳鏡像!!
docker push 14.0.0.13/kgc/centos7
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/138283.html
標籤:其他
上一篇:Java技術好文精選整理:Java基礎+Spring全家桶+并發+容器+面題面經
下一篇:原始碼編譯安裝Apache服務
