将Google云服务帐户文件传递给traefik

时间:2019-01-14 21:56:45

标签: kubernetes google-kubernetes-engine traefik

按照https://docs.traefik.io/configuration/acme/

我已经这样创建了一个秘密:

kubectl --namespace=gitlab-managed-apps create secret generic traefik-credentials \ --from-literal=GCE_PROJECT=<id> \ --from-file=GCE_SERVICE_ACCOUNT_FILE=key.json \

并通过使用--set acme.dnsProvider.$name=traefik-credentials

将其传递到头盔图表

但是我仍然遇到以下错误:

{"level":"error","msg":"Unable to obtain ACME certificate for domains \"traefik.my.domain.com\" detected thanks to rule \"Host:traefik.my.domain.com\" : cannot get ACME client googlecloud: Service Account file missing","time":"2019-01-14T21:44:17Z"}

1 个答案:

答案 0 :(得分:0)

我不知道为什么/如果traefik使用GCE_SERVICE_ACCOUNT_FILE变量。为此,所有Google工具和第三方集成都使用GOOGLE_APPLICATION_CREDENTIALS环境变量(所有Google API客户端会自动选择此变量)。因此,看起来traefik在这里称其为别的东西可能做得很差。

我建议您查看traefik吊舱的Pod规格(字段volumesvolumeMounts,以查看Secret是否已正确安装到吊舱)。

如果您遵循本教程https://cloud.google.com/kubernetes-engine/docs/tutorials/authenticating-to-cloud-platform,则可以学习如何将IAM服务帐户安装到任何Pod。因此,也许您可​​以将其与Helm图表本身结合起来,弄清楚进行这项工作所需要做的事情。