2016-10-04 2 views
2

私はこのexample from github.GKE進入基本認証(ingress.kubernetes.io/auth-type)

進入が正常に動作ような基本的な認証を必要とするGKEの侵入を取得しようとしています。サービスにルーティングされます。しかし、認証が機能していません。すべてのトラフィックをすぐに許可します。 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 

はここに侵入です!

答えて

3

あなたがリンクした例は、nginx ingress controllerの例です。 GKEは認証をサポートしていないGLBCを使用します。

deployあなたのgkeクラスタにnginx入力コントローラがあります。 GLBCがイングレスを主張するのを避けるためには、annotateあなたのイングレスが必要であることに注意してください。次に、nginxコントローラを直接公開したり、nginx入力へのトラフィックをリダイレクトするためのglbc入力を作成することができます(これはsnippet bprashanhによって書かれています)。

+0

ありがとうございます!私の主な誤解。 –

+0

また、Traefikは[私にとってはうまくいった]良いオプションです(https://stackoverflow.com/a/48432839/717998)。 – errordeveloper