真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

原創(chuàng)文章,歡迎轉(zhuǎn)載。轉(zhuǎn)載請(qǐng)注明:轉(zhuǎn)載自IT人故事會(huì),謝謝!
原文鏈接地址:『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有工農(nóng)免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

上次了解了docker Swarm,這次一起動(dòng)手操作,搭建swarm的集群環(huán)境,一起測(cè)試下三種環(huán)境下的服務(wù)發(fā)現(xiàn)和負(fù)載均衡,一個(gè)自定義下的overlay下的網(wǎng)絡(luò)發(fā)現(xiàn),一個(gè)Ingress下的服務(wù)發(fā)現(xiàn),一個(gè)是Ingress+link下的,跟上次Mesos一樣我們先建立三臺(tái)服務(wù)虛擬機(jī)。 源碼:https://github.com/limingios/msA-docker swarm分支

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

server01

docker運(yùn)行狀態(tài),切換到root用戶(hù)

docker version

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

默認(rèn)情況下network的結(jié)構(gòu)

docker network ls

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

查看ip地址

ifconfig

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

設(shè)置manager,初始化manager節(jié)點(diǎn),添加一個(gè)work在swarm上,運(yùn)行下面的命令可以添加work,加入到這個(gè)manage中。

docker swarm init --advertise-addr 192.168.66.101

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

server02

執(zhí)行添加到manager的命令。

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

server03

執(zhí)行添加到manager的命令。

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

在server01中添加了server02 和server03的work后,查看網(wǎng)絡(luò)

之前是只有三個(gè),一個(gè)bridge,一個(gè)host,一個(gè)none;多了個(gè)docker_gwbridge,一個(gè)ingress。

ingress的overlay網(wǎng)絡(luò),這個(gè)網(wǎng)絡(luò)需要借助docker-gwbridge這個(gè)網(wǎng)橋進(jìn)行連接。如果是

docker network ls

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

docker swarm的如何高可用

目前的manager只有一個(gè),如果manager節(jié)點(diǎn)掛了,這個(gè)集群也就掛了。docker swarm 有高可用的狀態(tài),就是將server02 和server03 ,manager節(jié)點(diǎn)本身也可以提供服務(wù)運(yùn)行的狀態(tài),即便我們?nèi)齻€(gè)節(jié)點(diǎn)都是manager也是可以運(yùn)行服務(wù)的。現(xiàn)在把三個(gè)節(jié)點(diǎn)都變成manager節(jié)點(diǎn)試一下。

docker node ls

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

升級(jí)server02成為manager。變成了Reachable,這個(gè)跟zookeeper的原理是一樣的,當(dāng)一個(gè)leader掛了之后,通過(guò)選取可以產(chǎn)生一個(gè)新的leader。

docker node promote docker-swarm-02
docker node promote docker-swarm-03

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

PS:以上就完成高可用的docker swarm的集群環(huán)境,其實(shí)真心比其他的簡(jiǎn)單。

測(cè)試集群環(huán)境

  • 小的鏡像測(cè)試

創(chuàng)建一個(gè)小的鏡像,完成ping www.baidu.com

docker service create --name test1 alpine ping www.baidu.com
docker service ls

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

``` 查看日志
docker service logs test1

![](/upload/otherpic60/11223715-f6ac8c36146450df.png%7CimageView2/2/w/1240)

* nginx的環(huán)境測(cè)試
``` bash
docker service create --name nginx nginx
docker service ls

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

曾經(jīng)有老鐵問(wèn)我,如果是容器創(chuàng)建了需要修改創(chuàng)建時(shí)候的配置怎么辦,我告訴他想給當(dāng)前容器做個(gè)tag打成一個(gè)鏡像A,然后通過(guò)鏡像A,生成新的一個(gè)新的容器在run里增加你的配置,記住前提是要把原來(lái)的容器刪除。

對(duì)于docker swarm中的service 難道也需要?jiǎng)h除?其實(shí)不需要直接通過(guò)docker service update來(lái)完成。

