使用Docker Swarm模式路由網格
版本說明資訊
文件來源:
文件由
garyond
翻譯和整理
目錄
概述
釋出服務埠
僅釋出TCP埠或僅釋出UDP埠
配置外部負載均衡
1. 概述
Docker引擎Swarm叢集模式使得可以輕鬆地釋出服務埠,使其可用於叢集外的資源。所有節點都參與進入路由網。路由網格使得Swam叢集中的每個節點能夠接受在Swarm叢集中執行的任何服務中已釋出埠上的連線,即使節點上沒有任何任務正在執行。 路由網路將所有接入請求路由到可用節點上的已釋出埠到活動容器中。
為了在Swarm叢集中使用接入網路,在啟用Swarm叢集模式之前, 你需要在Swarm叢集節點之間開啟以下埠:
7946埠, 主要用於容器網路發現;
4789埠, 主要用於容器接入釋出網路。
你還需要在Swarm叢集節點和任意外部資源之間開啟發布埠,例如外部負載均衡應用,以便於它們能夠訪問所需要的埠。
2. 釋出服務埠
當你建立一個服務時, 你可以使用--publish
引數來發布埠。
# docker service create --name <Service-Name> --publish <Publish-Port>:<Target-Port> <Docker Image>
<目標埠>為Docker容器中所監聽的埠,<釋出埠>為Swarm叢集中使得服務可以訪問的埠。
例如, 在Swarm叢集中釋出Nginx應用服務, 將容器中的80埠對映為Swarm叢集的8080埠。
$ docker service create --name my-web --publish 8080:80 --replicas 2 nginx
當你在任何節點上訪問8080埠時,Swarm叢集的負載均衡會將您的請求路由至活動容器中。
Swarm叢集的路由網路在釋出的埠上監聽分配給該節點的任何IP地址。對於外部可路由的IP地址,埠可從主機外部獲得。對於其他的IP地址,只能從主機中訪問。
Ingress Network
使用以下命令可以為已經發布的服務釋出埠:
$ docker service update --publish-add <PUBLISHED-PORT>:<TARGET-PORT> <SERVICE>
使用docker service inspect
檢視服務埠。
# docker service inspect --format="" nginx-service
3. 僅釋出TCP埠或僅釋出UDP埠
預設情況下, 所釋出的埠一般為TCP埠。你可以專門指定釋出UDP埠,而不是TCP或之外的埠。當釋出TCP和UDP埠時,Docker 1.12.2版本和早前版本需要為TCP埠指定字尾/tcp
。字尾為可選的引數。
僅釋出TCP埠
# docker service create --name dns-cache -p 53:53 dns-cache或# docker service create --name dns-cache -p 53:53/tcp dns-cache
釋出TCP和UDP埠
# docker service create --name dns-cache -p 53:53/tcp -p 53:53/udp dns-cache
僅釋出UDP埠
# docker service create --name dns-cahce -p 53:53/udp dns-cache
4. 配置外部負載均衡
可透過配置外部負載均衡實現Swarm叢集的服務路由。例如, 使用HAProxy實現已釋出埠8080的Nginx服務的負載均衡。
Load Balance
在這種情況下, 必須在Swarm叢集節點和HAProxy之間開啟8080埠,Swarm叢集節點可以駐留在代理伺服器可以訪問的專用網路上,但不能公開訪問。
我們可以將負載均衡配置為Swarm叢集中的每個節點之間的請求平衡,即使該 節點上沒有計劃任務。例如, 我們可以在/etc/haproxy/haproxy.cfg中配置HAProxy的負載均衡。
global log /dev/log local0 log /dev/log local1 notice ...snip...# Configure HAProxy to listen on port 80frontend http_front bind *:80 stats uri /haproxy?stats default_backend http_back# Configure HAProxy to route requests to swarm nodes on port 8080backend http_back balance roundrobin server node1 192.168.99.100:8080 check server node2 192.168.99.101:8080 check server node3 192.168.99.102:8080 check
當您在埠80上訪問HAProxy負載均衡服務時,它會將請求轉發到Swarm叢集中的節點。Swarm叢集路由網路將請求路由到活動任務中。如果由於任何原因swarm排程程式將任務分派給不同的節點,則不需要重新配置負載均衡。
作者:garyond
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2471/viewspace-2821345/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 8、docker swarm操作使用DockerSwarm
- 【Docker】 SwarmDockerSwarm
- Docker Swarm modeDockerSwarm
- Docker Swarm 核心概念及詳細使用DockerSwarm
- Docker學習—SwarmDockerSwarm
- 使用Docker Swarm搭建分散式爬蟲叢集DockerSwarm分散式爬蟲
- Docker Swarm叢集初探DockerSwarm
- docker swarm部署介紹DockerSwarm
- Docker Swarm Mode簡介DockerSwarm
- Docker Swarm 叢集搭建DockerSwarm
- Docker(六):Docker 三劍客之 Docker SwarmDockerSwarm
- Docker swarm叢集搭建教程DockerSwarm
- 1.07 容器編排docker SwarmDockerSwarm
- Docker Swarm常用命令DockerSwarm
- Docker Swarm 叢集搭建教程DockerSwarm
- Docker 多容器編排Swarm(六)DockerSwarm
- Docker Swarm 叢集搭建實踐DockerSwarm
- K8s vs Docker SwarmK8SDockerSwarm
- 容器技術之Docker-swarmDockerSwarm
- Docker Swarm從部署到基本操作DockerSwarm
- 使用Docker Swarm快速搭建與部署你的服務叢集DockerSwarm
- 容器技術|Docker三劍客之docker-swarmDockerSwarm
- Docker Swarm 日常運維命令筆記DockerSwarm運維筆記
- Docker進階-資源管理Swarm+PortainerDockerSwarmAI
- 使用Docker搭建Chirpy部落格Docker
- Docker四種網路模式Docker模式
- Docker幾種網路模式Docker模式
- Docker使用Calico網路模式配置及問題處理Docker模式
- Swirl:Docker Swarm 叢集管理的新選擇DockerSwarm
- Docker Swarm :gRPC 基於 DNS 的負載均衡DockerSwarmRPCDNS負載
- Docker的網路模式詳解Docker模式
- Docker基礎、Machine、Compose、Swarm入門與實踐DockerMacSwarm
- docker-swarm容器固定到node節點啟動DockerSwarm
- Docker Swarm 進階:資料卷備份與恢復DockerSwarm
- 使用docker搭建nginx掛載hexo部落格DockerNginxHexo
- RabbitMQ-路由模式MQ路由模式
- Docker Swarm Master 學習筆記——Create Your First Service and Scale It LocallyDockerSwarmAST筆記
- Docker 學習筆記(第十集:docker 叢集管理工具 swarm )Docker筆記Swarm