首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes攻入Pod pathing问题(Nginx Ingress)

Kubernetes攻入Pod pathing问题(Nginx Ingress)
EN

Stack Overflow用户
提问于 2021-07-07 04:48:39
回答 1查看 375关注 0票数 0

我对Kubernetes相当陌生,我正试图弄清楚如何在集群中的不同路径上运行相同容器映像的多个荚。我在下面粘贴了我的k8s清单。在这个场景中,我的应用程序(网站)正在监听根路径。但是,当Ingress匹配它并将其转发到我的Pod时,它请求/app路径,它返回404,因为我的应用程序再次监听根用户(/)。我可以让这个应用程序听/app,但是它需要重建该图像,并且限制了我在集群内的不同路径上运行相同的图像的能力。例如,我希望运行相同的网站在/app2,而不是重建一个特殊的形象,只为这条路。

我觉得这个答案与nginx.ingress.kubernetes.io/rewrite-target annotation有关,但我尝试过各种不同的排列方式,但我想不出答案。我觉得这是我错过的很简单的事情。

这是我的部署清单:

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: application
spec:
  replicas: 1
  selector:
    matchLabels:
      app: application
  template:
    metadata:
      labels:
        app: application
    spec:
      containers:
        - name: application
          image: foo-app:latest
          imagePullPolicy: Always
          ports:
            - containerPort: 80
              name: "http"

这是我的服务清单:

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: application-service
spec:
  selector:
    app: application
  ports:
    - name: http
      protocol: TCP
      port: 80
      targetPort: 80
  type: NodePort

最后,这里是我的入口资源:

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: application-service-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.org/mergeable-ingress-type: "minion"
spec:
  rules:
    - host: some-random.elb.us-west-2.amazonaws.com
      http:
        paths:
          - backend:
              serviceName: application-service
              servicePort: 80
            path: /app
EN

回答 1

Stack Overflow用户

发布于 2021-07-07 05:12:17

尝尝这个

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /app/$1
    kubernetes.io/ingress.class: nginx
  name: application-service-ingress
spec:
  rules:
  - host: some-random.elb.us-west-2.amazonaws.com
    http:
      paths:
      - path: /(.*)
        backend:
          serviceName: service-1
          servicePort: 80
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68280187

复制
相关文章

相似问题

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