docker service ls
docker service update --publish-add 8080:80 nginx
docker service ls

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

現(xiàn)在的nginx 太少了只有1個(gè),如果掛了,還要打電話(huà)讓人解決。其實(shí)還是有辦法的。多起幾個(gè)??梢远嗟纫粫?huì),時(shí)間就不緊急了,吃了飯?jiān)龠^(guò)去。

docker service scale nginx=3
docker service ls

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

  • 默認(rèn)使用的Ingress下的overlay網(wǎng)絡(luò),兩個(gè)service之前是無(wú)法通過(guò)service的名稱(chēng)進(jìn)行訪(fǎng)問(wèn)的??梢栽囋嚒?/li>

自定義網(wǎng)絡(luò)添加到docker swarm中。

  • 刪除剛才創(chuàng)建nginx 和test1
docker service rm nginx test1

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

  • 創(chuàng)建網(wǎng)絡(luò)

    docker network create -d overlay idig8-overlay

    『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

  • 創(chuàng)建一個(gè)service指定網(wǎng)絡(luò)

    nginx

docker service create --network idig8-overlay --name nginx -p 8080:80 nginx

alpine

 docker service create --network idig8-overlay --name alpine alpine ping www.baidu.com

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

  • 查看alpine所在的機(jī)器,進(jìn)入容器,ping nginx

    查看是在server02這臺(tái)機(jī)器上。

docker service ps alpine

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

進(jìn)入server02機(jī)器,ping 容器名稱(chēng)是nginx的 發(fā)現(xiàn)可以ping通

docker ps
docker exec -it 387dd735de74 sh
ping nginx

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

PS:當(dāng)前的網(wǎng)絡(luò)Ingress,容器之間的訪(fǎng)問(wèn)方式可以通過(guò)名字訪(fǎng)問(wèn)。在自定義的網(wǎng)絡(luò)下swarm每個(gè)service,都創(chuàng)建一個(gè)DNSadress,一定要是自定義的overlay的。

  • dnsrr的方式

    描述是參數(shù)不對(duì),在dnsrr下不能開(kāi)放端口的,他們之間是沖突的。dnsrr是給只通過(guò)名字訪(fǎng)問(wèn)。如果不加入overlay的網(wǎng)絡(luò)它就是獨(dú)立的。

    docker service create --name nginx-b --endpoint-mode dnsrr -p  8090:80 nginx

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

如果想dnsrr網(wǎng)絡(luò)可以被訪(fǎng)問(wèn),可以針對(duì)這個(gè)service增加overlay的網(wǎng)絡(luò)

docker service updata --network-add idig8-overlay nginx-b
  • docker stack

    單機(jī)模式下,我們可以使用 Docker Compose 來(lái)編排多個(gè)服務(wù),而在Docker Swarm 通過(guò) Docker Stack 我們只需對(duì)已有的 docker-compose.yml 配置文件稍加改造就可以完成 Docker 集群環(huán)境下的多服務(wù)編排。

version: "3.4"
services:
  alpine:
    image: alpine
    command:
      - "ping"
      - "www.baidu.com"
    networks:
      - "idig8-overlay"
    deploy:
      replicas: 2
      restart_policy:
        condition: on-failure
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
    depends_on:
      - nginx
  nginx:
    image: nginx
    networks:
      - "idig8-overlay"
    ports:
      - "8080:80"
networks:
  idig8-overlay:
    external: true

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

查看stack的命令,上邊走的是vip負(fù)載均衡的方式而不是dnsrr的方式。

docker stack ls
# -c 文件名 組名
docker stack deploy -c service.yml  test

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)

PS:dockerSwarm的服務(wù)發(fā)現(xiàn),負(fù)載均衡。

『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)


分享名稱(chēng):『高級(jí)篇』docker之DockerSwarm的集群環(huán)境搭建(28)
URL分享:http://weahome.cn/article/jccjsc.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部