Layer 7 Routing

在 Docker EE UCP 3.x 有一個 L7 Routing (Interlock) 功能可以輔助佈署在 Docker Swarm 平台的 web 應用與其客戶端保持固定的 session 。 下面例子是在已建置好的 Docker EE (引擎版本 18.09 )的叢集環境中進行,在叢集中也安裝了 UCP ,版本 3.1.1 ,並採用了配置 cookie 的方式來達成 Session Persistence,其他配置方法將另文描述。使用Cookie的方式需要指定Web應用裡用到的Cookie的名字。需要Web應用來配合。 首先,在 UCP 啟動 L7 Routing (Interlock): 登入 UCP ,左邊菜單 Admin Settings > Layer 7 Routing > Enable Layer 7 Routing 預設是關閉狀態,點選啟用 Layer 7 Routing. 之後,在所要佈署的微服務應用的 compose yaml 文件中,加入3個 labels, 具體寫法可以參考下面 compose yaml 片段: # a sample of compose yaml for session persistence version: 3.3 services: web1: image: web1 labels: com.docker.lb.hosts: "app.local" com.docker.lb.port: "8000" com.docker.lb.sticky_session_cookie: "session" 其中, com.docker.lb.hosts 是佈署在平台上的應用 domain name 可用其中一個實體節點 domain name 代替; com.docker.lb.port 是這個微服務應用程式所發布服務的 port ; com.docker.lb.sticky_session_cookie 這裡填Web應用裡預定義Cookie的名字,使得建立 service 的同時也建立 cookie, 對於同一個來源其後續的請求都會固定在同一個容器實體來回應; 使...