kubernetes - 入口配置设置不会重定向到正确的页面
问题描述
在 K8S 中设置入口需要帮助。先感谢您。
我已经使用 Helm 在 AKS 集群上配置了 NGINX 控制器和 Cert-Manager。
接下来 - 部署了两个 pod,这里尊重的服务就是这些名称,可以在上面的图片中找到。
- pod/rpe-delivers-orders-dcs-api*
- 服务/rpe-delivers-orders-dcs-api
- pod/rpe-delivers-orders-proxy-api*
- 服务/rpe-delivers-orders-proxy-api
接下来 - 当我尝试为上述两个服务设置如下入口时。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: rpe-delivers-orders-dcs-ingress
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: dcs-cluster-issuer
nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
tls:
- hosts:
- raag.westus2.cloudapp.azure.com
secretName: dcs-tls-secret
rules:
- host: raag.westus2.cloudapp.azure.com
http:
paths:
- path: /orders-dcs(/|$)(.*)
pathType: Prefix
backend:
service:
name: rpe-delivers-orders-dcs-api
port:
number: 80
- path: /orders-proxy(/|$)(.*)
pathType: Prefix
backend:
service:
name: rpe-delivers-orders-proxy-api
port:
number: 80
- path: /(.*)
pathType: Prefix
backend:
service:
name: rpe-delivers-orders-dcs-api
port:
number: 80
- 按预期工作 - raag.westus2.cloudapp.azure.com
- 按预期工作 - raag.westus2.cloudapp.azure.com/rpe-delivers-orders-dcs-api
- 不工作- raag.westus2.cloudapp.azure.com/rpe-delivers-orders-proxy-api
我的目标是以下 URL 应重定向到两个不同的网页:
- raag.westus2.cloudapp.azure.com/rpe-delivers-orders-dcs-api
- raag.westus2.cloudapp.azure.com/rpe-delivers-orders-proxy-api
如果我遗漏任何信息或没有正确设置,请告诉我。
谢谢你。
解决方案
看起来您缺少rpe-delivers-orders-proxy-api
入口配置中的块
- path: /(.*)
pathType: Prefix
backend:
service:
name: rpe-delivers-orders-proxy-api
port:
number: 80
如果在这种情况下您有任何路径重写选项和要求,您可以创建两个不同的入口
没有 1. 重写 ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-first
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: dcs-cluster-issuer
nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
tls:
- hosts:
- raag.westus2.cloudapp.azure.com
secretName: dcs-tls-secret
rules:
- host: raag.westus2.cloudapp.azure.com
http:
paths:
- path: /orders-dcs(/|$)(.*)
pathType: Prefix
backend:
service:
name: rpe-delivers-orders-dcs-api
port:
number: 80
- path: /orders-proxy(/|$)(.*)
pathType: Prefix
backend:
service:
name: rpe-delivers-orders-proxy-api
port:
number: 80
没有 2.简单的入口,也将根据您的要求在那里
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-second
annotations:
kubernetes.io/ingress.class: nginx
spec:
tls:
- hosts:
- raag.westus2.cloudapp.azure.com
secretName: dcs-tls-secret
rules:
- host: raag.westus2.cloudapp.azure.com
http:
paths:
- path: /
backend:
service:
name: rpe-delivers-orders-proxy-api
port:
number: 80
- path: /
backend:
service:
name: rpe-delivers-orders-dcs-api
port:
number: 80
更新:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-second
annotations:
kubernetes.io/ingress.class: nginx
spec:
tls:
- hosts:
- raag.westus2.cloudapp.azure.com
secretName: dcs-tls-secret
rules:
- host: raag.westus2.cloudapp.azure.com
http:
paths:
- path: /orders-proxy
pathType: Prefix
backend:
service:
name: rpe-delivers-orders-proxy-api
port:
number: 80
推荐阅读
- jmeter - JMeter:使用 Beanshell 断言对从 Beanshell 后处理器获取的值进行计数比较
- raspberry-pi - 如何在不插入树莓派的情况下测试 Pololu DRV8835 电机控制器?
- amazon-web-services - 如何检查是否仍在使用 AWS 访问密钥?
- python - 如何在状态上显示公会编号?
- excel - VBA - 在另一个打开的工作簿中引用表单以更新其中的字段
- mariadb - 为什么数据库可以在一台服务器上工作,而只能部分在另一台服务器上工作?
- selenium - BrowserMob 代理使用 Chrome 无头浏览器返回空 HTML 响应,如何解决?
- postgresql - Groupby year,计算每年的总和和百分比
- sql - TSQL - 仅对连续行进行 GROUP BY
- postgresql - Postgres如何跨行对具有固定值的多列进行分组