国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Docker Swarm部署應(yīng)用的總結(jié)

Paul_King / 2036人閱讀

摘要:配置網(wǎng)絡(luò)參照生產(chǎn)環(huán)境配置中的和子網(wǎng)章節(jié)。特別注意觀察和的子網(wǎng)是否與已有網(wǎng)絡(luò)沖突如果有沖突則參考網(wǎng)絡(luò)的中的方法修改子網(wǎng)。部署使用的是的監(jiān)控方案。創(chuàng)建應(yīng)用網(wǎng)絡(luò)創(chuàng)建你也可以改成自己的名字參考網(wǎng)絡(luò)的檢查子網(wǎng)與是否配置正確。

原文

大綱

本文只是一種實(shí)際部署方案的例子,涉及到的技術(shù)有(除Docker/Docker Swarm外):

Docker overlay network

Fluentd

Prometheus stack

vegasbrianc的Prometheus監(jiān)控方案

步驟大綱:

部署Docker machine

基本配置

配置網(wǎng)絡(luò)

啟動(dòng)Fluentd日志服務(wù)

部署Docker swarm集群

配置網(wǎng)絡(luò)

添加Node

部署Prometheus stack

給Node打Label

創(chuàng)建監(jiān)控網(wǎng)絡(luò)

啟動(dòng)service

部署應(yīng)用

識(shí)別stateless與stateful

創(chuàng)建應(yīng)用網(wǎng)絡(luò)

給Node打Label

啟動(dòng)service

1 部署Docker machine 1.1 基本配置

準(zhǔn)備若干Linux服務(wù)器(本例使用Ubuntu 16.04),參照Docker CE 鏡像源站提到的步驟安裝Docker CE。

參照Docker Daemon生產(chǎn)環(huán)境配置。

1.2 配置bridge網(wǎng)絡(luò)

參照Docker Daemon生產(chǎn)環(huán)境配置中的mtu和子網(wǎng)章節(jié)。

1.3 啟動(dòng)Fluentd日志服務(wù)

參考使用Fluentd收集Docker容器日志。

2 部署Docker swarm集群

到一臺(tái)機(jī)器上執(zhí)行docker swarm init,這個(gè)機(jī)器將作為manager node。

執(zhí)行docker node ls會(huì)看到類似下面的結(jié)果:

$ docker node ls

ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
dxn1zf6l61qsb1josjja83ngz *  manager1  Ready   Active        Leader

如果你計(jì)劃不會(huì)把工作負(fù)載跑在manager node上,那么使用docker drain

docker node update --availability drain 

可參考Docker Swarm基本命令清單。

2.1 配置網(wǎng)絡(luò)MTU和子網(wǎng)

參考Docker Overlay網(wǎng)絡(luò)的MTU。

特別注意

觀察docker_gwbridgeingress的子網(wǎng)是否與已有網(wǎng)絡(luò)沖突:

$ docker network inspect -f "{{json .IPAM}}" docker_gwbridge
{"Driver":"default","Options":null,"Config":[{"Subnet":"172.18.0.0/16","Gateway":"172.18.0.1"}]}

$ docker network inspect -f "{{json .IPAM}}" ingress
{"Driver":"default","Options":null,"Config":[{"Subnet":"10.255.0.0/16","Gateway":"10.255.0.1"}]}

如果有沖突則參考Docker Overlay網(wǎng)絡(luò)的MTU中的方法修改子網(wǎng)。

2.2 添加Node

參考Docker Swarm基本命令清單。

3 部署Prometheus stack

使用的是vegasbrianc的Prometheus監(jiān)控方案。

整個(gè)監(jiān)控方案包含一下幾個(gè)組件:

Prometheus

Node-exporter,運(yùn)行在每個(gè)node上

Alertmanager

cAdvisor,運(yùn)行在每個(gè)node上

Grafana

3.1 給Node打Label

挑選一臺(tái)Node作為運(yùn)行監(jiān)控服務(wù)的機(jī)器。給這個(gè)node打上label:

