摘要:原文地址介紹一種生產(chǎn)環(huán)境的配置方案。概要先講一下生產(chǎn)環(huán)境中的問題有多個(gè),希望能夠通過連接起來。因此生產(chǎn)環(huán)境中會(huì)同時(shí)存在無狀態(tài)應(yīng)用利用創(chuàng)建的。不會(huì)幫你檢查名稱沖突的情況,如果名稱沖突了那么會(huì)得到錯(cuò)誤的結(jié)果。
原文地址
介紹一種生產(chǎn)環(huán)境Docker overlay network的配置方案。
概要先講一下生產(chǎn)環(huán)境中的問題:
有多個(gè)Docker host,希望能夠通過Docker swarm連接起來。
Docker swarm只適合于無狀態(tài)應(yīng)用,不適合有狀態(tài)應(yīng)用。
因此生產(chǎn)環(huán)境中會(huì)同時(shí)存在
無狀態(tài)應(yīng)用:利用docker service create/docker stack deploy創(chuàng)建的。
有狀態(tài)應(yīng)用:利用docker run/docker compose up創(chuàng)建的。
希望兩種應(yīng)用能夠連接到同一個(gè)overlay網(wǎng)絡(luò),在網(wǎng)絡(luò)內(nèi)部能夠通過
tasks.
解決辦法:
創(chuàng)建attachable的overlay network
有狀態(tài)應(yīng)用掛到這個(gè)overlay network上
無狀態(tài)應(yīng)用也掛到這個(gè)overlay network上
步驟到manager節(jié)點(diǎn)上創(chuàng)建attachable的overlay network,名字叫做prod-overlay:
docker network create -d overlay --attachable prod-overlay
在manager節(jié)點(diǎn)上查看這個(gè)網(wǎng)絡(luò)是否創(chuàng)建成功:
$ docker network ls NETWORK ID NAME DRIVER SCOPE fbfde97ed12a bridge bridge local 73ab6bbac970 docker_gwbridge bridge local a2adb3de5f7a host host local nm7pgzuh6ww4 ingress overlay swarm 638e550dab67 none null local qqf78g8iio10 prod-overlay overlay swarm
在worker節(jié)點(diǎn)上查看這個(gè)網(wǎng)絡(luò),這時(shí)你看不到這個(gè)網(wǎng)絡(luò),不過不要擔(dān)心,當(dāng)后面在worker節(jié)點(diǎn)上創(chuàng)建工作負(fù)載后就能看到了:
$ docker network ls NETWORK ID NAME DRIVER SCOPE fbfde97ed12a bridge bridge local 73ab6bbac970 docker_gwbridge bridge local a2adb3de5f7a host host local nm7pgzuh6ww4 ingress overlay swarm 638e550dab67 none null local
在manager上創(chuàng)建容器c1,掛到prod-overlay network上:
docker run --name c1 --network prod-overlay -itd busybox
在worker上創(chuàng)建容器c2,掛到prod-overlay network上:
docker run --name c2 --network prod-overlay -itd busybox
在manager上創(chuàng)建service c,掛到prod-overlay network上:
docker service create -td --name c --replicas 2 --network prod-overlay busybox驗(yàn)證 查看worker節(jié)點(diǎn)的network
之前在worker節(jié)點(diǎn)上沒有看到prod-overlay network,現(xiàn)在你應(yīng)該可以看見了:
$ docker network ls NETWORK ID NAME DRIVER SCOPE 01180b9d4833 bridge bridge local cd94df435afc docker_gwbridge bridge local 74721e7670eb host host local nm7pgzuh6ww4 ingress overlay swarm 32e6853ea78d none null local dw8kd2nb2yl3 prod-overlay overlay swarm確認(rèn)容器可以互ping
到manager節(jié)點(diǎn)上,讓c1 ping c2
$ docker exec c1 ping -c 2 c2 PING c2 (10.0.2.2): 56 data bytes 64 bytes from 10.0.2.2: seq=0 ttl=64 time=0.682 ms 64 bytes from 10.0.2.2: seq=1 ttl=64 time=0.652 ms
到manager節(jié)點(diǎn)上,讓c1 ping tasks.c,tasks.c是之前創(chuàng)建的service c的DNS name:
$ docker exec c1 ping -c 2 tasks.c PING tasks.c (10.0.2.8): 56 data bytes 64 bytes from 10.0.2.8: seq=0 ttl=64 time=2.772 ms 64 bytes from 10.0.2.8: seq=1 ttl=64 time=0.694 ms
到manager節(jié)點(diǎn)上,讓c1 查詢 tasks.c的DNS name,可以看到tasks.c有兩條記錄:
$ docker exec c1 nslookup -type=a tasks.c Server: 127.0.0.11 Address: 127.0.0.11:53 Non-authoritative answer: Name: tasks.c Address: 10.0.2.7 Name: tasks.c Address: 10.0.2.8
到manager節(jié)點(diǎn)上,查看service c的task,看到有c.1、c.2兩個(gè)task,分別部署在兩個(gè)節(jié)點(diǎn)上:
$ docker service ps c ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS p5n70vhtnz2f c.1 busybox:latest docker-learn-1 Running Running 17 minutes ago byuoox1t7cve c.2 busybox:latest docker-learn-2 Running Running 17 minutes ago
到c.1 task所在的節(jié)點(diǎn)上,查看task c.1的容器名:
$ docker ps -f name=c.1 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 795a3bd3c20a busybox:latest "sh" 21 minutes ago Up 21 minutes c.1.p5n70vhtnz2f5q8p2pcvbyfmw
然后在c1里ping task c.1的容器名:
$ docker exec c1 ping -c 2 c.1.p5n70vhtnz2f5q8p2pcvbyfmw PING c.1.p5n70vhtnz2f5q8p2pcvbyfmw (10.0.2.7): 56 data bytes 64 bytes from 10.0.2.7: seq=0 ttl=64 time=0.198 ms 64 bytes from 10.0.2.7: seq=1 ttl=64 time=0.128 ms
你同樣可以:
在c2里:
ping c1
ping tasks.c
ping task c.1、c.2的容器
在task c.1、c.2的容器里:
ping c1、c2;
ping tasks.c
ping task c.1、c.2的容器
注意通過docker run / docker compose up創(chuàng)建的容器的名字,要保證在整個(gè)集群里是唯一的。docker 不會(huì)幫你檢查名稱沖突的情況,如果名稱沖突了那么會(huì)得到錯(cuò)誤的DNS結(jié)果。
參考資料Use overlay networks
Use an overlay network for standalone containers
Docker Reference Architecture: Designing Scalable, Portable Docker Container Networks
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/28050.html
摘要:原文地址介紹如何使用的機(jī)制,自動(dòng)發(fā)現(xiàn)并抓取網(wǎng)絡(luò)中的容器所提供的指標(biāo)。我們需要一種動(dòng)態(tài)發(fā)現(xiàn)容器的方法。使用的機(jī)制,半自動(dòng)的發(fā)現(xiàn)容器。文章最開始說到的半自動(dòng)就是這個(gè)意思,我們得事先知道記錄有哪些,然后讓去發(fā)現(xiàn)這些記錄背后對應(yīng)的容器有哪些。 原文地址 介紹如何使用Prometheus的dns service discovery機(jī)制,自動(dòng)發(fā)現(xiàn)并抓取Docker swarm overlay網(wǎng)絡(luò)中...
摘要:配置網(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...
摘要:如果的網(wǎng)卡為,則不需要此步驟設(shè)置和的以下步驟得在或之前做假設(shè)你有三個(gè)機(jī)器,,準(zhǔn)備搞一個(gè)集群獲得的參數(shù),注意停掉刪掉虛擬網(wǎng)卡啟動(dòng)重建,記得設(shè)置之前得到的參數(shù)和正確的值再到和上執(zhí)行相同的命令。 原文地址 Docker Daemon生產(chǎn)環(huán)境配置提到了MTU設(shè)置,但是這只是針對于名為bridge的docker bridge network,對于overlay network是無效的。 如果do...
摘要:原文地址一些生產(chǎn)環(huán)境中要注意的參數(shù)配置。本文介紹一些生產(chǎn)環(huán)境中要特別注意的參數(shù),這些參數(shù)可以通過在命令行參數(shù)形式給,也可以通過在里配置。然后執(zhí)行來驗(yàn)證配置是否生效。它們的原理就是修改參數(shù)。 原文地址 一些docker daemon生產(chǎn)環(huán)境中要注意的參數(shù)配置。 本文介紹一些生產(chǎn)環(huán)境中dockerd要特別注意的參數(shù),這些參數(shù)可以通過在dockerd命令行參數(shù)形式給,也可以通過在/etc/d...
摘要:后續(xù)將其他節(jié)點(diǎn)加入集群都會(huì)用到這個(gè)值將節(jié)點(diǎn)加入集群查看節(jié)點(diǎn)信息相關(guān)命令創(chuàng)建服務(wù)更新服務(wù)刪除服務(wù)減少服務(wù)實(shí)例增加服務(wù)實(shí)例查看所有服務(wù)查看服務(wù)的容器狀態(tài)查看服務(wù)的詳細(xì)信息。前言本篇是Docker第十三篇,Docker的使用至此就介紹完成,接下來繼續(xù)Kubernetes。Docker系列文章:為什么要學(xué)習(xí)DockerDocker基本概念Docker鏡像基本原理Docker容器數(shù)據(jù)卷Dockerfi...
閱讀 1276·2021-10-18 13:32
閱讀 2355·2021-09-24 09:47
閱讀 1336·2021-09-23 11:22
閱讀 2473·2019-08-30 14:06
閱讀 579·2019-08-30 12:48
閱讀 2009·2019-08-30 11:03
閱讀 546·2019-08-29 17:09
閱讀 2473·2019-08-29 14:10