【问题标题】:Traefik SSL Issue in version 2.1.4Traefik SSL 版本 2.1.4 中的问题
【发布时间】:2020-02-25 14:34:32
【问题描述】:

我有一个 docker swarm 集群。在该集群中,我需要使用 SSL 入口点配置 Traefik。一旦我将我的配置应用到 traefik 中,它就会出现一些错误。请帮我解决这个问题。

这是我的 .toml 文件,

logLevel = "INFO"

[docker]
  endpoint = "unix:///var/run/docker.sock"
  exposedbydefault = false

[api]
  dashboard =true

[entryPoints]
  [entryPoints.http]
  address = ":80"
    [entryPoints.http.redirect]
    entryPoint = "https"
  [entryPoints.https]
  address = ":443"
    [entryPoints.https.tls]
      [[entryPoints.https.tls.certificates]]
      certFile = "/root/ssl/mi-synergy.com.crt"
      keyFile = "/root/ssl/mi-synergy.com.key"

这是我的堆栈文件

version: "3.7"
services:
  traefik:
    image: traefik:2.1.4
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /root/traefik.toml:/etc/traefik/traefik.toml
      - /root/ssl:/root/ssl
    networks:
      - webgateway
      - traefik
    ports:
      - 80:80
      - 443:443
      - 8080:8080
    deploy:
      mode: global
      placement:
        constraints:
          - node.role == manager
      update_config:
        parallelism: 1
        delay: 10s
      restart_policy:
        condition: on-failure

networks:
  webgateway:
    driver: overlay
  traefik:
    driver: overlay

日志提取是

traefik_traefik.0.yogfftkp2f2n@docker-01.mi-synergy.com    | 2020/02/25 14:29:58 command traefik error: field not found, node: redirect
traefik_traefik.0.2lqrvwlbyrki@docker-01.mi-synergy.com    | 2020/02/25 14:30:06 command traefik error: field not found, node: redirect
traefik_traefik.0.9xor5lo32n2i@docker-01.mi-synergy.com    | 2020/02/25 14:30:14 command traefik error: field not found, node: redirect
traefik_traefik.0.4j6uji7yubsp@docker-01.mi-synergy.com    | 2020/02/25 14:30:22 command traefik error: field not found, node: redirect
traefik_traefik.0.doe8mlbt0xrf@docker-01.mi-synergy.com    | 2020/02/25 14:30:30 command traefik error: field not found, node: redirect
traefik_traefik.0.qjc2kbmq73z3@docker-01.mi-synergy.com    | 2020/02/25 14:30:38 command traefik error: field not found, node: redirect
traefik_traefik.0.m7qlc2tbjosf@docker-01.mi-synergy.com    | 2020/02/25 14:30:46 command traefik error: field not found, node: redirect
traefik_traefik.0.tvlzvywq5fmg@docker-01.mi-synergy.com    | 2020/02/25 14:30:54 command traefik error: field not found, node: redirect
traefik_traefik.0.wed43nnm9k4i@docker-01.mi-synergy.com    | 2020/02/25 14:31:02 command traefik error: field not found, node: redirect
traefik_traefik.0.t8zirtsoxvrn@docker-01.mi-synergy.com    | 2020/02/25 14:31:09 command traefik error: field not found, node: redirect
traefik_traefik.0.pviswukpjspe@docker-01.mi-synergy.com    | 2020/02/25 14:31:17 command traefik error: field not found, node: redirect
traefik_traefik.0.pevarrjo9f2b@docker-01.mi-synergy.com    | 2020/02/25 14:31:25 command traefik error: field not found, node: redirect
traefik_traefik.0.rljmx5gqao2c@docker-01.mi-synergy.com    | 2020/02/25 14:31:33 command traefik error: field not found, node: redirect
traefik_traefik.0.5ewdb1htrliv@docker-01.mi-synergy.com    | 2020/02/25 14:31:41 command traefik error: field not found, node: redirect
traefik_traefik.0.9vwultfvcepk@docker-01.mi-synergy.com    | 2020/02/25 14:31:49 command traefik error: field not found, node: redirect
traefik_traefik.0.uungeb848jbr@docker-01.mi-synergy.com    | 2020/02/25 14:31:57 command traefik error: field not found, node: redirect
traefik_traefik.0.yafuy3fcy0jq@docker-01.mi-synergy.com    | 2020/02/25 14:32:05 command traefik error: field not found, node: redirect

【问题讨论】:

  • 你能分享你的 traefik 堆栈文件吗?
  • 兄弟我编辑帖子并提交堆栈文件
  • 是的,但您还需要发布目标容器的配置。

标签: docker docker-compose docker-swarm traefik


【解决方案1】:

你可以试试下面的 docker stack

version: "3.7"
services:
  traefik:
    image: traefik:2.1.4
    command:
      - '--providers.docker=true'
      - '--providers.providersThrottleDuration=2s'
      - '--providers.docker.watch=true'
      - '--providers.docker.swarmMode=true'
      - '--providers.docker.swarmModeRefreshSeconds=15s'
      - '--providers.docker.exposedbydefault=false'
      - '--providers.docker.defaultRule=Host("${REPLACE_WITH_YOUR_DOMAIN}")'
      - '--accessLog.bufferingSize=0'
      - '--api=true'
      - '--api.dashboard=true'
      - '--api.insecure=true'
      - '--ping.entryPoint=web'
      - '--providers.file.filename=/run/traefik.toml'
      - '--entryPoints.web.address=:80'
      - '--entryPoints.websecure.address=:443'
    volumes:
      - '/var/run/docker.sock:/var/run/docker.sock:ro'
      - '/root/traefik.toml:/run/traefik.toml'
      - '/root/ssl:/root/ssl'
    networks:
      - webgateway
      - traefik
    ports:
      - 80:80
      - 443:443
      - 8080:8080
    deploy:
      labels:
        - traefik.enable=true
        - traefik.docker.network=traefik
        - traefik.http.middlewares.https_redirect.redirectscheme.scheme=https
        - traefik.http.middlewares.https_redirect.redirectscheme.permanent=true
        - traefik.http.routers.http_catchall.rule=HostRegexp(`{any:.+}`)
        - traefik.http.routers.http_catchall.entrypoints=web
        - traefik.http.routers.http_catchall.middlewares=https_redirect
      mode: global
      placement:
        constraints:
          - node.role == manager
      update_config:
        parallelism: 1
        delay: 10s
      restart_policy:
        condition: on-failure

networks:
  webgateway:
    driver: overlay
  traefik:
    driver: overlay

traefik.toml

[[tls.certificates]]
  certFile = "/root/ssl/mi-synergy.com.crt"
  keyFile = "/root/ssl/mi-synergy.com.key"

确保 ssl 证书存在于主机上的 /root/ssl 下和 traefik 配置文件下 /root/traefik.toml 否则,容器将无法使用它。 如果您在多节点集群中运行它,它应该在每个节点中(不仅是管理器),因为您使用了全局部署模式

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 2019-07-13
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    相关资源
    最近更新 更多