iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0
DevOps

搞定Docker網路系列 第 8

Docker的網路-Application Proxy

  • 分享至 

  • xImage
  •  

在介紹除錯工具之前,想先將一般企業級服務架構先建立起來,再輔以除錯工具,會比較好呈現實際環境的狀況。

Application Proxy(以前稱為Reverse Proxy,相較於Client->Proxy->WAN這類的正向代理)一般會有硬體式跟軟體式,硬體式的常見就是F5 LTM這類的設備,軟體類最有名則是NGINX。

我們這邊想嘗試使用Cloud native的方案Traefik,相較之下比較輕量簡易,也有不錯的內建儀表板可以看到整個運作架構。

首先,先從官方的範例練習:

https://doc.traefik.io/traefik/getting-started/quick-start/#more-instances-traefik-load-balances-them

DockerCompose yaml如下:

version: '3'

services:
  reverse-proxy:
    # The official v2 Traefik docker image
    image: traefik:v2.10.4
    # Enables the web UI and tells Traefik to listen to docker
    command: --api.insecure=true --providers.docker
    ports:
      # The HTTP port
      - "80:80"
      # The Web UI (enabled by --api.insecure=true)
      - "8080:8080"
    volumes:
      # So that Traefik can listen to the Docker events
      - /var/run/docker.sock:/var/run/docker.sock
  whoami:
    # A container that exposes an API to show its IP address
    image: traefik/whoami
    labels:
      - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"

這是嘗試用traefik當load balancing,服務則是whoami,可以呈現現在是哪個ip。

  - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"

這一段的寫法我們可以理解成只要網址的路徑輸入成whoami.docker.localhost,就會導向whoami這個服務。

接著我們下指令,讓whoami這個無狀態服務出現2個,讓traefik幫我們分流

sudo docker-compose up -d --scale whoami=2

我們在瀏覽器輸入網址:
http://whoami.docker.localhost

可以看到輸入127.0.0.1,後端會有兩種ip:172.25.0.4跟172.25.0.2。

Traefik有個Dashboard,可以輸入以下網址可以看到Dashboard:

http://0.0.0.0:8080/dashboard#/

因為我們的服務是http,點http

找到我們服務的route,點進去

依序是entrypoints->route->services,因為我們有多個services,點service看看這個route後端有幾個services

這邊就相當清楚,我們有兩個docker services,剛好就是whoami出現的兩個ip

後面我們會嘗試用這個範例當基礎,調整成其他服務一樣藉由traefik來作到application proxy效果。


上一篇
Docker的網路-監控與除錯
下一篇
Docker的網路-Dockerfile的寫法
系列文
搞定Docker網路31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言