首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes Ingress设置

Kubernetes Ingress设置
EN

Stack Overflow用户
提问于 2019-07-11 02:57:04
回答 1查看 182关注 0票数 1

我试图设置一个Kubernetes Ingress将外部http流量路由到前端pod (使用path /)和后端pod (使用path /rest/*),但我总是得到一个400错误,而不是主要的nginx index.html。

所以我在https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer页面上尝试了Google Kubernetes的例子,但是我总是得到一个400错误。有什么想法吗?

以下是前端"cup-fe“(使用angular app运行nginx )的部署描述符:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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将前端暴露在外部:

代码语言:javascript
复制
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“部署描述符(运行野蝇),因为它与"cup-fe”部署描述符非常相似。还请注意,如果我创建一个LoadBalancer服务而不是NodePort,我可以访问网页,但我在调用后端时会遇到一些CORS问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-11 17:50:32

我假设您使用了错误的selector run: cup-fe整个特定服务配置。因为我已经在cup-fe服务配置中用app: cup-fe替换了label,所以显示了相关的Pod endpoints,并且我也收到了成功的响应。

代码语言:javascript
复制
$ kubectl get ep | grep cup-fe|awk '{print $2}'
<IP_address>:80,<IP_address>:80

如果问题仍然存在,请让我知道,并在我的答案下面添加评论。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56977038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档