我在 IBM Cloud 中有一个 Kibana 的 k8s 部署。它通过 ClusterIP k8s 服务(一个 k8s 入口)公开,并且可供通过 IBM Cloud App ID 认证的单个 Cloud Directory 用户访问。
Kubernetes 正确重定向到 App ID 登录屏幕。问题是成功 AppID 身份验证后无法访问 Kibana 部署。我在一个循环中得到301 Moved Permanently 。
与上面相同的 k8s 部署通过 k8s NodePort 公开并且工作正常。
与上述相同的设置适用于具有身份验证的简单 hello-world 应用程序。
我跟着这个教程。
在 App ID Authentication Settings 中,重定向 URL 为: https://our-domain/app/kibana/appid_callback
以下是相关的 k8s 定义部分:
---
kind: Service
apiVersion: v1
metadata:
name: kibana-sec
namespace: default
labels:
app: kibana-sec
spec:
type: ClusterIP
ports:
- name: http
protocol: TCP
port: 8080
targetPort: 5601
selector:
app: kibana-sec
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.bluemix.net/redirect-to-https: "True"
ingress.bluemix.net/appid-auth: "bindSecret=<our-bindSecret> namespace=default requestType=web serviceName=kibana-sec"
...
spec:
rules:
- host: <our-domain>
http:
paths:
...
- backend:
serviceName: kibana-sec
servicePort: 8080
path: /app/kibana/
tls:
- hosts:
- <our-domain>
secretName: <our-secretName>
status:
loadBalancer:
ingress:
- ip: <IPs>
- ip: <IPs>
我们的服务没有“ingress.bluemix.net/rewrite-path”注释。