我在IBM Cloud中进行了Kibana的k8s部署。它通过ClusterIP k8s服务(k8s入口)公开,并且可以通过IBM Cloud App ID进行身份验证的单个Cloud Directory用户访问。
Kubernetes正确地重定向到App ID登录屏幕。问题是,成功进行AppID身份验证后,将无法访问Kibana部署。我得到 301永久移动。
通过k8s NodePort公开了与上述相同的k8s部署,并且工作正常。
与上面相同的设置对于带有身份验证的简单hello-world应用程序可以正常工作。
我遵循了这个tutorial。
在“应用程序ID身份验证设置”中,重定向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”注释。