一千萬個為什麽

搜索

將靜態IP分配給在docker swarm中運行的服務的選項



情況:

  1. 具有3個以上節點的docker swarm
  2. 使用replicas = 1並且restart = always
  3. 在swarm中運行的服務
  4. 群集主機有多個接口 - 每個vlan一個,名稱相同
  5. 服務部署為堆棧

我想將靜態IP上的VM中運行的服務替換為運行docker的同一個服務器,但我需要在ETH_SERVER接口上使用相同的SERVICE_IP。

我有哪些選項可以讓一個或多個服務擁有靜態ips?

A.在docker stack yml中添加了ipv4_address - 似乎沒有在docker中實現(至少還沒有)

B.添加具有反向代理的新主機到docker堆棧服務

C.在docker主機上使用keepalived並映射SERVICE_IP - 這樣如果主機發生故障,浮動ip將被重新分配 - 但不確定我是否可以使用FLOATING_SERVICE_IP :: ...

D. ...?

這樣做有“更好”的方法嗎?


我試過這樣做:

在每個docker主機上:

docker network create --config-only --subnet="" --ip-range="" -o parent="INTERFACE" "vlan_name_intermediate"

然後是整個群體的全球網絡

docker network create -d macvlan --scope swarm --config-from "vlan_name_intermediate" "vlan_name"

現在,如果我將服務附加到網絡“vlan_name”,我可以從該vlan內部ping它,但IP是隨機分配的,而不是靜態的。我嘗試將其添加到compose yaml文件中:

ipv4_address: "192.168.45.56"

ip位於CIDR ip範圍內,但忽略該設置

轉載註明原文: 將靜態IP分配給在docker swarm中運行的服務的選項

一共有 0 個回答: