1. 程式人生 > >自建docker swarm體驗簡單之美

自建docker swarm體驗簡單之美

hab 3.2 ebs acs docs nal 自建 port advertise

之前用的阿裏雲容器服務,但由於acsrouting的路由錯亂問題,被逼上自建docker swarm的梁山。今天嘗試自己搭建docker swarm,竟然輕松搞定,簡單的超乎想象。

以下是實際搭建操作步驟:

1. 創建集群

# docker swarm init --advertise-addr 10.251.242.231
Swarm initialized: current node (m9dfl7r9wo1e9jxsp3oe5du3x) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token xxx 10.251.242.231:2377

To add a manager to this swarm, run ‘docker swarm join-token manager‘ and follow the instructions.

主:10.251.242.231 是 docker 主機的內網IP地址

2. docker info 查看剛剛創建的集群信息

Swarm: active
 NodeID: m9dfl7r9wo1e9jxsp3oe5du3x
 Is Manager: true
 ClusterID: j01wzizw7gy0ck95p1d7a4pmv
 Managers: 1
 Nodes: 1
 Orchestration:
  Task History Retention Limit: 5

3. docker node ls 查看節點信息

ID                            HOSTNAME               STATUS              AVAILABILITY        MANAGER STATUS
m9dfl7r9wo1e9jxsp3oe5du3t *   swarm-websites-node1   Ready               Active              Leader

4. 創建用於部署應用容器的網絡

# docker network create --driver=overlay --attachable cnblogs

5. 創建用於部署Docker Flow Proxy容器的網絡(Docker Flow Proxy支持根據主機名將請求轉發至對應的應用容器)

docker network create --driver overlay proxy

6. 查看剛剛創建的網絡

# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
rl96kcw8ytpa        cnblogs             overlay             swarm
61kbxtvnivkx        proxy               overlay             swarm

7. 部署 Docker Flow Proxy stack

7.1 下載 docker-compose-stack.yml 文件

# curl -o docker-compose-stack.yml     https://raw.githubusercontent.com/vfarcic/docker-flow-proxy/master/docker-compose-stack.yml

7.2 部署 stack

# docker stack deploy -c docker-compose-stack.yml proxy

8. 編寫示例應用 openapi 的 docker-compose-stack.yml

version: ‘3.2‘
services:
  api:
    image: open-api:latest
    deploy:
      replicas: 2
      update_config:
        delay: 5s
      labels:
        - com.df.notify=true
        - com.df.distribute=true
        - com.df.serviceDomain=api.cnblogs.com
        - com.df.port=80
    networks:
      - cnblogs
      - proxy
networks:
  cnblogs:
    external: true
  proxy:
    external: true

9. 部署示例應用的 stack

docker stack deploy -c docker-compose-stack.yml openapi

10. 部署完成後可以通過 http://api.cnblogs.com 訪問運行在 openapi_api service 中的站點

【參考資料】

  • Getting started with swarm mode
  • Using Docker Stack To Run Docker Flow Proxy In Swarm Mode

自建docker swarm體驗簡單之美