【发布时间】:2019-11-20 10:55:02
【问题描述】:
我尝试设置 Kubernetes Ingress 将外部 http 流量路由到前端 pod(路径 /)和后端 pod(路径 /rest/*),但我总是收到 400 错误,而不是主 nginx 索引。 html.
所以我尝试了页面 https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer 上的 Google Kubernetes 示例,但我总是收到 400 错误。有什么想法吗?
以下是前端“cup-fe”的部署描述符(使用 Angular 应用运行 nginx):
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: cup-fe
namespace: default
labels:
app: cup-fe
spec:
replicas: 2
selector:
matchLabels:
app: "cup-fe"
template:
metadata:
labels:
app: "cup-fe"
spec:
containers:
- image: "eu.gcr.io/gpi-cup-242708/cup-fe:latest"
name: "cup-fe"
接下来是服务NodePort:
apiVersion: v1
kind: Service
metadata:
name: cup-fe
namespace: default
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
run: cup-fe
type: NodePort
最后但并非最不重要的一点是,将前端暴露在外部的 Ingress:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: http-ingress
spec:
rules:
- host: cup-fe
http:
paths:
- path: /
backend:
serviceName: cup-fe
servicePort: 80
- path: /rest/*
backend:
serviceName: cup-be
servicePort: 8080
我留下了“cup-be”部署描述符(运行wildfly),因为它与“cup-fe”非常相似。另请注意,如果我创建 LoadBalancer 服务而不是 NodePort,我可以访问网页,但调用后端时遇到了一些 CORS 问题。
【问题讨论】:
-
如果没有 YAML 清单就很难判断。请在此处发布您的清单。
标签: kubernetes google-kubernetes-engine kubernetes-ingress