成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Docker集群搭建-Consul

leo108 / 564人閱讀

摘要:基礎環(huán)境準備創(chuàng)建虛擬機安裝系統(tǒng)主機說明開啟并配置服務安裝在阿里云服務器上搭建公司私有倉庫搭建私有鏡像倉庫操作對象即阿里云服務器請參照這篇文章搭建私有倉庫和批量上傳鏡像到私有倉庫私有倉庫的使用在客戶端主機創(chuàng)建文件夾例如先將文件傳到客戶端主

基礎環(huán)境準備

創(chuàng)建虛擬機;

安裝Ubuntu 16.04 Server amd64系統(tǒng);

主機說明;

開啟并配置ssh服務;

安裝Docker;

在阿里云服務器上搭建公司私有倉庫

搭建私有鏡像倉庫(操作對象:xytech-即阿里云服務器);
請參照這篇文章:Docker Registry搭建私有倉庫和批量上傳鏡像到私有倉庫

私有倉庫的使用;

# 在客戶端主機創(chuàng)建文件夾(DomainName:Port例如example.com:9527)
mkdir -p /etc/docker/certs.d/DomainName:Port
# 先將ca.crt文件傳到客戶端主機
# 在ca.crt的當前目錄下將該證書復制到上面創(chuàng)建的文件夾
cp ca.crt /etc/docker/certs.d/DomainName:Port/
# 重啟docker服務
service docker restart
# 接下來就可以從私有倉庫拉取鏡像或向其上傳鏡像了。

Docker集群搭建-Consul

創(chuàng)建Consul服務的Docker鏡像(操作對象:三臺主機);

# 這里直接拉取可用的鏡像
docker pull willem.top:6666/mongo-consul && docker tag willem.top:6666/mongo-consul mongo-consul && docker rmi willem.top:6666/mongo-consul

修改主機的配置文件(操作對象:三臺主機);

獲取docker0的ip配置信息,用于修改本地配置文件,如下圖:

更改本地配置文件“/etc/default/docker”

vim /etc/default/docker

本地配置文件編輯內容如下

DOCKER_OPTS="--dns 172.17.0.1 --dns 8.8.8.8 --dns-search service .consul"

啟動具有自啟動功能的Consul節(jié)點(操作對象:Docker01);

# 1.創(chuàng)建工作目錄
mkdir -p /opt/consul

# 2.進入工作目錄
cd /opt/consul

# 3.在工作目錄中創(chuàng)建啟動具有自啟動功能的Consul節(jié)點的腳本
vim consul-start.sh

# 4.編輯啟動具有自啟動功能的Consul節(jié)點的腳本內容如下(請根據(jù)自己的情況更改鏡像名稱以及ip地址-查詢方式:ifconfig)
docker rm -f consul01

docker run -d 
      --restart always 
      -h $HOSTNAME 
      -p 8300:8300 
      -p 8301:8301 
      -p 8301:8301/udp 
      -p 8302:8302 
      -p 8302:8302/udp 
      -p 8400:8400 
      -p 8500:8500 
      -p 53:53/udp 
      --name consul01 mongo-consul 
      -server -advertise 192.168.2.129 -bootstrap-expect 3
# 5.給腳本賦予可執(zhí)行權限(也可使用相對路徑:chmod +x ./consul-start.sh)
chmod +x /opt/consul/consul-start.sh

# 6.執(zhí)行腳本(也可使用相對路徑:./consul-start.sh)
/opt/consul/consul-start.sh

啟動Docker02的Consul節(jié)點(操作對象:Docker02);

# 1.創(chuàng)建工作目錄
mkdir -p /opt/consul

# 2.進入工作目錄
cd /opt/consul

# 3.在工作目錄中創(chuàng)建啟動具有自啟動功能的Consul節(jié)點的腳本
vim consul-start.sh

# 4.編輯啟動具有自啟動功能的Consul節(jié)點的腳本內容如下(請根據(jù)自己的情況更改鏡像名稱以及ip地址)
docker rm -f consul02

docker run -d 
      --restart always 
      -h $HOSTNAME 
      -p 8300:8300 
      -p 8301:8301 
      -p 8301:8301/udp 
      -p 8302:8302 
      -p 8302:8302/udp 
      -p 8400:8400 
      -p 8500:8500 
      -p 53:53/udp 
      --name consul02 mongo-consul 
      -server -advertise 192.168.2.56 -join 192.168.2.129
