摘要:介紹的集群的自動發(fā)現(xiàn)有兩種方式與本文使用的是的方式準備安裝以上版本初始化集群創(chuàng)建一個名為的網(wǎng)絡(luò)開放端口初始化集群部份可看我之前的博客使用搭建多主機集群創(chuàng)建網(wǎng)絡(luò)查看當前的網(wǎng)絡(luò)也是一個網(wǎng)絡(luò)可以跨主機通信本教程會創(chuàng)建一個新的創(chuàng)建網(wǎng)絡(luò)
介紹
準備docker 1.12 的swarm 集群的自動發(fā)現(xiàn)有兩種方式, virtual IP address (VIP) 與 DNS round-robin, 本文使用的是VIP的方式
安裝docker 1.12 以上版本
初始化swarm集群
創(chuàng)建一個名為docker-net 的overlay網(wǎng)絡(luò)
開放7946 TCP/UDP , 4789 UDP 端口
創(chuàng)建overlay網(wǎng)絡(luò)初始化swarm集群部份可看我之前的博客使用docker 1.12 搭建多主機docker swarm集群
查看當前的網(wǎng)絡(luò)
[root@swarm-manager ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 376f5b337bfc bridge bridge local 166bd71f7d0e host host local 9gr6bfff1rv9 ingress overlay swarm
ingress 也是一個overlay網(wǎng)絡(luò), 可以跨主機通信, 本教程會創(chuàng)建一個新的
創(chuàng)建網(wǎng)絡(luò)
docker network create --driver overlay --opt encrypted ## 是否使用加密 my-network
查看
[root@swarm-manager ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 376f5b337bfc bridge bridge local 166bd71f7d0e host host local 9gr6bfff1rv9 ingress overlay swarm aoqs3p835s5g docker-net overlay swarm在swarm上用overlay 網(wǎng)絡(luò)創(chuàng)建一個服務(wù)
docker service create --replicas 3 --name my-web # 服務(wù)名為my-web --network docker-net daocloud.io/nginx:alpine # 使用國內(nèi)的鏡像, alpine版的體積很小,下載會快點
查看服務(wù)
# 本次只起了一個manager節(jié)點, 所以容器都跑在這臺機器上了 [root@swarm-manager ~]# docker service ps my-web ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR bavjn0xhxi35nx6n9kn33yfga my-web.1 daocloud.io/nginx:alpine swarm-manager Running Running 31 minutes ago cibuo8zqp78z1xb8cu3v4pkmj my-web.2 daocloud.io/nginx:alpine swarm-manager Running Running 31 minutes ago 0pkg1eoa0onku71cbp1hqtcv5 my-web.3 daocloud.io/nginx:alpine swarm-manager Running Running 31 minutes ago
在一個網(wǎng)絡(luò)上有哪些容器可以在network inspect的Containers節(jié)點看到
[root@swarm-manager ~]# docker network inspect docker-net [ { "Name": "docker-net", "Id": "aoqs3p835s5glx69hi46ou2dw", .... "Containers": { "1c87aae81449b448983924017fc4037b7b1e9e1eaa03bc55745b0167ab4e495b": { "Name": "my-web.1.bavjn0xhxi35nx6n9kn33yfga", "EndpointID": "2ab6c7e698ce69ec318a211dd0386533de1a0d8f2070bd4ee6cdc43cb94dcd0a", "MacAddress": "02:42:0a:00:09:03", "IPv4Address": "10.0.9.3/24", "IPv6Address": "" }, ..... }, ..... } ]
查看服務(wù)使用的vip
[root@swarm-manager ~]# docker service inspect --format="{{.Endpoint.VirtualIPs}}" my-web [{aoqs3p835s5glx69hi46ou2dw 10.0.9.2/24}]演示使用服務(wù)名訪問nginx
先創(chuàng)建一個同樣使用docker-net的overlay網(wǎng)絡(luò) 的服務(wù)
docker service create --name my-busybox --network docker-net busybox sleep 3000
等待服務(wù)啟動后, 用docker exec 連接進busybox的容器里
[root@swarm-manager ~]# docker service ps my-busybox ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR 7ftv4wj1g3vu8g7mfghx8du65 my-busybox.1 busybox swarm-manager Running Running about a minute ago [root@swarm-manager ~]# docker exec -ti my-busybox.1.7ftv4wj1g3vu8g7mfghx8du65 sh
在busybox容器. 向DNS查詢nginx服務(wù)的vip
[root@swarm-manager ~]# docker exec -ti my-busybox.1.7ftv4wj1g3vu8g7mfghx8du65 sh / # nslookup my-web Server: 127.0.0.11 Address 1: 127.0.0.11 Name: my-web Address 1: 10.0.9.2 10.0.9.2 # 和在外面看到的一樣
在busybox容器. 向DNS查詢nginx服務(wù)所有容器的ip地址
/ # nslookup tasks.my-web Server: 127.0.0.11 Address 1: 127.0.0.11 Name: tasks.my-web Address 1: 10.0.9.5 my-web.3.0pkg1eoa0onku71cbp1hqtcv5.docker-net Address 2: 10.0.9.4 my-web.2.cibuo8zqp78z1xb8cu3v4pkmj.docker-net Address 3: 10.0.9.3 my-web.1.bavjn0xhxi35nx6n9kn33yfga.docker-net
在busybox容器, 通過服務(wù)名訪問nginx
/ # wget -O- my-web Connecting to my-web (10.0.9.2:80)結(jié)語Welcome to nginx! Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
.....
通過實驗可以看出, 在swarm集群中使用overlay網(wǎng)絡(luò)時, 不同服務(wù)之間可以使用服務(wù)名(docker service name)互相訪問
我的博客: docker 1.12 的服務(wù)自動發(fā)現(xiàn)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26704.html
摘要:由于沒有了中心化的負載均衡器,集群不會因某臺機器異常而導(dǎo)致整個服務(wù)對外不可用,很好的避免了單點問題,同時也帶了可擴展性。 Mesos/Marathon 折騰久了,我們一直希望有機會深入到 Swarm 內(nèi)部一探究竟。 另外, Mesos 這一套東西雖然是久經(jīng)企業(yè)級考驗的, 但是安裝、部署和使用相對復(fù)雜,上手有門檻。同時,在今年的 DockerCon 上,內(nèi)置了Swarm 功能的 Dock...
摘要:本文涵蓋了中的六大新特性內(nèi)置命令服務(wù)發(fā)現(xiàn)自愈功能安全負載均衡滾動升級,相關(guān)的使用文檔和視頻鏈接也都包含在里面。同時,內(nèi)部負載均衡要求一個可用的容器。現(xiàn)在開箱即用的負載均衡,上公開暴露的端口在所有節(jié)點都是可以訪問的。 Docker 1.12版本最近剛剛發(fā)布,這篇文章對它的新特性進行了概述和對比描述。本文涵蓋了 Docker 1.12 中的六大新特性:內(nèi)置 swarm命令、服務(wù)發(fā)現(xiàn)、自愈功...
摘要:月日數(shù)人云在上海舉辦金融沙龍,邀請上交所和近二十家來自銀行保險證券的技術(shù)專家一同探討容器技術(shù)在金融業(yè)中的最佳實踐。數(shù)人云肖德時在會上將傳統(tǒng)金融行業(yè)通過容器可以解決的四大問題做了逐一解讀。如何動態(tài)的分配,就是剛才上交所介紹的一些治理的方法。 7月29日數(shù)人云在上海舉辦金融沙龍,邀請上交所和近二十家來自銀行、保險、證券的IT技術(shù)專家一同探討容器技術(shù)在金融業(yè)中的最佳實踐。數(shù)人云CTO肖德時在...
摘要:與分布式應(yīng)用捆綁包分布式應(yīng)用捆綁包,或者簡稱,是一種多服務(wù)可分發(fā)鏡像格式。而當中新推出的分布式應(yīng)用捆綁包,或者簡稱,則屬于一種新的概念,其專門面向多套容器的遷移需求。利用創(chuàng)建一個分布式應(yīng)用捆綁包添加了一條新的命令。 在本文中數(shù)人云將帶大家了解如何利用Docker Compose創(chuàng)建一套分布式應(yīng)用捆綁包,并將其作為Docker Stack在Docker Swarm Mode中進行部署。 ...
摘要:利用分布式應(yīng)用捆綁包簡稱部署服務(wù)相較于利用大量參數(shù)創(chuàng)建網(wǎng)絡(luò)及服務(wù),這里我們選擇使用一個文件。 在Docker 1.12版本中,全新的Swarm捆綁包相較于原有編排及調(diào)度機制做出了巨大改進。它不再需要運行一組獨立的Swarm容器,這部分容器已經(jīng)被直接捆綁在Docker Engine當中,故障轉(zhuǎn)移策略更為可靠,服務(wù)發(fā)現(xiàn)機制實現(xiàn)內(nèi)置,新的網(wǎng)絡(luò)功能極為順暢……看起來很棒是不是? 數(shù)人云這...
閱讀 3752·2023-04-25 18:41
閱讀 1187·2021-11-11 16:55
閱讀 1844·2021-09-22 15:54
閱讀 3076·2021-09-22 15:51
閱讀 3554·2019-08-30 15:55
閱讀 1949·2019-08-30 14:19
閱讀 1294·2019-08-29 10:57
閱讀 1711·2019-08-29 10:56