【发布时间】:2019-03-26 19:53:16
【问题描述】:
我使用 GCE 并尝试通过入口公开应用程序。但是路径规则不起作用。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: front-ingress
namespace: {{ .Release.Namespace }}
annotations:
{{ if eq .Values.env "dev" }}
kubernetes.io/ingress.global-static-ip-name: "test-ip"
{{ else }}
cloud.google.com/load-balancer-type: "Internal"
{{ end }}
spec:
rules:
- host: {{ .Values.domain }}
http:
paths:
- path: /
backend:
serviceName: front-service
servicePort: 80
- path: /api/
backend:
serviceName: backend-service
servicePort: 80
当网站在浏览器中打开时 - 所有文件都返回 404。当我通过 url 打开文件时,我收到:默认后端 - 404。如果我通过注释设置默认后端 - 所有文件已加载,但 /api 请求失败 - 404 错误。
它可能是什么?
主要思想:在站点子域上测试分支。 k8s 命名空间 = 分支名称。 Ingress 部署到规则中具有不同主机的每个命名空间。通过注解设置全局静态IP,在GCE Cloud DNS中设置。
谢谢。
更新:
如果我使用注释 kubernetes.io/ingress.class: "gce" 和路径:/* 和 /api/* - 站点可以完美运行。但是因为我使用全局静态 IP,所以每个 IP 不能创建多个入口。如果我使用kubernetes.io/ingress.class: "nginx" - 站点返回错误:default backend - 404
【问题讨论】:
标签: kubernetes google-compute-engine ingres