Marathon中的網絡和端口

BRIDGE networking: 應用於Docker Application.docker

USER networking:  應用於Docker Application.適合於使用自定義docker網絡的狀況。數組

HOST networking: 應用與Docker Application和非Docker Application。網絡

containerPort: 用於容器部署時,在bridge或者user模式網絡下 ,指定容器裏面的具體端口。架構

hostPort:指服務綁定到主機上的端口,使用bridge或者user網絡模式時,經過撇脂port mapping來映射主機端口到容器端口,在host網絡模式是,默認要求的端口就是主機端口。注意,只有主機端口能夠經過環境變量被獲取到。app

servicePort:在marathon裏面建立一個新應用時,你可能會分配一個或多個服務給該應用, 能夠指定全部的合法端口或者指定爲0讓marathon來自動分配服務端口。若是你本身指定服務端口,必須確保該端口在全部應用中惟一。tcp

portMapping: 在Docker Bridge模式,portMapping對於須要從外部訪問容器內服務來講是必須的,每一個端口須要有一條記錄,一條記錄包含4個元素:host port, container port, service port and protocol。ui

  • Location in app definition: { "container": { "portMappings": [ <port-mapping>... ], ... }, ... }
  • Used in conjunction with container and container/bridge mode networking.
  • requirePorts does not apply to portMappings

ports: 在host網絡模式下使用,ports數組用來定義端口,而且須要做爲resurce offer來考慮。只有在portMapping沒有指定時才須要。ports或者portDefinitions只須要定義一個。this

portDefinitions: 只在host網絡模式下,沒有指定portMapping時使用。用來代替ports數組的,能夠指定 port name, protocol and labels。spa

  • Location in app definition: { "portDefinitions": [ <port-definition>... ], "requirePorts": <bool>, ... }
  • Used in conjunction with host mode networking.
  • requirePorts applies to portDefinitions.

protocol:  tcp或者/和udp,當Docker容器使用BRIDGE or USER網絡模式時,做爲portMapping的一部分使用。code

requirePorts: 設爲true的時候要求在驗證在收到的resource offer裏面有相應的配置的端口,在BRIDGE or USER網絡模式時不使用該配置。

VIPS:  若是使用DC/OS集羣,能夠使用VIPs來簡化端口管理,VIPs簡化了集羣內部應用之間的通訊,實現了面向服務的架構,VIPs將一個單一地址的流量映射到多個地址和端口上。

vip包含3個組成部分:Private virtual IP address, Port (a port which the service is available on), Service name.

vip按以下格式轉換的:

<service-name>.marathon.l4lb.thisdcos.directory:<port>
{
  "id": "/my-service",
  "cmd": "sleep 10",
  "cpus": 1,
  "portDefinitions": [
    {
      "protocol": "tcp",
      "port": 5555,
      "labels": {
        "VIP_0": "/my-service:5555"
      },
      "name": "my-vip"
    }
  ]
}

在上面這段設置中,DCOS集羣內部APP能夠經過my-service.marathon.l4lb.thisdcos.directory:5555來訪問服務。

 To view the VIP for Kafka, run

dcos kafka endpoints broker

 from the DC/OS CLI.

相關文章
相關標籤/搜索