【问题标题】:Traefik ignores IngressRoute and Ingress resources in k8sTraefik 忽略 k8s 中的 IngressRoute 和 Ingress 资源
【发布时间】:2022-06-29 22:40:17
【问题描述】:

我部署了 Traefik helm chart 并为仪表板创建了 IngressRoute 并为基本身份验证创建了中间件,而不是仪表板我看到 404 错误。

Ingress 也返回 404。

IngressRoute 和 Ingress 也不适用于其他服务

Traefik - 2.7.1 k8s - v1.22.8-gke.202 (GKE 自动驾驶仪)

头盔值:

additionalArguments:
  - \"--log.level=DEBUG\"
  - \"--entrypoints.web.http.redirections.entryPoint.to=:443\"
  - \"--providers.file.filename=/config/dynamic.yaml\"

volumes:
  - name: tls-cert
    mountPath: \"/certs\"
    type: secret
  - name: traefik-config
    mountPath: \"/config\"
    type: configMap

service:
  spec:
    externalTrafficPolicy: Local
    loadBalancerIP: \"xxx.xxx.xxx.xxx\"

ingressRoute:
  dashboard:
    enabled: false

配置图:

apiVersion: v1
kind: ConfigMap
metadata:
  name: traefik-config
  namespace: ingress
data:
  dynamic.yaml: |
    tls:
      stores:
        default:
          defaultCertificate:
            certFile: \'/certs/tls.crt\'
            keyFile: \'/certs/tls.key\'

和 IngressRoute:

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: dashboard
  namespace: ingress
spec:
  entryPoints:
    - websecure
  routes:
    - match: Host(`traefik.example.domain`)
      kind: Rule
      services:
        - name: api@internal
          kind: TraefikService
      middlewares:
        - name: admin-auth
          namespace: ingress
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: admin-auth
spec:
  basicAuth:
    namespace: ingress
    secret: ingress-authsecret
---
apiVersion: v1
kind: Secret
metadata:
  name: ingress-authsecret
  namespace: ingress
data:
  users: some-base64-encoded-credentials

    标签: kubernetes traefik traefik-ingress


    【解决方案1】:

    解决方案:

    IngressRoute 被忽略,因为没有提供 tls 配置

    apiVersion: traefik.containo.us/v1alpha1
    kind: IngressRoute
    metadata:
      name: dashboard
      namespace: ingress
    spec:
      entryPoints:
        - websecure
      routes:
        - match: Host(`traefik.example.domain`)
          kind: Rule
          services:
            - name: api@internal
              kind: TraefikService
          middlewares:
            - name: admin-auth
              namespace: ingress
      tls:
        secretName: tls-cert # here
    

    因此,我删除了默认证书配置映射并将 tls 参数添加到动态 conf

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-05
      • 2015-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多