Kubernetes:无法检索入口的身份验证配置

时间:2018-12-27 00:08:00

标签: kubernetes basic-authentication traefik

我有一个新的kubernetes集群,我在上面安装了Traefik v1.7.6,并启用了Traefik仪表板,效果很好。

现在,我想在traefik仪表板的入口服务上添加基本身份验证,我遵循了docs

  • 从htpasswd生成的文件中与Traefik相同的名称空间中创建了一个名为auth-traefik的秘密
  • 向入口信息中心添加了以下注释:

    kubernetes.io/ingress.class: traefik
    traefik.ingress.kubernetes.io/auth-secret: auth-traefik
    traefik.ingress.kubernetes.io/auth-type: basic
    

我无法再访问仪表板,并显示以下页面:502 Bad Gateway nginx/1.13.12

我重新启动traefik pod,并显示以下日志:

*{"level":"error","msg":"Failed to retrieve auth configuration for ingress kube-system/traefik-dashboard: failed to load auth credentials: secret \"kube-system\"/\"auth-traefik\" not found","time":"2018-12-26T23:45:59Z"}*

更多详细信息:在x64 Scaleway服务器上运行的Ubuntu 18.04。我尝试了常规和MicroK8s的安装,但都遇到了同样的问题(目前,我将继续使用MicroK8s)。

Traefik是通过最新的Helm软件包安装的(默认值,我仅启用了仪表板)

1 个答案:

答案 0 :(得分:1)

看起来您可能已经在auth-traefik所在的其他名称空间中创建了kube-system Kubernetes机密。 (看起来Ingress是在kube-system命名空间中定义的。)

您可以通过以下方式进行检查:

$ kubectl -n kube-system get secret auth-traefik -o=yaml

如果不存在(是否在其他名称空间中?监视吗?默认?),则可以创建它:

$ kubectl create secret generic auth-traefik --from-file auth --namespace=kube-system

或者您的Traefik窗格使用的ServiceAccount不能RBAC访问kube系统名称空间中的Secrets资源。