Traefik mint reverse proxy - Mit rontok el? --Megoldva--

Fórumok

Sziasztok, 

 

adott az alabbi pelda conf, ami a test.labor.local-ra 404-et dob...

Biztos valami bagatell dolgot cseszek el, de nem tudom mit..  

 

(Ami meg nem latszik itt, h a network az egy overlay, a swarm miatt)

 

version: '3.7'

services:
  traefik:
    image: traefik:v2.6
    command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.swarmMode=true"
    ports:
      - "80:80"
      - "8080:8080"
    deploy:
      placement:
        constraints:
          - node.role == manager
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"

  whoami:
    image: containous/whoami
    labels:
      - "traefik.http.routers.whoami.entrypoints=web"
      - "traefik.http.routers.whoami.rule=Host(`test.labor.local`)"
      - "traefik.http.services.whoami.loadbalancer.server.port=80"
    networks:
      - traefik-public

networks:
  traefik-public:
    external: true

A log ennyi:

time="2024-02-15T07:35:04Z" level=error msg="service \"test-whoami\" error: port is missing" providerName=docker container=test-whoami-tkdbgepz8eprikt0pfuawc9x5

Hozzászólások

Szerintem a labels-nek a deploy alatt kellene lennie.

ez a "megoldas":

Mondjuk igy nem tudom akkor, hogy hogyan tovabb...

 

When traefik is configured with:

providers.docker.swarmMode=true

You must set the label on the swarm service, which isn't available if you deploy the container with docker-compose. You either need to deploy with docker-compose and the labels on the container and swarmMode set to false, or with swarmMode set to true you need to set the label in the deploy section and deploy using docker stack deploy, you can't mix the two configurations.

A traefik-et lehet két félekép is konfigurálni.
A saját konfigurációs YAML-jével vagy deployment címékkel.

 

Ha a deployment címkéket használod akkor figyelj arra, hogy a címke ne a service-re kerüljön, mint a fenti példában hanem a deploy-ra mint ahogy a fent a palcement is.
Docker Swarm esetén be kell állítani a swarm mode-ot is. Ez kapcsolja azt a funkciót, hogy ránézzen a deployment címkékre.

HA a network-öd overlay típusú ingress-es beállítással
     a proxy-zni kívánt szolgáltatásoknál hozzá van adva a trafik-es hálózat és a traefik-hez is
     illetve a traefik-en bevan kapcsolva a swarm mode
     és a deployment tag-ek jó helyen vannak
     ezen kívül a node-ok a hálózaton is látják egymást és a tűzfal ezt nem gátolja
     akkor már menni szokott.

Ez szerintem egy egész jó guide.

https://geek-cookbook.funkypenguin.co.nz/docker-swarm/traefik/

     és a deployment tag-ek jó helyen vannak
 

 

Ez volt a gond igen. ratettem a service-re a cimkeket es mar megy is! kozben meglett a signed-ssl is, az is megy szepen (sajat, nem Let's Encrypt)

 

be is pakoltam mar minden kontenert ala :) 

 

Eddig amugy nginx-proxy-t hasznaltam, amig egy node-os volt a docker, de az nem megy swarm-al... ezer eves tema, sztm mar nem is fog kb soha...

 

https://github.com/nginx-proxy/nginx-proxy/issues/97