# 5.給腳本賦予可執(zhí)行權限(也可使用相對路徑:chmod +x ./consul-start.sh)
chmod +x /opt/consul/consul-start.sh

# 6.執(zhí)行腳本(也可使用相對路徑:./consul-start.sh)
/opt/consul/consul-start.sh

啟動Docker03的Consul節(jié)點(操作對象:Docker03);
Docker03跟Docker02的操作唯一的區(qū)別就是在第4步的配置文件中的內容稍有變化,內容如下:

docker rm -f consul03

docker run -d 
      --restart always 
      -h $HOSTNAME 
      -p 8300:8300 
      -p 8301:8301 
      -p 8301:8301/udp 
      -p 8302:8302 
      -p 8302:8302/udp 
      -p 8400:8400 
      -p 8500:8500 
      -p 53:53/udp 
      --name consul03 mongo-consul 
      -server -advertise 192.168.2.77 -join 192.168.2.129

其他的操作根據(jù)Docker02來即可。

通過瀏覽器訪問下面的網(wǎng)址即可查看Consul集群的情況(如下圖);

配合Consul在Docker中運行分布式服務

創(chuàng)建并進入工作目錄(操作對象:三臺主機);

mkdir -p /opt/disapp
cd /opt/disapp

獲取基礎鏡像并修改鏡像名稱和標簽(如果從底層鏡像開始構建過于麻煩,這里直接修改替換配置文件來構建新鏡像)

# 操作對象:Docker01和Docker02
docker pull willem.top:6666/mongo-app && docker tag willem.top:6666/mongo-app mongo-app && docker rmi willem.top:6666/mongo-app

# 操作對象:Docker03
docker pull willem.top:6666/mongo-client && docker tag willem.top:6666/mongo-client mongo-client && docker rmi willem.top:6666/mongo-client

創(chuàng)建并編輯Dockerfile(內容如下)

# 操作對象:Docker01和Docker02
FROM mongo-app
MAINTAINER Mong 
ADD uwsgi-consul.ini /opt/distributed_app/

# 操作對象:Docker03
FROM mongo-client
MAINTAINER Mong 
ADD client.rb /opt/distributed_client/

創(chuàng)建并編輯配置文件

操作對象:Docker01

 vim uwsgi-consul.ini
 # 編輯配置文件內容如下(-根據(jù)自己的情況修改ip,現(xiàn)在用hosts映射還有些問題,暫時先用ip,%h等同于hostname)
 [uwsgi]
 plugins = consul
 socket = 127.0.0.1:9999
 master = true
 enable-threads = true
 
 [server1]
 consul-register = url=http://192.168.2.129:8500,name=distributed_app,id=server1,port=2001
 mule = config.ru
 
 [server2]
 consul-register = url=http://192.168.2.129:8500,name=distributed_app,id=server2,port=2002
 mule = config.ru

操作對象:Docker02

 vim uwsgi-consul.ini
 # 編輯配置文件內容如下
 [uwsgi]
 plugins = consul
 socket = 127.0.0.1:9999
 master = true
 enable-threads = true
 
 [server1]
 consul-register = url=http://192.168.2.56:8500,name=distributed_app,id=server1,port=2001
 mule = config.ru
 
 [server2]
 consul-register = url=http://192.168.2.56:8500,name=distributed_app,id=server2,port=2002
 mule = config.ru

操作對象:Docker03

 vim client.rb
 # 編輯配置文件內容如下
 require "rubygems"
 require "json"
 require "net/http"
 require "uri"
 require "resolv"
 
 empty = "There are no distributed applications registered in Consul"
  
 uri = URI.parse("http://172.17.0.1:8500/v1/catalog/service/distributed_app")
 
 http = Net::HTTP.new(uri.host, uri.port)
 request = Net::HTTP::Get.new(uri.request_uri)
 
 response = http.request(request)
 
 while true
   if response.body == "{}"
     puts empty
     sleep(1)
   elsif
     result = JSON.parse(response.body)
     result.each do |service|
       puts "Application #{service["ServiceName"]} with element #{service["ServiceID"]} on port #{service["ServicePort"]} found on node #{service["Node"]} (#{service["Address"]})."
       dns = Resolv::DNS.new.getresources("distributed_app.service.consul", Resolv::DNS::Resource::IN::A)
       puts "We can also resolve DNS - #{service["ServiceName"]} resolves to #{dns.collect { |d| d.address }.join(" and ")}."
       sleep(1)
     end
   end
 end

