配置 Traefik TLS 时出错 "Error configuring TLS for ingress secret does not exist"

Error configuring Traefik TLS "Error configuring TLS for ingress secret does not exist"

简介

使用 Traefik 使用 helm 图表配置新的入口控制器并创建秘密。

信息

Kubernetes 版本:1.9.3

头盔版本:2.9

Traefik 图表版本:1.5

Traefik 版本:1.7.2

问题

我正在通过官方helm chart部署Traefik,但我在日志中总是遇到同样的问题 "Error configuring TLS for ingress default/traefik-testing-tls: secret default/traefik-tls does not exist"

我在同一个命名空间中正确创建和配置了机密,还检查了 clusterrole 和 clusterrolebinds 是否正常并允许访问机密

我尝试更改 defaultCertdefaultKey 但不确定。

配置图:

data:
traefik.toml: |
# traefik.toml
logLevel = "INFO"
defaultEntryPoints = ["http", "https", "httpn"]
[entryPoints]
  [entryPoints.http]
  address = ":80"
  compress = true
  [entryPoints.https]
  address = ":443"
  compress = true
  [entryPoints.httpn]
  address = ":8880"
  compress = true
[kubernetes]
namespaces = ["default", "kube-system"]
[traefikLog]
  format = "json"
[accessLog]
  format = "common"
[accessLog.fields]
  defaultMode = "keep"
[accessLog.fields.names]
[accessLog.fields.headers]
  defaultMode = "keep"
[accessLog.fields.headers.names]

看起来您缺少 traefik-tls 秘密,对于您的 traefik-testing-tls 入口,它可能包含您的 TLS 证书。你可以关注this.

而不是:

kubectl -n kube-system create secret tls traefik-ui-tls-cert --key=tls.key --cert=tls.crt

您可以使用:

kubectl -n kube-system create secret tls traefik-tls --key=tls.key --cert=tls.crt

经过多次检查,rbacs,命名空间等,Traefik的一个成员告诉我们,k8s对象是异步加载的(所以ingress可能在secret之前加载)是这个原因,因为它在启动时给出了一个问题Traefik 的。