Kubernetes ingress 允许Azure应用程序网关路由AKS中的所有子路径

Kubernetes ingress 允许Azure应用程序网关路由AKS中的所有子路径,kubernetes-ingress,azure-aks,azure-application-gateway,Kubernetes Ingress,Azure Aks,Azure Application Gateway,我已将AKS配置为Azure应用程序网关作为入口 我正在尝试将.net core Angular应用程序部署到集群内的路径。我想在http:///app1 我的kubernetes部署(包括入口设置)如下所示: apiVersion: v1 kind: Pod metadata: name: web-app-1 labels: app: web-app-1 spec: containers: - image: "xxx.azurecr.io/web-app-1:

我已将AKS配置为Azure应用程序网关作为入口

我正在尝试将.net core Angular应用程序部署到集群内的路径。我想在
http:///app1

我的kubernetes部署(包括入口设置)如下所示:

apiVersion: v1
kind: Pod
metadata:
  name: web-app-1
  labels:
    app: web-app-1
spec:
  containers:
  - image: "xxx.azurecr.io/web-app-1:latest"
    name: web-app-1
    imagePullPolicy: Always
    ports:
    - containerPort: 80
      protocol: TCP

---

apiVersion: v1
kind: Service
metadata:
  name: web-app-1
spec:
  selector:
    app: web-app-1
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80

---

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: web-app-1
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
spec:
  rules:
  - http:
      paths:
      - path: /app1
        backend:
          serviceName: web-app-1
          servicePort: 80
在Angular应用程序中,我将
放在
index.html
中。但是,我已经将构建修改为
ngbuild--base href/app1/“


问题 当部署了它,我浏览到
http:///app1
然后加载index.html文件。但是,对于所有附加脚本,例如
http:///app1/main-es2015.9ae13a2658e759db61f5.js

问题可能在于我如何配置Angular,但浏览到
http:///app1/index.html
当我知道只需使用
/app1/
即可访问404时,返回404

我认为问题在于Application Gateway没有正确路由
/app1/
之后的任何请求。如何使其允许子路由通过(即脚本)


谢谢

现在这个工作正常了。如果我看404响应头,它说它是来自kestrel的,所以正在点击dotnet core api,所以它需要在那里进行配置。我所做的所有更改是:

客户:

  • 将基本href保留为
    /
    ,例如
  • 将base href添加到build参数中,例如ng build--base href/app1/“
  • Startup.cs的
    Configure
    中,添加
    app.UsePathBase(“/app1”)
    我在
    env.IsDevelopment()
    else
    中这样做
应用程序网关:

  • 将规则的路径更改为
    -path:/app1*
    。我没有星号,因此没有选择所有后续路线