我试图设置一个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问题。