我正在尝试使用k8s中的入口控制器来访问在集群中运行的Web服务器。我正在使用基于路径的路由入口资源进行测试,并通过访问辅助IP地址进行测试(因为入口正在使用可通过任何工作节点访问的节点端口服务)。
当我访问其他测试Web应用程序(没有登录页面)时,可以按以下方式访问我的服务: http:// {worker-ip}:{ingress-node-port} / {svc-name}
当我尝试访问具有登录页面的应用程序时,输入上述内容后,我将重定向至以下内容: http:// {worker-ip} / vui / login
这显然不能将我重定向到正确的登录页面,并且在屏幕上显示错误。在此过程中,是否有任何方法可以保存路径和端口名称,以便使用正确的服务名称和端口号发送/ vui / login路径?如果我直接输入整个路径,则仍然无法访问该服务。我在想,由于路径已更改为正确的登录页面,但实际上无法访问服务,因此重定向工作到一定程度,然后在URL更改为不使用路径和服务名称后失败。
任何有关入口,基于路径的路由以及将它们与登录页面重定向一起使用的建议,将不胜感激。
下面是我在测试中使用的入口定义:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
annotations: ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /test1
backend:
serviceName: test1-service
servicePort: 5678
- path: /test2
backend:
serviceName: test2-service
servicePort: 5678
- path: /test3
backend:
serviceName: test3-service
servicePort: 8080
答案 0 :(得分:0)
您可以根据情况使用 next URL参数。例如,您输入
A
如果我正确理解了您的问题,这会将您重定向到登录页面。该URL然后成为登录页面URL-
s = df.iloc[[0,2]].sum()
s.loc['A'] = 'Total Exp'
df.loc[len(df.index)] = s
print (df)
A B C
0 Expense 2 3
1 Sales 5 6
2 Travel 8 9
3 Total Exp 10 12
在这种情况下,原始来源的URL不会保留。
因此,我认为您可以在URL中使用 next 参数,并在用户通过身份验证后将路由重定向到该URL。该网址将为-
https://example.com/test3
然后,您可以使用 query-routing 批注-
部署k8s Ingress资源。https://example.com/vui/login
并在其中添加URL参数的位置添加ConfigMap-
https://example.com/vui/login?next=/test3/