構建新鏡像

# 操作對象:Docker01和Docker02
docker build -t mongo-app-add .

# 操作對象:Docker03
docker build -t mongo-client-add .

啟動分布式服務的應用和客戶端

# 操作對象:Docker01和Docker02
docker run --restart always -h $HOSTNAME -d --name docker-02-app mongo-app-add

# 操作對象:Docker03
docker run --restart always -h $HOSTNAME -d --name docker-03-client mongo-client-add

通過瀏覽器訪問下面的網(wǎng)址即可查看Consul集群和分布式服務的情況(如下圖);

查看客戶端的日志可以看到Consul集群各節(jié)點中的分布式服務的部署情況(如下圖);

# 操作對象:Docker03
docker logs -f docker-03-clien

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/26609.html

相關文章

  • Docker overlay 網(wǎng)絡搭建

    摘要:快速開始跨主機網(wǎng)絡方案原生第三方方案之前介紹了搭建集群,所以在此直接選用自帶的方案來做,和完美結合。直接檢查網(wǎng)絡列表發(fā)現(xiàn)已經(jīng)在其中。 Docker overlay 網(wǎng)絡搭建 Overlay網(wǎng)絡是指通過在現(xiàn)有網(wǎng)絡上疊加一個軟件定義的邏輯網(wǎng)絡,最大程度的保留原有網(wǎng)絡,通過定義其上的邏輯網(wǎng)絡,實現(xiàn)業(yè)務邏輯,解決原有數(shù)據(jù)中心的網(wǎng)絡問題。 快速開始 Docker跨主機網(wǎng)絡方案 docker ...

    Xufc 評論0 收藏0
  • Docker Swarm學習筆記二

    摘要:拉取鏡像啟動發(fā)現(xiàn)后端創(chuàng)建集群創(chuàng)建主管理員操作對象因為這里的既是主管理員又是發(fā)現(xiàn)服務后臺,所以和的都是。主管理員操作節(jié)點的容器查看集群節(jié)點的容器列表刪除容器啟停容器與直接操作的區(qū)別就是后面加了 搭建基礎環(huán)境 官方文檔中演示時用到了五臺主機/虛擬機; showImg(https://segmentfault.com/img/bVzce2); 這里因為資源有限,只用三臺; showImg(h...

    JasinYip 評論0 收藏0
  • consul+docker實現(xiàn)服務注冊

    摘要:同時注冊中心也會檢查注冊的服務是否可用,不可用則剔除。服務消費者即在注冊中心注冊的服務,他們之間不再通過具體地址訪問,而是通過服務名訪問其他在冊服務的資源。方法是在配置文件里加上信息,保證了,如果服務已停止,則從注冊中心中移除。 近期新聞 css宣布支持三角函數(shù)ES10即將來臨 基本架構 showImg(https://img-blog.csdnimg.cn/2019040811481...

    Scholer 評論0 收藏0
  • 如何使用DockerDocker-Compose和Rancher搭建部署Pipeline(四)

    摘要:注冊器監(jiān)視每個守護進程的事件,并在生命周期事件期間自動更新。條件可以包括親和規(guī)則否定至軟強制意味著盡可能地避免。當使用通用標記如或部署服務時,可能會出現(xiàn)意外的后果。月日,北京海航萬豪酒店,容器技術大會即將舉行。 在這篇文章中,我們將討論如何用Rancher實現(xiàn)consul的服務發(fā)現(xiàn)。 如果你還沒有準備好,推薦你閱讀本系列中先前的文章:第一篇:CI /CD和Docker入門第二篇:使部署...

    13651657101 評論0 收藏0
  • 個推基于Docker和Kubernetes的微服務實踐

    摘要:個推針對服務場景,基于和搭建了微服務框架,提高了開發(fā)效率。三容器化在微服務落地實踐時我們選擇了,下面將詳細介紹個推基于的實踐。 2016年伊始Docker無比興盛,如今Kubernetes萬人矚目。在這個無比需要創(chuàng)新與速度的時代,由容器、微服務、DevOps構成的云原生席卷整個IT界。個推針對Web服務場景,基于OpenResty和Node.js搭建了微服務框架,提高了開發(fā)效率。在微服...

    yibinnn 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<