$ docker node update --label-add for-monitor-stack=1 
3.2 創(chuàng)建監(jiān)控網(wǎng)絡(luò)
$ docker network create -d overlay --attachable monitor-net

參考參考Docker Overlay網(wǎng)絡(luò)的MTU檢查子網(wǎng)與MTU是否配置正確。

3.3 啟動(dòng)service

clone vegasbrianc的Prometheus監(jiān)控方案 項(xiàng)目代碼。

使用我修改過的docker-stack.yml

啟動(dòng)service:

$ docker stack deploy 
  --with-registry-auth 
  --prune 
  -c docker-stack.yml 
  p8s-monitor-stack

訪問地址:

Prometheus:http://<任意swarm node ip>:9000

Node-exporter:http://<任意swarm node ip>:9010

Alertmanager:http://<任意swarm node ip>:9020

cAdvisor:http://<任意swarm node ip>:9030

Grafana:http://<任意swarm node ip>:9040,用戶名admin,密碼foobar

4 部署應(yīng)用 4.1 識(shí)別stateless與stateful

如果你的應(yīng)用由多個(gè)組件(service)組成,那么在部署它們之前你得識(shí)別出哪些是stateless service哪些是stateful service。

針對(duì)每個(gè)service你自問以下三個(gè)問題:

這個(gè)service崩潰之后,是不是只需要重啟它就可以了,而不需要關(guān)心數(shù)據(jù)恢復(fù)?

這個(gè)service是否可以在node之間任意遷移,且不需要分布式存儲(chǔ)?

這個(gè)service是否無(wú)需固定IP?

如果上述回答都是Yes,那么這個(gè)service就是stateless的,只要有一個(gè)是No,則這個(gè)service是stateful的。

對(duì)于stateless service,你可以:

docker stack deploy部署

docker service create部署

對(duì)于stateful service,你可以:

docker run部署

docker-compose up部署

如果沒有固定IP的要求,那么你也可以用docker stack deploy/docker service create部署,前提是你得保證這個(gè)service只會(huì)固定在一臺(tái)機(jī)器上運(yùn)行。

有時(shí)候你的應(yīng)用既有stateless service又有stateful service,這時(shí)需要把他們掛載到同一個(gè)overlay網(wǎng)絡(luò)里,這樣它們之間就能夠互相通信了。

4.2 創(chuàng)建應(yīng)用網(wǎng)絡(luò)

創(chuàng)建app-net(你也可以改成自己的名字)

$ docker network create -d overlay --attachable app-net

參考Docker Overlay網(wǎng)絡(luò)的MTU檢查子網(wǎng)與MTU是否配置正確。

4.3 給Node打Label

如果你對(duì)于Service部署在哪個(gè)Node上有要求,那么你得給Node打上Label:

$ docker node update --label-add =1 

然后在docker-compose.yaml里添加約束條件:

version: "3.7"
services:
  busybox:
    image: busybox
    deploy:
      placement:
        constraints:
          - node.labels. == 1
4.4 啟動(dòng)service

對(duì)于stateless service,編寫docker-compose.yaml,里面寫了同時(shí)掛載app-netmonitor-net,比如:

version: "3.7"
services:
  busybox:
    image: busybox
    networks:
      app-net:
      monitor-net:
        aliases:
          - busybox
...
networks:
  app-net:
    external: true
  monitor-net:
    external: true

注意上面設(shè)置了busybox service在monitor-net中的別名,這是因?yàn)槿绻阌?b>docker stack deploy部署,那么busybox的名字默認(rèn)是_busybox,這樣對(duì)于prometheus而言此名字不穩(wěn)定,不便于配置詳見Prometehus監(jiān)控Docker Swarm Overlay網(wǎng)絡(luò)中的容器。

然后用docker stack deploy部署:

$ docker stack deploy 
  --with-registry-auth 
  --prune 
  -c docker-compose.yaml
  

如果用docker service create則:

