【问题标题】:GKE Ingress Basic Authentication (ingress.kubernetes.io/auth-type)GKE Ingress 基本身份验证 (ingress.kubernetes.io/auth-type)
【发布时间】:2016-10-04 21:50:36
【问题描述】:

我正在尝试让 GKE 入口要求像这样的基本身份验证 example from github.

入口工作正常。它路由到服务。但是身份验证不起作用。允许所有流量通过。 GKE 还没有推出这个功能吗?我的规格明显有问题?

这是入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: super-ingress
  annotations:
    ingress.kubernetes.io/auth-type: basic
    ingress.kubernetes.io/auth-secret: basic-auth
    ingress.kubernetes.io/auth-realm: "Authentication Required"
spec:
  rules:
  - host: zzz.host.com
    http:
      paths:
      - backend:
          serviceName: super-service
          servicePort: 9000
        path: /*

还有basic-auth 的秘密:

$ kubectl get secret/basic-auth -o yaml

apiVersion: v1
data:
  auth: XXXXXXXXXXXXXXXXXXX
kind: Secret
metadata:
  creationTimestamp: 2016-10-03T21:21:52Z
  name: basic-auth
  namespace: default
  resourceVersion: "XXXXX"
  selfLink: /api/v1/namespaces/default/secrets/basic-auth
  uid: XXXXXXXXXXX
type: Opaque

非常感谢任何见解!

【问题讨论】:

    标签: kubernetes google-kubernetes-engine


    【解决方案1】:

    您链接到的示例用于 nginx 入口控制器。 GKE 使用GLBC,不支持认证。

    您可以在您的 gke 集群中 deploy 一个 nginx 入口控制器。请注意,您需要 annotate 您的入口以避免 GLBC 声称入口。然后你可以直接暴露 nginx 控制器,或者创建一个 glbc 入口来将流量重定向到 nginx 入口(参见 bprashanh 写的这个snippet)。

    【讨论】:

    • 另外,Traefik 是另一个不错的选择,worked well for me
    • 受够了其他入口选项,我准备尝试 traefik @errordeveloper
    • 我还听说 Heptio Contour 是一个很好的基于 Envoy 的选项,Gloo 还为 API 管理和可观察性提供了更多的入口。
    猜你喜欢
    • 2020-11-30
    • 2011-11-04
    • 2021-06-20
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多