Трафик с Docker Swarm? - PullRequest
       10

Трафик с Docker Swarm?

0 голосов
/ 15 января 2019

Я не уверен, возможно ли это, потому что у меня нет контроля над DNS (хотя я могу редактировать / etc / hosts).

У меня есть несколько серверов Azure Ubuntu с 1 менеджером и 2 работниками (всего 3). Эти узлы доступны только в нашей корпоративной сети. Обычно я захожу на веб-порталы со своего рабочего стола в офисе, набирая:

  • IP-адрес: порт
  • Хост: Порт
  • Host.corp.companyname.com: Порт

Моя цель состоит в том, чтобы вместо этого набрать что-то вроде host / pgadmin или host / portainer для маршрутизации на веб-портал, работающий на рабочих узлах. Является ли это возможным? Я не против редактировать файл рабочего стола / etc / hosts, но не хочу указывать IP-адрес (иначе нет смысла запускать портал на нескольких узлах).

services:
  web:
    image: traefik:1.7-alpine
    networks:
      - frontend
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /dev/null:/traefik.toml
    ports:
      - "80:80"
      - "8080:8080"
    command:
      - --docker
      - --docker.swarmMode
      - --docker.domain=corp.companyname.com
      - --docker.watch
      - --api
      - --defaultentrypoints=http
    deploy:
      placement:
        constraints: 
          - node.role == manager


  pgadmin4:
    image: dpage/pgadmin4:4.0
    ports:
      - "5050:80"
    deploy:
      placement: 
        constraints: 
          - node.role == worker
      labels:
      - traefik.enable=true
      - traefik.docker.network=frontend
      - traefik.backend=pgadmin4
      - traefik.port=5050
      - traefik.frontend.rule=???????
    networks:
      - frontend

networks:
  frontend:
    external: true
    name: frontend

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Наконец-то я сработал.

  1. Мне пришлось переименовать мою сеть traefik.docker.network из внешнего интерфейса в traefik_frontend (traefik - это имя, которое я использовал при запуске команды развертывания стека)
  2. Мне пришлось использовать Firefox (Chrome не будет работать - я понятия не имею, почему)
  3. Я изменил traefik.port = 5050 на traefik.port = 80
  4. Я добавил traefik-pgadmin.docker.localhost в мой файл / etc / hosts на окнах (и заметил, что до того, как сохранить его как файл .txt, это было неправильно)
0 голосов
/ 15 января 2019

Вы можете полностью сделать это с

  - traefik.frontend.rule=PathPrefixStrip:/pgadmin/

Здесь - список совпадений, с которыми может работать traefik.

...