$ docker service create 
 --network app-net 
 --network monitor-net 
 --name  
 ... 其他參數(shù)
 

下面舉例docker run啟動(dòng)stateful service的方法:

$ docker run -d 
  --name  
  --network app-net 
  ... 其他參數(shù) 
  
  
# 然后再掛載到monitor-net上
$ docker network connect monitor-net 

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/28093.html

相關(guān)文章

  • Docker Swarm前世今生

    摘要:當(dāng)然此時(shí)的局限性較大,比如沒有副本和負(fù)載均衡的概念,這導(dǎo)致服務(wù)無(wú)法高可用當(dāng)然也更不存在什么服務(wù)網(wǎng)絡(luò)管理和跨節(jié)點(diǎn)數(shù)據(jù)存儲(chǔ)這些東西沒有服務(wù)模型集群中服務(wù)間關(guān)系和啟動(dòng)順序編排也很復(fù)雜于是就有了下面的的誕生。 showImg(https://segmentfault.com/img/remote/1460000015317037?w=1885&h=1153); 概述 在我的《Docker S...

    lemon 評(píng)論0 收藏0
  • 關(guān)于Docker Swarm,你可能需要了解更多實(shí)踐經(jīng)驗(yàn)

    摘要:雖然可以使用相同的方式部署應(yīng)用到云端,使用外部負(fù)載均衡器,但動(dòng)態(tài)添加或者減少負(fù)載均衡節(jié)點(diǎn)依舊是痛點(diǎn)。這對(duì)使用外部負(fù)載均衡器幫助巨大。 數(shù)人云今天帶來(lái)的本篇文章將分享Docker在應(yīng)用程序生命周期每個(gè)階段中所扮演的角色,以及遷移到Swarm集群時(shí)需要考慮的問題。 利用Docker來(lái)開發(fā) Docker讓工作更輕松。如需要一個(gè)部署安裝MySQL數(shù)據(jù)庫(kù),或者安裝Ghost,又或者Redis數(shù)據(jù)...

    bitkylin 評(píng)論0 收藏0
  • 進(jìn)軍Docker 1.12,將代理與Swarm完美整合

    摘要:其一將用于代理與面向公開的服務(wù)之間的通信。數(shù)據(jù)庫(kù)上線并開始運(yùn)行后,我們接下來(lái)部署后端。現(xiàn)在,會(huì)幫助我們完成全部負(fù)載均衡工作。這樣所有來(lái)自代理的請(qǐng)求都將指向網(wǎng)絡(luò),并由后者跨越全部實(shí)例執(zhí)行負(fù)載均衡。 七夕大家過得怎么樣?今天數(shù)人云帶大家回歸技術(shù)和干貨。雖然我們能夠在Swarm集群當(dāng)中部署任意數(shù)量的服務(wù),但這并不代表各項(xiàng)服務(wù)全部可為用戶所訪問。而新的Swarm網(wǎng)絡(luò)使得各項(xiàng)服務(wù)之間能夠更為輕松...

    cartoon 評(píng)論0 收藏0
  • 立足Docker運(yùn)行MySQL:多主機(jī)網(wǎng)絡(luò)下Docker Swarm模式容器管理

    摘要:本文將以多主機(jī)網(wǎng)絡(luò)環(huán)境為基礎(chǔ),探討如何利用內(nèi)置編排工具模式對(duì)各主機(jī)上的容器加以管理。在本文中,我們將立足于臺(tái)主機(jī)與在負(fù)載均衡之上部署應(yīng)用程序容器,同時(shí)將其接入一套覆蓋網(wǎng)絡(luò)。管理節(jié)點(diǎn)會(huì)利用負(fù)載均衡以將服務(wù)公布至集群之外。 本文將以多主機(jī)網(wǎng)絡(luò)環(huán)境為基礎(chǔ),探討如何利用內(nèi)置編排工具 Docker Swarm模式對(duì)各主機(jī)上的容器加以管理。 Docker Engine – Swarm模式 在...

    20171112 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

Paul_King

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<